From b07a31a20c0480e7f3ec10a6b39df6ad9252a487 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Sun, 16 Oct 2022 10:33:27 -0400 Subject: [PATCH 01/33] update date lockfile --- plugins/dates/package-lock.json | 55 +++++++++++++++++---------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/plugins/dates/package-lock.json b/plugins/dates/package-lock.json index 6bfe3adfb..09ee1c5a5 100644 --- a/plugins/dates/package-lock.json +++ b/plugins/dates/package-lock.json @@ -1,29 +1,29 @@ { "name": "compromise-dates", - "version": "3.0.1", + "version": "3.4.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "compromise-dates", - "version": "3.0.1", + "version": "3.4.1", "license": "MIT", "dependencies": { "spacetime": "7.1.4", "spacetime-holiday": "0.3.0" }, "peerDependencies": { - "compromise": ">=14.0.0" + "compromise": ">=14.2.0" } }, "node_modules/compromise": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/compromise/-/compromise-14.0.0.tgz", - "integrity": "sha512-//uDMAfHPKygivhYG1+6kSaugS0FbuUWVuwCAtI8FR2AQVa6AWNbOBph/Qzx2to1anRoYvmN1VG2lN8VN6hTOg==", + "version": "14.5.2", + "resolved": "https://registry.npmjs.org/compromise/-/compromise-14.5.2.tgz", + "integrity": "sha512-a6UInhE0IOElJP9L/69umLEb+hhJDpejTfFaQtHiQcZY0h2vI2kDUDbOs5XJQcpWQugQbOinZZI5UDOglW3kUA==", "peer": true, "dependencies": { - "efrt": "2.5.0", - "grad-school": "0.0.4", + "efrt": "2.7.0", + "grad-school": "0.0.5", "suffix-thumb": "4.0.2" }, "engines": { @@ -31,15 +31,18 @@ } }, "node_modules/efrt": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/efrt/-/efrt-2.5.0.tgz", - "integrity": "sha512-V/tJRLSD3sbd1hOw2TVvMLeQnLZeH9STMoUg649M6Zufb9Xabho+nkORxORu1SiCX5hh4e7yhRbcwAUIdXwLOQ==", - "peer": true + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/efrt/-/efrt-2.7.0.tgz", + "integrity": "sha512-/RInbCy1d4P6Zdfa+TMVsf/ufZVotat5hCw3QXmWtjU+3pFEOvOQ7ibo3aIxyCJw2leIeAMjmPj+1SLJiCpdrQ==", + "peer": true, + "engines": { + "node": ">=12.0.0" + } }, "node_modules/grad-school": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/grad-school/-/grad-school-0.0.4.tgz", - "integrity": "sha512-wIaLSmqqMNiNJGMUq45jokvb+pTW0xe52k1+iY5aQgGNVM9xf1OpWuIDqHxxSqlRf/nqt0D/NIpj61+2z87q+g==", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/grad-school/-/grad-school-0.0.5.tgz", + "integrity": "sha512-rXunEHF9M9EkMydTBux7+IryYXEZinRk6g8OBOGDBzo/qWJjhTxy86i5q7lQYpCLHN8Sqv1XX3OIOc7ka2gtvQ==", "peer": true, "engines": { "node": ">=8.0.0" @@ -67,26 +70,26 @@ }, "dependencies": { "compromise": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/compromise/-/compromise-14.0.0.tgz", - "integrity": "sha512-//uDMAfHPKygivhYG1+6kSaugS0FbuUWVuwCAtI8FR2AQVa6AWNbOBph/Qzx2to1anRoYvmN1VG2lN8VN6hTOg==", + "version": "14.5.2", + "resolved": "https://registry.npmjs.org/compromise/-/compromise-14.5.2.tgz", + "integrity": "sha512-a6UInhE0IOElJP9L/69umLEb+hhJDpejTfFaQtHiQcZY0h2vI2kDUDbOs5XJQcpWQugQbOinZZI5UDOglW3kUA==", "peer": true, "requires": { - "efrt": "2.5.0", - "grad-school": "0.0.4", + "efrt": "2.7.0", + "grad-school": "0.0.5", "suffix-thumb": "4.0.2" } }, "efrt": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/efrt/-/efrt-2.5.0.tgz", - "integrity": "sha512-V/tJRLSD3sbd1hOw2TVvMLeQnLZeH9STMoUg649M6Zufb9Xabho+nkORxORu1SiCX5hh4e7yhRbcwAUIdXwLOQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/efrt/-/efrt-2.7.0.tgz", + "integrity": "sha512-/RInbCy1d4P6Zdfa+TMVsf/ufZVotat5hCw3QXmWtjU+3pFEOvOQ7ibo3aIxyCJw2leIeAMjmPj+1SLJiCpdrQ==", "peer": true }, "grad-school": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/grad-school/-/grad-school-0.0.4.tgz", - "integrity": "sha512-wIaLSmqqMNiNJGMUq45jokvb+pTW0xe52k1+iY5aQgGNVM9xf1OpWuIDqHxxSqlRf/nqt0D/NIpj61+2z87q+g==", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/grad-school/-/grad-school-0.0.5.tgz", + "integrity": "sha512-rXunEHF9M9EkMydTBux7+IryYXEZinRk6g8OBOGDBzo/qWJjhTxy86i5q7lQYpCLHN8Sqv1XX3OIOc7ka2gtvQ==", "peer": true }, "spacetime": { From 25c05ea9631076d03a517e6818d142fd950006d7 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Tue, 18 Oct 2022 10:58:59 -0400 Subject: [PATCH 02/33] before transform method refactor --- scratch.js | 9 ++++++--- src/1-one/sweep/methods/sweep/02-trim-down.js | 2 +- src/1-one/sweep/methods/sweep/04-runMatch.js | 18 ++++++++++++++++-- src/1-one/sweep/methods/sweep/index.js | 12 ++---------- 4 files changed, 25 insertions(+), 16 deletions(-) diff --git a/scratch.js b/scratch.js index 08c2b3497..1857f2fd3 100644 --- a/scratch.js +++ b/scratch.js @@ -1,9 +1,9 @@ /* eslint-disable no-console, no-unused-vars */ -import nlp from './src/three.js' +import nlp from './src/two.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) nlp.verbose('tagger') - +console.log(nlp.world().methods.two) // let txt = '' // let doc // let m @@ -36,7 +36,10 @@ nlp.verbose('tagger') // doc.remove('Remove') // console.log(doc.text()) -const doc = nlp("demanding his rights").debug() +const doc = nlp("These are the old-fashioned dilemmas").debug() +// const doc = nlp("foobar. he was demanding his rights after. walking his plank after") +// let net = nlp.buildNet([{ match: 'his .', ifNo: ['demanding', 'rights'] }]) +// doc.match(net).debug() // let doc = nlp("he said I am a boy") // console.log(doc.sentences().json()) diff --git a/src/1-one/sweep/methods/sweep/02-trim-down.js b/src/1-one/sweep/methods/sweep/02-trim-down.js index 792aa2c6a..2df8997a8 100644 --- a/src/1-one/sweep/methods/sweep/02-trim-down.js +++ b/src/1-one/sweep/methods/sweep/02-trim-down.js @@ -8,7 +8,7 @@ const localTrim = function (maybeList, docCache) { }) // ensure nothing matches in our 'ifNo' property list = list.filter(obj => { - if (obj.ifNo !== undefined && obj.ifNo.some(no => docCache[n].has(no)) === true) { + if (obj.ifNo !== undefined && obj.ifNo.some(no => haves.has(no)) === true) { return false } return true diff --git a/src/1-one/sweep/methods/sweep/04-runMatch.js b/src/1-one/sweep/methods/sweep/04-runMatch.js index 1e2af7a56..b22ee696f 100644 --- a/src/1-one/sweep/methods/sweep/04-runMatch.js +++ b/src/1-one/sweep/methods/sweep/04-runMatch.js @@ -1,6 +1,6 @@ // finally, // actually run these match-statements on the terms -const runMatch = function (maybeList, document, methods, opts) { +const runMatch = function (maybeList, document, docCache, methods, opts) { let results = [] for (let n = 0; n < maybeList.length; n += 1) { for (let i = 0; i < maybeList[n].length; i += 1) { @@ -9,9 +9,23 @@ const runMatch = function (maybeList, document, methods, opts) { let res = methods.one.match([document[n]], m) // found something. if (res.ptrs.length > 0) { - // let index=document[n][0].index res.ptrs.forEach(ptr => { ptr[0] = n // fix the sentence pointer + // check ifNo + // if (m.ifNo !== undefined) { + // let terms = document[n].slice(ptr[1], ptr[2]) + // for (let k = 0; k < m.ifNo.length; k += 1) { + // const no = m.ifNo[k] + // // quick-check cache + // if (docCache[n].has(no)) { + // // console.log(no) + // if (terms.find(t => t.normal === no || t.tags.has(no))) { + // // console.log('+' + no) + // return + // } + // } + // } + // } let todo = Object.assign({}, m, { pointer: ptr }) if (m.unTag !== undefined) { todo.unTag = m.unTag diff --git a/src/1-one/sweep/methods/sweep/index.js b/src/1-one/sweep/methods/sweep/index.js index 5e3666e77..3320164c9 100644 --- a/src/1-one/sweep/methods/sweep/index.js +++ b/src/1-one/sweep/methods/sweep/index.js @@ -20,7 +20,7 @@ const sweep = function (document, net, methods, opts = {}) { // collect possible matches for this document let maybeList = getHooks(docCache, net.hooks) // ensure all defined needs are met for each match - maybeList = trimDown(maybeList, docCache) + maybeList = trimDown(maybeList, docCache, document) // add unchacheable matches to each sentence's todo-list if (net.always.length > 0) { maybeList = maybeList.map(arr => arr.concat(net.always)) @@ -28,16 +28,8 @@ const sweep = function (document, net, methods, opts = {}) { // if we don't have enough words maybeList = tooSmall(maybeList, document) - // maybeList.forEach((arr, i) => { - // let txt = document[i].map(t => t.text).join(' ') - // console.log(`==== ${txt} ====`) - // arr.forEach(m => { - // console.log(` - ${m.match}`) - // }) - // }) - // now actually run the matches - let results = runMatch(maybeList, document, methods, opts) + let results = runMatch(maybeList, document, docCache, methods, opts) // console.dir(results, { depth: 5 }) return results } From 88e686552da00b9498d09af5049bce3f97824e47 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Tue, 18 Oct 2022 12:33:32 -0400 Subject: [PATCH 03/33] refactor adjective --- .../match/methods/parseMatch/04-inflect-root.js | 2 +- src/2-two/preTagger/compute/root.js | 8 ++++---- src/2-two/preTagger/methods/expand/byTag.js | 5 +++-- src/2-two/preTagger/methods/transform/index.js | 6 ++++-- src/2-two/swap/api/swap.js | 4 ++-- src/3-three/misc/adjectives/index.js | 14 +++++++------- src/3-three/misc/adverbs/index.js | 2 +- tests/three/adjectives/adj-adv.test.js | 2 +- tests/three/adjectives/adj-noun.test.js | 2 +- 9 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/1-one/match/methods/parseMatch/04-inflect-root.js b/src/1-one/match/methods/parseMatch/04-inflect-root.js index dd89c72a3..8abfb20ac 100644 --- a/src/1-one/match/methods/parseMatch/04-inflect-root.js +++ b/src/1-one/match/methods/parseMatch/04-inflect-root.js @@ -19,7 +19,7 @@ const addNoun = function (token, world) { } const addAdjective = function (token, world) { - let { adjToSuperlative, adjToComparative, adjToAdverb } = world.methods.two.transform + let { adjToSuperlative, adjToComparative, adjToAdverb } = world.methods.two.transform.adjective let res = [token.root] if (!adjToSuperlative || !adjToComparative || !adjToAdverb) { return res diff --git a/src/2-two/preTagger/compute/root.js b/src/2-two/preTagger/compute/root.js index 1770a9e2a..f37ad20ba 100644 --- a/src/2-two/preTagger/compute/root.js +++ b/src/2-two/preTagger/compute/root.js @@ -35,18 +35,18 @@ const toRoot = { // 'quieter' -> 'quiet' 'Comparative': (term, world) => { let str = term.machine || term.normal || term.text - return world.methods.two.transform.adjFromComparative(str, world.model) + return world.methods.two.transform.adjective.adjFromComparative(str, world.model) }, // 'quietest' -> 'quiet' 'Superlative': (term, world) => { let str = term.machine || term.normal || term.text - return world.methods.two.transform.adjFromSuperlative(str, world.model) + return world.methods.two.transform.adjective.adjFromSuperlative(str, world.model) }, // 'suddenly' -> 'sudden' 'Adverb': (term, world) => { - const toAdj = world.methods.two.transform.advToAdjective + const { advToAdjective } = world.methods.two.transform.adjective let str = term.machine || term.normal || term.text - return toAdj(str) + return advToAdjective(str) }, } diff --git a/src/2-two/preTagger/methods/expand/byTag.js b/src/2-two/preTagger/methods/expand/byTag.js index 6bdc40b95..b12411ebc 100644 --- a/src/2-two/preTagger/methods/expand/byTag.js +++ b/src/2-two/preTagger/methods/expand/byTag.js @@ -12,13 +12,14 @@ export default { // superlative/ comparative forms for adjectives Comparable: (word, lex, methods, model) => { let already = model.one.lexicon + let { adjToSuperlative, adjToComparative } = methods.two.transform.adjective // fast -> fastest - let sup = methods.two.transform.adjToSuperlative(word, model) + let sup = adjToSuperlative(word, model) if (!already[sup]) { lex[sup] = lex[sup] || 'Superlative' } // fast -> faster - let comp = methods.two.transform.adjToComparative(word, model) + let comp = adjToComparative(word, model) if (!already[comp]) { lex[comp] = lex[comp] || 'Comparative' } diff --git a/src/2-two/preTagger/methods/transform/index.js b/src/2-two/preTagger/methods/transform/index.js index 443dec837..31053a954 100644 --- a/src/2-two/preTagger/methods/transform/index.js +++ b/src/2-two/preTagger/methods/transform/index.js @@ -16,7 +16,9 @@ export default { verbToInfinitive, getTense, verbConjugate, - adjToSuperlative, adjToComparative, adjFromSuperlative, adjFromComparative, + adjective: { + adjToSuperlative, adjToComparative, adjFromSuperlative, adjFromComparative, + advToAdjective, adjToAdverb, adjToNoun + }, - advToAdjective, adjToAdverb, adjToNoun } diff --git a/src/2-two/swap/api/swap.js b/src/2-two/swap/api/swap.js index 0dfa481e9..a4e8ea205 100644 --- a/src/2-two/swap/api/swap.js +++ b/src/2-two/swap/api/swap.js @@ -10,7 +10,7 @@ const swapNoun = function (m, lemma) { } const swapAdverb = function (m, lemma) { - const toAdverb = m.methods.two.transform.adjToAdverb + const toAdverb = m.methods.two.transform.adjective.adjToAdverb let str = lemma let adv = toAdverb(str) if (adv) { @@ -18,7 +18,7 @@ const swapAdverb = function (m, lemma) { } } const swapAdjective = function (m, lemma) { - const { adjToComparative, adjToSuperlative } = m.methods.two.transform + const { adjToComparative, adjToSuperlative } = m.methods.two.transform.adjective let str = lemma if (m.has('#Comparative')) { str = adjToComparative(str, m.model) diff --git a/src/3-three/misc/adjectives/index.js b/src/3-three/misc/adjectives/index.js index 0362d2b1c..0429849fd 100644 --- a/src/3-three/misc/adjectives/index.js +++ b/src/3-three/misc/adjectives/index.js @@ -3,7 +3,7 @@ export const getNth = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc) // guard against superlative+comparative forms const toRoot = function (adj) { - const { adjFromComparative, adjFromSuperlative } = adj.methods.two.transform + const { adjFromComparative, adjFromSuperlative } = adj.methods.two.transform.adjective let str = adj.text('normal') if (adj.has('#Comparative')) { return adjFromComparative(str, adj.model) @@ -22,7 +22,7 @@ const api = function (View) { this.viewType = 'Adjectives' } json(opts = {}) { - const { adjToAdverb, adjToNoun, adjToSuperlative, adjToComparative } = this.methods.two.transform + const { adjToAdverb, adjToNoun, adjToSuperlative, adjToComparative } = this.methods.two.transform.adjective opts.normal = true return this.map(m => { let json = m.toView().json(opts)[0] || {} @@ -40,7 +40,7 @@ const api = function (View) { return this.before('#Adverb+$').concat(this.after('^#Adverb+')) } conjugate(n) { - const { adjToComparative, adjToSuperlative, adjToNoun, adjToAdverb } = this.methods.two.transform + const { adjToComparative, adjToSuperlative, adjToNoun, adjToAdverb } = this.methods.two.transform.adjective return getNth(this, n).map(adj => { let root = toRoot(adj) return { @@ -53,7 +53,7 @@ const api = function (View) { }, []) } toComparative(n) { - const { adjToComparative } = this.methods.two.transform + const { adjToComparative } = this.methods.two.transform.adjective return getNth(this, n).map(adj => { let root = toRoot(adj) let str = adjToComparative(root, this.model) @@ -61,7 +61,7 @@ const api = function (View) { }) } toSuperlative(n) { - const { adjToSuperlative } = this.methods.two.transform + const { adjToSuperlative } = this.methods.two.transform.adjective return getNth(this, n).map(adj => { let root = toRoot(adj) let str = adjToSuperlative(root, this.model) @@ -69,7 +69,7 @@ const api = function (View) { }) } toAdverb(n) { - const { adjToAdverb } = this.methods.two.transform + const { adjToAdverb } = this.methods.two.transform.adjective return getNth(this, n).map(adj => { let root = toRoot(adj) let str = adjToAdverb(root, this.model) @@ -77,7 +77,7 @@ const api = function (View) { }) } toNoun(n) { - const { adjToNoun } = this.methods.two.transform + const { adjToNoun } = this.methods.two.transform.adjective return getNth(this, n).map(adj => { let root = toRoot(adj) let str = adjToNoun(root, this.model) diff --git a/src/3-three/misc/adverbs/index.js b/src/3-three/misc/adverbs/index.js index d63e3a122..a7b441f30 100644 --- a/src/3-three/misc/adverbs/index.js +++ b/src/3-three/misc/adverbs/index.js @@ -9,7 +9,7 @@ const api = function (View) { this.viewType = 'Adverbs' } json(opts = {}) { - const toAdj = this.methods.two.transform.advToAdjective + const toAdj = this.methods.two.transform.adjective.advToAdjective opts.normal = true return this.map(m => { let json = m.toView().json(opts)[0] || {} diff --git a/tests/three/adjectives/adj-adv.test.js b/tests/three/adjectives/adj-adv.test.js index 323c4270b..dd5297997 100644 --- a/tests/three/adjectives/adj-adv.test.js +++ b/tests/three/adjectives/adj-adv.test.js @@ -121,7 +121,7 @@ test('toAdjective:', function (t) { }) test('toAdverb:', function (t) { - let adjToAdverb = nlp().methods.two.transform.adjToAdverb + let adjToAdverb = nlp().methods.two.transform.adjective.adjToAdverb arr.forEach(a => { if (a[1]) { t.equal(adjToAdverb(a[1]), a[0], here + ` [ToAdverb] ${a[1]}`) diff --git a/tests/three/adjectives/adj-noun.test.js b/tests/three/adjectives/adj-noun.test.js index f851eab8b..9e2f3c11b 100644 --- a/tests/three/adjectives/adj-noun.test.js +++ b/tests/three/adjectives/adj-noun.test.js @@ -73,7 +73,7 @@ let arr = [ ] test('toNoun:', function (t) { - let adjToNoun = nlp().methods.two.transform.adjToNoun + let adjToNoun = nlp().methods.two.transform.adjective.adjToNoun arr.forEach(a => { let res = adjToNoun(a[0]) t.equal(res, a[1], here + ` [toNoun] ${a[1]}`) From 50dac84806c00102eee1e3a7386e9e2988d1a2c5 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Tue, 18 Oct 2022 12:44:02 -0400 Subject: [PATCH 04/33] move noun tranform methods --- .../methods/parseMatch/04-inflect-root.js | 16 +++---- src/2-two/preTagger/compute/root.js | 10 ++--- src/2-two/preTagger/methods/expand/byTag.js | 10 ++--- .../methods/transform/adjectives/index.js | 10 ++--- .../preTagger/methods/transform/index.js | 20 +++++---- src/2-two/preTagger/model/_expand/index.js | 6 +-- src/2-two/swap/api/swap.js | 10 ++--- src/3-three/misc/adjectives/index.js | 42 +++++++++---------- src/3-three/misc/adverbs/index.js | 4 +- src/3-three/nouns/api/toPlural.js | 8 ++-- src/3-three/nouns/api/toSingular.js | 8 ++-- tests/three/adjectives/adj-adv.test.js | 4 +- tests/three/adjectives/adj-noun.test.js | 4 +- 13 files changed, 77 insertions(+), 75 deletions(-) diff --git a/src/1-one/match/methods/parseMatch/04-inflect-root.js b/src/1-one/match/methods/parseMatch/04-inflect-root.js index 8abfb20ac..8c48925f3 100644 --- a/src/1-one/match/methods/parseMatch/04-inflect-root.js +++ b/src/1-one/match/methods/parseMatch/04-inflect-root.js @@ -9,24 +9,24 @@ const addVerbs = function (token, world) { } const addNoun = function (token, world) { - let { nounToPlural } = world.methods.two.transform + let { toPlural } = world.methods.two.transform.noun let res = [token.root] - if (!nounToPlural) { + if (!toPlural) { return res } - res.push(nounToPlural(token.root, world.model)) + res.push(toPlural(token.root, world.model)) return res } const addAdjective = function (token, world) { - let { adjToSuperlative, adjToComparative, adjToAdverb } = world.methods.two.transform.adjective + let { toSuperlative, toComparative, toAdverb } = world.methods.two.transform.adjective let res = [token.root] - if (!adjToSuperlative || !adjToComparative || !adjToAdverb) { + if (!toSuperlative || !toComparative || !toAdverb) { return res } - res.push(adjToSuperlative(token.root, world.model)) - res.push(adjToComparative(token.root, world.model)) - res.push(adjToAdverb(token.root, world.model)) + res.push(toSuperlative(token.root, world.model)) + res.push(toComparative(token.root, world.model)) + res.push(toAdverb(token.root, world.model)) return res } diff --git a/src/2-two/preTagger/compute/root.js b/src/2-two/preTagger/compute/root.js index f37ad20ba..90e8a509a 100644 --- a/src/2-two/preTagger/compute/root.js +++ b/src/2-two/preTagger/compute/root.js @@ -8,7 +8,7 @@ const toRoot = { // 'drinks' -> 'drink' 'Plural': (term, world) => { let str = term.machine || term.normal || term.text - return world.methods.two.transform.nounToSingular(str, world.model) + return world.methods.two.transform.noun.toSingular(str, world.model) }, // '' 'Copula': () => { @@ -35,18 +35,18 @@ const toRoot = { // 'quieter' -> 'quiet' 'Comparative': (term, world) => { let str = term.machine || term.normal || term.text - return world.methods.two.transform.adjective.adjFromComparative(str, world.model) + return world.methods.two.transform.adjective.fromComparative(str, world.model) }, // 'quietest' -> 'quiet' 'Superlative': (term, world) => { let str = term.machine || term.normal || term.text - return world.methods.two.transform.adjective.adjFromSuperlative(str, world.model) + return world.methods.two.transform.adjective.fromSuperlative(str, world.model) }, // 'suddenly' -> 'sudden' 'Adverb': (term, world) => { - const { advToAdjective } = world.methods.two.transform.adjective + const { fromAdverb } = world.methods.two.transform.adjective let str = term.machine || term.normal || term.text - return advToAdjective(str) + return fromAdverb(str) }, } diff --git a/src/2-two/preTagger/methods/expand/byTag.js b/src/2-two/preTagger/methods/expand/byTag.js index b12411ebc..8bceb459c 100644 --- a/src/2-two/preTagger/methods/expand/byTag.js +++ b/src/2-two/preTagger/methods/expand/byTag.js @@ -3,7 +3,7 @@ export default { // add plural forms of singular nouns Singular: (word, lex, methods, model) => { let already = model.one.lexicon - let plural = methods.two.transform.nounToPlural(word, model) + let plural = methods.two.transform.noun.toPlural(word, model) if (!already[plural]) { lex[plural] = lex[plural] || 'Plural' } @@ -12,14 +12,14 @@ export default { // superlative/ comparative forms for adjectives Comparable: (word, lex, methods, model) => { let already = model.one.lexicon - let { adjToSuperlative, adjToComparative } = methods.two.transform.adjective + let { toSuperlative, toComparative } = methods.two.transform.adjective // fast -> fastest - let sup = adjToSuperlative(word, model) + let sup = toSuperlative(word, model) if (!already[sup]) { lex[sup] = lex[sup] || 'Superlative' } // fast -> faster - let comp = adjToComparative(word, model) + let comp = toComparative(word, model) if (!already[comp]) { lex[comp] = lex[comp] || 'Comparative' } @@ -29,7 +29,7 @@ export default { // 'german' -> 'germans' Demonym: (word, lex, methods, model) => { - let plural = methods.two.transform.nounToPlural(word, model) + let plural = methods.two.transform.noun.toPlural(word, model) lex[plural] = lex[plural] || ['Demonym', 'Plural'] }, diff --git a/src/2-two/preTagger/methods/transform/adjectives/index.js b/src/2-two/preTagger/methods/transform/adjectives/index.js index d692f35f0..8a2ae6114 100644 --- a/src/2-two/preTagger/methods/transform/adjectives/index.js +++ b/src/2-two/preTagger/methods/transform/adjectives/index.js @@ -1,22 +1,22 @@ import { convert } from 'suffix-thumb' -const adjToSuperlative = function (adj, model) { +const toSuperlative = function (adj, model) { const mod = model.two.models.toSuperlative return convert(adj, mod) } -const adjToComparative = function (adj, model) { +const toComparative = function (adj, model) { const mod = model.two.models.toComparative return convert(adj, mod) } -const adjFromComparative = function (adj, model) { +const fromComparative = function (adj, model) { const mod = model.two.models.fromComparative return convert(adj, mod) } -const adjFromSuperlative = function (adj, model) { +const fromSuperlative = function (adj, model) { const mod = model.two.models.fromSuperlative return convert(adj, mod) } export { - adjToSuperlative, adjToComparative, adjFromComparative, adjFromSuperlative + toSuperlative, toComparative, fromComparative, fromSuperlative } diff --git a/src/2-two/preTagger/methods/transform/index.js b/src/2-two/preTagger/methods/transform/index.js index 31053a954..33345851e 100644 --- a/src/2-two/preTagger/methods/transform/index.js +++ b/src/2-two/preTagger/methods/transform/index.js @@ -1,24 +1,26 @@ -import nounToPlural from './nouns/toPlural/index.js' -import nounToSingular from './nouns/toSingular/index.js' +import toPlural from './nouns/toPlural/index.js' +import toSingular from './nouns/toSingular/index.js' import verbToInfinitive from './verbs/toInfinitive/index.js' import verbConjugate from './verbs/conjugate/index.js' import getTense from './verbs/getTense/index.js' -import advToAdjective from './adverbs/toAdjective.js' -import adjToAdverb from './adverbs/toAdverb.js' -import adjToNoun from './adverbs/toNoun.js' +import fromAdverb from './adverbs/toAdjective.js' +import toAdverb from './adverbs/toAdverb.js' +import toNoun from './adverbs/toNoun.js' -import { adjToSuperlative, adjToComparative, adjFromSuperlative, adjFromComparative } from './adjectives/index.js' +import { toSuperlative, toComparative, fromSuperlative, fromComparative } from './adjectives/index.js' export default { - nounToPlural, nounToSingular, + noun: { + toPlural, toSingular, + }, verbToInfinitive, getTense, verbConjugate, adjective: { - adjToSuperlative, adjToComparative, adjFromSuperlative, adjFromComparative, - advToAdjective, adjToAdverb, adjToNoun + toSuperlative, toComparative, toAdverb, toNoun, + fromAdverb, fromSuperlative, fromComparative, }, } diff --git a/src/2-two/preTagger/model/_expand/index.js b/src/2-two/preTagger/model/_expand/index.js index 71ffa20c0..93c0adf86 100644 --- a/src/2-two/preTagger/model/_expand/index.js +++ b/src/2-two/preTagger/model/_expand/index.js @@ -2,7 +2,7 @@ import methods from '../../methods/index.js' import expandIrregulars from './irregulars.js' import expandModels from './models.js' import conjugate from '../../methods/transform/verbs/conjugate/index.js' -import { adjToSuperlative, adjToComparative } from '../../methods/transform/adjectives/index.js' +import { toSuperlative, toComparative } from '../../methods/transform/adjectives/index.js' import toInfinitive from '../../methods/transform/verbs/toInfinitive/index.js' import models from '../models/index.js' let tmpModel = { @@ -71,9 +71,9 @@ const expandVerb = function (str, words, doPresent) { } const expandAdjective = function (str, words, model) { - let sup = adjToSuperlative(str, model) + let sup = toSuperlative(str, model) words[sup] = words[sup] || 'Superlative' - let comp = adjToComparative(str, model) + let comp = toComparative(str, model) words[comp] = words[comp] || 'Comparative' } diff --git a/src/2-two/swap/api/swap.js b/src/2-two/swap/api/swap.js index a4e8ea205..0b88084c4 100644 --- a/src/2-two/swap/api/swap.js +++ b/src/2-two/swap/api/swap.js @@ -3,14 +3,14 @@ import swapVerb from './swap-verb.js' const swapNoun = function (m, lemma) { let str = lemma if (m.has('#Plural')) { - const toPlural = m.methods.two.transform.nounToPlural + const toPlural = m.methods.two.transform.noun.toPlural str = toPlural(lemma, m.model) } m.replaceWith(str) } const swapAdverb = function (m, lemma) { - const toAdverb = m.methods.two.transform.adjective.adjToAdverb + const { toAdverb } = m.methods.two.transform.adjective let str = lemma let adv = toAdverb(str) if (adv) { @@ -18,12 +18,12 @@ const swapAdverb = function (m, lemma) { } } const swapAdjective = function (m, lemma) { - const { adjToComparative, adjToSuperlative } = m.methods.two.transform.adjective + const { toComparative, toSuperlative } = m.methods.two.transform.adjective let str = lemma if (m.has('#Comparative')) { - str = adjToComparative(str, m.model) + str = toComparative(str, m.model) } else if (m.has('#Superlative')) { - str = adjToSuperlative(str, m.model) + str = toSuperlative(str, m.model) } if (str) { m.replaceWith(str) diff --git a/src/3-three/misc/adjectives/index.js b/src/3-three/misc/adjectives/index.js index 0429849fd..84b49d038 100644 --- a/src/3-three/misc/adjectives/index.js +++ b/src/3-three/misc/adjectives/index.js @@ -3,13 +3,13 @@ export const getNth = (doc, n) => (typeof n === 'number' ? doc.eq(n) : doc) // guard against superlative+comparative forms const toRoot = function (adj) { - const { adjFromComparative, adjFromSuperlative } = adj.methods.two.transform.adjective + const { fromComparative, fromSuperlative } = adj.methods.two.transform.adjective let str = adj.text('normal') if (adj.has('#Comparative')) { - return adjFromComparative(str, adj.model) + return fromComparative(str, adj.model) } if (adj.has('#Superlative')) { - return adjFromSuperlative(str, adj.model) + return fromSuperlative(str, adj.model) } return str } @@ -22,16 +22,16 @@ const api = function (View) { this.viewType = 'Adjectives' } json(opts = {}) { - const { adjToAdverb, adjToNoun, adjToSuperlative, adjToComparative } = this.methods.two.transform.adjective + const { toAdverb, toNoun, toSuperlative, toComparative } = this.methods.two.transform.adjective opts.normal = true return this.map(m => { let json = m.toView().json(opts)[0] || {} let str = toRoot(m) json.adjective = { - adverb: adjToAdverb(str), - noun: adjToNoun(str), - superlative: adjToSuperlative(str, this.model), - comparative: adjToComparative(str, this.model), + adverb: toAdverb(str), + noun: toNoun(str), + superlative: toSuperlative(str, this.model), + comparative: toComparative(str, this.model), } return json }, []) @@ -40,47 +40,47 @@ const api = function (View) { return this.before('#Adverb+$').concat(this.after('^#Adverb+')) } conjugate(n) { - const { adjToComparative, adjToSuperlative, adjToNoun, adjToAdverb } = this.methods.two.transform.adjective + const { toComparative, toSuperlative, toNoun, toAdverb } = this.methods.two.transform.adjective return getNth(this, n).map(adj => { let root = toRoot(adj) return { Adjective: root, - Comparative: adjToComparative(root, this.model), - Superlative: adjToSuperlative(root, this.model), - Noun: adjToNoun(root, this.model), - Adverb: adjToAdverb(root, this.model), + Comparative: toComparative(root, this.model), + Superlative: toSuperlative(root, this.model), + Noun: toNoun(root, this.model), + Adverb: toAdverb(root, this.model), } }, []) } toComparative(n) { - const { adjToComparative } = this.methods.two.transform.adjective + const { toComparative } = this.methods.two.transform.adjective return getNth(this, n).map(adj => { let root = toRoot(adj) - let str = adjToComparative(root, this.model) + let str = toComparative(root, this.model) return adj.replaceWith(str) }) } toSuperlative(n) { - const { adjToSuperlative } = this.methods.two.transform.adjective + const { toSuperlative } = this.methods.two.transform.adjective return getNth(this, n).map(adj => { let root = toRoot(adj) - let str = adjToSuperlative(root, this.model) + let str = toSuperlative(root, this.model) return adj.replaceWith(str) }) } toAdverb(n) { - const { adjToAdverb } = this.methods.two.transform.adjective + const { toAdverb } = this.methods.two.transform.adjective return getNth(this, n).map(adj => { let root = toRoot(adj) - let str = adjToAdverb(root, this.model) + let str = toAdverb(root, this.model) return adj.replaceWith(str) }) } toNoun(n) { - const { adjToNoun } = this.methods.two.transform.adjective + const { toNoun } = this.methods.two.transform.adjective return getNth(this, n).map(adj => { let root = toRoot(adj) - let str = adjToNoun(root, this.model) + let str = toNoun(root, this.model) return adj.replaceWith(str) }) } diff --git a/src/3-three/misc/adverbs/index.js b/src/3-three/misc/adverbs/index.js index a7b441f30..f625da252 100644 --- a/src/3-three/misc/adverbs/index.js +++ b/src/3-three/misc/adverbs/index.js @@ -9,12 +9,12 @@ const api = function (View) { this.viewType = 'Adverbs' } json(opts = {}) { - const toAdj = this.methods.two.transform.adjective.advToAdjective + const fromAdverb = this.methods.two.transform.adjective.fromAdverb opts.normal = true return this.map(m => { let json = m.toView().json(opts)[0] || {} json.adverb = { - adjective: toAdj(json.normal) + adjective: fromAdverb(json.normal) } return json }, []) diff --git a/src/3-three/nouns/api/toPlural.js b/src/3-three/nouns/api/toPlural.js index c21bbc0fc..9298bec80 100644 --- a/src/3-three/nouns/api/toPlural.js +++ b/src/3-three/nouns/api/toPlural.js @@ -8,7 +8,7 @@ const hasPlural = function (parsed) { return true } -const toPlural = function (m, parsed) { +const nounToPlural = function (m, parsed) { // already plural? if (parsed.isPlural === true) { return m @@ -18,10 +18,10 @@ const toPlural = function (m, parsed) { return m } const { methods, model } = m.world - const { nounToPlural } = methods.two.transform + const { toPlural } = methods.two.transform.noun // inflect the root noun let str = parsed.root.text('normal') - let plural = nounToPlural(str, model) + let plural = toPlural(str, model) m.match(parsed.root).replaceWith(plural, keep).tag('Plural', 'toPlural') // should we change the determiner/article? if (parsed.determiner.has('(a|an)')) { @@ -30,4 +30,4 @@ const toPlural = function (m, parsed) { } return m } -export default toPlural +export default nounToPlural diff --git a/src/3-three/nouns/api/toSingular.js b/src/3-three/nouns/api/toSingular.js index 786435492..4aa39501d 100644 --- a/src/3-three/nouns/api/toSingular.js +++ b/src/3-three/nouns/api/toSingular.js @@ -1,18 +1,18 @@ const keep = { tags: true } -const toSingular = function (m, parsed) { +const nounToSingular = function (m, parsed) { // already singular? if (parsed.isPlural === false) { return m } const { methods, model } = m.world - const { nounToSingular } = methods.two.transform + const { toSingular } = methods.two.transform.noun // inflect the root noun let str = parsed.root.text('normal') - let single = nounToSingular(str, model) + let single = toSingular(str, model) m.replace(parsed.root, single, keep).tag('Singular', 'toPlural') // should we change the determiner/article? // m.debug() return m } -export default toSingular +export default nounToSingular diff --git a/tests/three/adjectives/adj-adv.test.js b/tests/three/adjectives/adj-adv.test.js index dd5297997..73b71b7f1 100644 --- a/tests/three/adjectives/adj-adv.test.js +++ b/tests/three/adjectives/adj-adv.test.js @@ -121,10 +121,10 @@ test('toAdjective:', function (t) { }) test('toAdverb:', function (t) { - let adjToAdverb = nlp().methods.two.transform.adjective.adjToAdverb + let toAdverb = nlp().methods.two.transform.adjective.toAdverb arr.forEach(a => { if (a[1]) { - t.equal(adjToAdverb(a[1]), a[0], here + ` [ToAdverb] ${a[1]}`) + t.equal(toAdverb(a[1]), a[0], here + ` [ToAdverb] ${a[1]}`) } // let doc = nlp(a[1]).compute('root') // let json = doc.adjectives().json()[0] || { terms: [{}] } diff --git a/tests/three/adjectives/adj-noun.test.js b/tests/three/adjectives/adj-noun.test.js index 9e2f3c11b..54d8d28e7 100644 --- a/tests/three/adjectives/adj-noun.test.js +++ b/tests/three/adjectives/adj-noun.test.js @@ -73,9 +73,9 @@ let arr = [ ] test('toNoun:', function (t) { - let adjToNoun = nlp().methods.two.transform.adjective.adjToNoun + let { toNoun } = nlp().methods.two.transform.adjective arr.forEach(a => { - let res = adjToNoun(a[0]) + let res = toNoun(a[0]) t.equal(res, a[1], here + ` [toNoun] ${a[1]}`) }) t.end() From ea9fc62fb4192c5ffce9cdce40db24a36a7f0d8f Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Tue, 18 Oct 2022 12:51:38 -0400 Subject: [PATCH 05/33] move verb methods too --- .../methods/parseMatch/04-inflect-root.js | 8 +++---- src/2-two/preTagger/compute/root.js | 6 ++--- src/2-two/preTagger/methods/expand/byTag.js | 4 ++-- .../preTagger/methods/transform/index.js | 11 +++++---- src/2-two/swap/api/swap-verb.js | 2 +- src/3-three/verbs/api/conjugate/toFuture.js | 10 ++++---- src/3-three/verbs/api/conjugate/toGerund.js | 6 ++--- .../verbs/api/conjugate/toInfinitive.js | 8 +++---- src/3-three/verbs/api/conjugate/toPast.js | 12 +++++----- src/3-three/verbs/api/conjugate/toPresent.js | 24 +++++++++---------- src/3-three/verbs/api/lib.js | 4 ++-- src/3-three/verbs/api/toJSON.js | 8 +++---- 12 files changed, 53 insertions(+), 50 deletions(-) diff --git a/src/1-one/match/methods/parseMatch/04-inflect-root.js b/src/1-one/match/methods/parseMatch/04-inflect-root.js index 8c48925f3..98a52b621 100644 --- a/src/1-one/match/methods/parseMatch/04-inflect-root.js +++ b/src/1-one/match/methods/parseMatch/04-inflect-root.js @@ -1,9 +1,9 @@ const addVerbs = function (token, world) { - let { verbConjugate } = world.methods.two.transform - if (!verbConjugate) { + let { conjugate } = world.methods.two.transform.verb + if (!conjugate) { return [] } - let res = verbConjugate(token.root, world.model) + let res = conjugate(token.root, world.model) delete res.FutureTense return Object.values(res).filter(str => str) } @@ -37,7 +37,7 @@ const inflectRoot = function (regs, world) { // a reg to convert '{foo}' if (token.root) { // check if compromise/two is loaded - if (world.methods.two && world.methods.two.transform && world.methods.two.transform.verbConjugate) { + if (world.methods.two && world.methods.two.transform && world.methods.two.transform.verb.conjugate) { let choices = [] if (!token.pos || token.pos === 'Verb') { choices = choices.concat(addVerbs(token, world)) diff --git a/src/2-two/preTagger/compute/root.js b/src/2-two/preTagger/compute/root.js index 90e8a509a..d105b0c80 100644 --- a/src/2-two/preTagger/compute/root.js +++ b/src/2-two/preTagger/compute/root.js @@ -17,12 +17,12 @@ const toRoot = { // 'walked' -> 'walk' 'PastTense': (term, world) => { let str = term.machine || term.normal || term.text - return world.methods.two.transform.verbToInfinitive(str, world.model, 'PastTense') + return world.methods.two.transform.verb.toInfinitive(str, world.model, 'PastTense') }, // 'walking' -> 'walk' 'Gerund': (term, world) => { let str = term.machine || term.normal || term.text - return world.methods.two.transform.verbToInfinitive(str, world.model, 'Gerund') + return world.methods.two.transform.verb.toInfinitive(str, world.model, 'Gerund') }, // 'walks' -> 'walk' 'PresentTense': (term, world) => { @@ -30,7 +30,7 @@ const toRoot = { if (term.tags.has('Infinitive')) { return str } - return world.methods.two.transform.verbToInfinitive(str, world.model, 'PresentTense') + return world.methods.two.transform.verb.toInfinitive(str, world.model, 'PresentTense') }, // 'quieter' -> 'quiet' 'Comparative': (term, world) => { diff --git a/src/2-two/preTagger/methods/expand/byTag.js b/src/2-two/preTagger/methods/expand/byTag.js index 8bceb459c..8deef144f 100644 --- a/src/2-two/preTagger/methods/expand/byTag.js +++ b/src/2-two/preTagger/methods/expand/byTag.js @@ -36,7 +36,7 @@ export default { // conjugate all forms of these verbs Infinitive: (word, lex, methods, model) => { let already = model.one.lexicon - let all = methods.two.transform.verbConjugate(word, model) + let all = methods.two.transform.verb.conjugate(word, model) Object.entries(all).forEach(a => { if (!already[a[1]] && !lex[a[1]]) { lex[a[1]] = a[0] @@ -55,7 +55,7 @@ export default { lex[inf] = lex[inf] || 'Infinitive' } // conjugate it - let all = methods.two.transform.verbConjugate(inf, model) + let all = methods.two.transform.verb.conjugate(inf, model) Object.entries(all).forEach(a => { // not 'walker up', or 'had taken up' if (a[0] === 'Actor' || a[1] === '') { diff --git a/src/2-two/preTagger/methods/transform/index.js b/src/2-two/preTagger/methods/transform/index.js index 33345851e..96a197d10 100644 --- a/src/2-two/preTagger/methods/transform/index.js +++ b/src/2-two/preTagger/methods/transform/index.js @@ -1,8 +1,8 @@ import toPlural from './nouns/toPlural/index.js' import toSingular from './nouns/toSingular/index.js' -import verbToInfinitive from './verbs/toInfinitive/index.js' -import verbConjugate from './verbs/conjugate/index.js' +import toInfinitive from './verbs/toInfinitive/index.js' +import conjugate from './verbs/conjugate/index.js' import getTense from './verbs/getTense/index.js' import fromAdverb from './adverbs/toAdjective.js' import toAdverb from './adverbs/toAdverb.js' @@ -15,8 +15,11 @@ export default { noun: { toPlural, toSingular, }, - verbToInfinitive, getTense, - verbConjugate, + verb: { + toInfinitive, + conjugate, + }, + getTense, adjective: { toSuperlative, toComparative, toAdverb, toNoun, diff --git a/src/2-two/swap/api/swap-verb.js b/src/2-two/swap/api/swap-verb.js index f6289fa6a..5a10e902e 100644 --- a/src/2-two/swap/api/swap-verb.js +++ b/src/2-two/swap/api/swap-verb.js @@ -1,5 +1,5 @@ const matchVerb = function (m, lemma) { - const conjugate = m.methods.two.transform.verbConjugate + const conjugate = m.methods.two.transform.verb.conjugate let all = conjugate(lemma, m.model) if (m.has('#Gerund')) { return all.Gerund diff --git a/src/3-three/verbs/api/conjugate/toFuture.js b/src/3-three/verbs/api/conjugate/toFuture.js index ee464e57d..5e9f47fdc 100644 --- a/src/3-three/verbs/api/conjugate/toFuture.js +++ b/src/3-three/verbs/api/conjugate/toFuture.js @@ -2,14 +2,14 @@ import { noop, getTense } from '../lib.js' const keep = { tags: true } const simple = (vb, parsed) => { - const { verbToInfinitive } = vb.methods.two.transform + const { toInfinitive } = vb.methods.two.transform.verb const { root, auxiliary } = parsed // 'i may' if (root.has('#Modal')) { return vb } let str = root.text('normal') - str = verbToInfinitive(str, vb.model, getTense(root)) + str = toInfinitive(str, vb.model, getTense(root)) if (str) { vb = vb.replace(root, str, keep) vb.not('#Particle').tag('Verb') @@ -21,12 +21,12 @@ const simple = (vb, parsed) => { // 'will be walking' const progressive = (vb, parsed) => { - const { verbConjugate, verbToInfinitive } = vb.methods.two.transform + const { conjugate, toInfinitive } = vb.methods.two.transform.verb const { root, auxiliary } = parsed let str = root.text('normal') - str = verbToInfinitive(str, vb.model, getTense(root)) + str = toInfinitive(str, vb.model, getTense(root)) if (str) { - str = verbConjugate(str, vb.model).Gerund + str = conjugate(str, vb.model).Gerund vb.replace(root, str, keep) vb.not('#Particle').tag('PresentTense') } diff --git a/src/3-three/verbs/api/conjugate/toGerund.js b/src/3-three/verbs/api/conjugate/toGerund.js index 782cec453..adfdd676c 100644 --- a/src/3-three/verbs/api/conjugate/toGerund.js +++ b/src/3-three/verbs/api/conjugate/toGerund.js @@ -4,7 +4,7 @@ const keep = { tags: true } // all verb forms are the same const toGerund = function (vb, parsed) { // console.log(form) - const { verbToInfinitive, verbConjugate } = vb.methods.two.transform + const { toInfinitive, conjugate } = vb.methods.two.transform.verb const { root, auxiliary } = parsed if (vb.has('#Gerund')) { return vb @@ -12,8 +12,8 @@ const toGerund = function (vb, parsed) { // conjugate '-ing' verb let str = root.text('normal') - str = verbToInfinitive(str, vb.model, getTense(root)) - let gerund = verbConjugate(str, vb.model).Gerund + str = toInfinitive(str, vb.model, getTense(root)) + let gerund = conjugate(str, vb.model).Gerund // 'are walking', 'is walking' if (gerund) { gerund = `${isAreAm(vb, parsed)} ${gerund}` diff --git a/src/3-three/verbs/api/conjugate/toInfinitive.js b/src/3-three/verbs/api/conjugate/toInfinitive.js index 5ae324fe5..12be3e1e8 100644 --- a/src/3-three/verbs/api/conjugate/toInfinitive.js +++ b/src/3-three/verbs/api/conjugate/toInfinitive.js @@ -2,12 +2,12 @@ import { doDoes, getTense } from '../lib.js' const keep = { tags: true } // all verb forms are the same -const toInfinitive = function (vb, parsed) { - const { verbToInfinitive } = vb.methods.two.transform +const toInf = function (vb, parsed) { + const { toInfinitive } = vb.methods.two.transform.verb const { root, auxiliary } = parsed let aux = auxiliary.terms().harden() let str = root.text('normal') - str = verbToInfinitive(str, vb.model, getTense(root)) + str = toInfinitive(str, vb.model, getTense(root)) if (str) { vb.replace(root, str, keep).tag('Verb').firstTerm().tag('Infinitive') } @@ -27,4 +27,4 @@ const toInfinitive = function (vb, parsed) { vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']) return vb } -export default toInfinitive +export default toInf diff --git a/src/3-three/verbs/api/conjugate/toPast.js b/src/3-three/verbs/api/conjugate/toPast.js index d69cb9604..6c53167e6 100644 --- a/src/3-three/verbs/api/conjugate/toPast.js +++ b/src/3-three/verbs/api/conjugate/toPast.js @@ -12,15 +12,15 @@ const fns = { // walk->walked simple: (vb, parsed) => { - const { verbConjugate, verbToInfinitive } = vb.methods.two.transform + const { conjugate, toInfinitive } = vb.methods.two.transform.verb const root = parsed.root // 'i may' if (root.has('#Modal')) { return vb } let str = root.text({ keepPunct: false }) - str = verbToInfinitive(str, vb.model, getTense(root)) - let all = verbConjugate(str, vb.model) + str = toInfinitive(str, vb.model, getTense(root)) + let all = conjugate(str, vb.model) // 'driven' || 'drove' str = all.PastTense // all.Participle || all.PastTense @@ -55,11 +55,11 @@ const fns = { // some verbs have this weird past-tense form // drive -> driven, (!drove) hasParticiple: (vb, parsed) => { - const { verbConjugate, verbToInfinitive } = vb.methods.two.transform + const { conjugate, toInfinitive } = vb.methods.two.transform.verb const root = parsed.root let str = root.text('normal') - str = verbToInfinitive(str, vb.model, getTense(root)) - return verbConjugate(str, vb.model).Participle + str = toInfinitive(str, vb.model, getTense(root)) + return conjugate(str, vb.model).Participle }, diff --git a/src/3-three/verbs/api/conjugate/toPresent.js b/src/3-three/verbs/api/conjugate/toPresent.js index b44d5259a..a24e886ec 100644 --- a/src/3-three/verbs/api/conjugate/toPresent.js +++ b/src/3-three/verbs/api/conjugate/toPresent.js @@ -3,13 +3,13 @@ const keep = { tags: true } // walk->walked const simple = (vb, parsed) => { - const { verbConjugate, verbToInfinitive } = vb.methods.two.transform + const { conjugate, toInfinitive } = vb.methods.two.transform.verb const root = parsed.root let str = root.text('normal') - str = verbToInfinitive(str, vb.model, getTense(root)) + str = toInfinitive(str, vb.model, getTense(root)) // 'i walk' vs 'he walks' if (isPlural(vb, parsed) === false) { - str = verbConjugate(str, vb.model).PresentTense + str = conjugate(str, vb.model).PresentTense } // handle copula if (root.has('#Copula')) { @@ -24,13 +24,13 @@ const simple = (vb, parsed) => { } const toGerund = (vb, parsed) => { - const { verbConjugate, verbToInfinitive } = vb.methods.two.transform + const { conjugate, toInfinitive } = vb.methods.two.transform.verb const root = parsed.root let str = root.text('normal') - str = verbToInfinitive(str, vb.model, getTense(root)) + str = toInfinitive(str, vb.model, getTense(root)) // 'i walk' vs 'he walks' if (isPlural(vb, parsed) === false) { - str = verbConjugate(str, vb.model).Gerund + str = conjugate(str, vb.model).Gerund } if (str) { vb = vb.replace(root, str, keep) @@ -39,11 +39,11 @@ const toGerund = (vb, parsed) => { return vb } -const toInfinitive = (vb, parsed) => { - const { verbToInfinitive } = vb.methods.two.transform +const vbToInf = (vb, parsed) => { + const { toInfinitive } = vb.methods.two.transform.verb const root = parsed.root let str = parsed.root.text('normal') - str = verbToInfinitive(str, vb.model, getTense(root)) + str = toInfinitive(str, vb.model, getTense(root)) if (str) { vb = vb.replace(parsed.root, str, keep) } @@ -57,7 +57,7 @@ const forms = { 'infinitive': simple, // he walks -> he walked 'simple-present': (vb, parsed) => { - const { verbConjugate } = vb.methods.two.transform + const { conjugate } = vb.methods.two.transform.verb let { root } = parsed // is it *only* a infinitive? - 'we buy' etc if (root.has('#Infinitive')) { @@ -68,7 +68,7 @@ const forms = { return vb } let str = root.text('normal') - let pres = verbConjugate(str, vb.model).PresentTense + let pres = conjugate(str, vb.model).PresentTense if (str !== pres) { vb.replace(root, pres, keep) } @@ -199,7 +199,7 @@ const forms = { 'modal-infinitive': noop, // must have walked 'modal-past': (vb, parsed) => { - toInfinitive(vb, parsed) + vbToInf(vb, parsed) return vb.remove('have') }, // started looking diff --git a/src/3-three/verbs/api/lib.js b/src/3-three/verbs/api/lib.js index c4fa48bb4..a7a1a018b 100644 --- a/src/3-three/verbs/api/lib.js +++ b/src/3-three/verbs/api/lib.js @@ -70,9 +70,9 @@ const getTense = function (m) { } const toInf = function (vb, parsed) { - const { verbToInfinitive } = vb.methods.two.transform + const { toInfinitive } = vb.methods.two.transform.verb let str = parsed.root.text({ keepPunct: false }) - str = verbToInfinitive(str, vb.model, getTense(vb)) + str = toInfinitive(str, vb.model, getTense(vb)) if (str) { vb.replace(parsed.root, str) } diff --git a/src/3-three/verbs/api/toJSON.js b/src/3-three/verbs/api/toJSON.js index e7142c761..c3e4f6821 100644 --- a/src/3-three/verbs/api/toJSON.js +++ b/src/3-three/verbs/api/toJSON.js @@ -17,10 +17,10 @@ const toText = function (m) { return m.text('normal') } -const toInfinitive = function (root) { - const { verbToInfinitive } = root.methods.two.transform +const toInf = function (root) { + const { toInfinitive } = root.methods.two.transform.verb let str = root.text('normal') - return verbToInfinitive(str, root.model, getTense(root)) + return toInfinitive(str, root.model, getTense(root)) } const toJSON = function (vb) { @@ -34,7 +34,7 @@ const toJSON = function (vb) { auxiliary: toText(parsed.auxiliary), negative: parsed.negative.found, prefix: toText(parsed.prefix), - infinitive: toInfinitive(parsed.root), + infinitive: toInf(parsed.root), grammar: info, } } From d3eb4b6432f48cd1091ef8adce07b931bb24b03a Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Tue, 18 Oct 2022 13:28:10 -0400 Subject: [PATCH 06/33] cleanup parseMatch methods --- scratch.js | 8 +++-- .../methods/parseMatch/04-inflect-root.js | 36 ++++++++++++------- .../preTagger/methods/transform/index.js | 2 -- .../transform/verbs/toInfinitive/index.js | 3 -- 4 files changed, 28 insertions(+), 21 deletions(-) diff --git a/scratch.js b/scratch.js index 1857f2fd3..a84659a05 100644 --- a/scratch.js +++ b/scratch.js @@ -1,9 +1,9 @@ /* eslint-disable no-console, no-unused-vars */ import nlp from './src/two.js' +// console.log(nlp.world().methods.two.transform) // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -nlp.verbose('tagger') -console.log(nlp.world().methods.two) +// nlp.verbose('tagger') // let txt = '' // let doc // let m @@ -36,7 +36,9 @@ console.log(nlp.world().methods.two) // doc.remove('Remove') // console.log(doc.text()) -const doc = nlp("These are the old-fashioned dilemmas").debug() +console.log(nlp.parseMatch('{sweet}')) + +// const doc = nlp("These are the old-fashioned dilemmas").debug() // const doc = nlp("foobar. he was demanding his rights after. walking his plank after") // let net = nlp.buildNet([{ match: 'his .', ifNo: ['demanding', 'rights'] }]) // doc.match(net).debug() diff --git a/src/1-one/match/methods/parseMatch/04-inflect-root.js b/src/1-one/match/methods/parseMatch/04-inflect-root.js index 98a52b621..91679a708 100644 --- a/src/1-one/match/methods/parseMatch/04-inflect-root.js +++ b/src/1-one/match/methods/parseMatch/04-inflect-root.js @@ -1,15 +1,19 @@ + +// add all conjugations of this verb const addVerbs = function (token, world) { - let { conjugate } = world.methods.two.transform.verb - if (!conjugate) { + let { conjugate, toInfinitive } = world.methods.two.transform.verb || {} + if (!conjugate || !toInfinitive) { return [] } - let res = conjugate(token.root, world.model) + let str = toInfinitive(token.root, world.model) + let res = conjugate(str, world.model) delete res.FutureTense - return Object.values(res).filter(str => str) + return Object.values(res).filter(s => s) } +// add all inflections of this noun const addNoun = function (token, world) { - let { toPlural } = world.methods.two.transform.noun + let { toPlural } = world.methods.two.transform.noun || {} let res = [token.root] if (!toPlural) { return res @@ -18,8 +22,9 @@ const addNoun = function (token, world) { return res } +// add all inflections of this adjective const addAdjective = function (token, world) { - let { toSuperlative, toComparative, toAdverb } = world.methods.two.transform.adjective + let { toSuperlative, toComparative, toAdverb } = world.methods.two.transform.adjective || {} let res = [token.root] if (!toSuperlative || !toComparative || !toAdverb) { return res @@ -37,16 +42,21 @@ const inflectRoot = function (regs, world) { // a reg to convert '{foo}' if (token.root) { // check if compromise/two is loaded - if (world.methods.two && world.methods.two.transform && world.methods.two.transform.verb.conjugate) { + if (world.methods.two && world.methods.two.transform) { let choices = [] - if (!token.pos || token.pos === 'Verb') { + // have explicitly set from POS - '{sweet/adjective}' + if (token.pos) { + if (token.pos === 'Verb') { + choices = choices.concat(addVerbs(token, world)) + } else if (token.pos === 'Noun') { + choices = choices.concat(addNoun(token, world)) + } else if (token.pos === 'Adjective') { + choices = choices.concat(addAdjective(token, world)) + } + } else { + // do verb/noun/adj by default choices = choices.concat(addVerbs(token, world)) - } - if (!token.pos || token.pos === 'Noun') { choices = choices.concat(addNoun(token, world)) - } - // don't run these by default - if (!token.pos || token.pos === 'Adjective') { choices = choices.concat(addAdjective(token, world)) } choices = choices.filter(str => str) diff --git a/src/2-two/preTagger/methods/transform/index.js b/src/2-two/preTagger/methods/transform/index.js index 96a197d10..c0362b99f 100644 --- a/src/2-two/preTagger/methods/transform/index.js +++ b/src/2-two/preTagger/methods/transform/index.js @@ -3,7 +3,6 @@ import toSingular from './nouns/toSingular/index.js' import toInfinitive from './verbs/toInfinitive/index.js' import conjugate from './verbs/conjugate/index.js' -import getTense from './verbs/getTense/index.js' import fromAdverb from './adverbs/toAdjective.js' import toAdverb from './adverbs/toAdverb.js' import toNoun from './adverbs/toNoun.js' @@ -19,7 +18,6 @@ export default { toInfinitive, conjugate, }, - getTense, adjective: { toSuperlative, toComparative, toAdverb, toNoun, diff --git a/src/2-two/preTagger/methods/transform/verbs/toInfinitive/index.js b/src/2-two/preTagger/methods/transform/verbs/toInfinitive/index.js index 04191f600..4a3d960fe 100644 --- a/src/2-two/preTagger/methods/transform/verbs/toInfinitive/index.js +++ b/src/2-two/preTagger/methods/transform/verbs/toInfinitive/index.js @@ -35,9 +35,6 @@ const copulaMap = { const toInfinitive = function (str, model, tense) { const { fromPast, fromPresent, fromGerund, fromParticiple } = model.two.models - // if (str.length < 3) { - // return str - // } let { prefix, verb, particle } = toParts(str, model) let inf = '' if (!tense) { From b9a708ac4586cc7b346f4f9f6e9aebf79edf1973 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Tue, 18 Oct 2022 15:36:43 -0400 Subject: [PATCH 07/33] use all for parseMatch root methods --- scratch.js | 2 +- .../methods/parseMatch/04-inflect-root.js | 38 +++++++++---------- .../methods/transform/adjectives/index.js | 13 +++++++ .../preTagger/methods/transform/index.js | 15 ++++---- .../transform/verbs/conjugate/index.js | 6 ++- src/2-two/preTagger/model/_expand/index.js | 2 +- 6 files changed, 46 insertions(+), 30 deletions(-) diff --git a/scratch.js b/scratch.js index a84659a05..4cfc145ee 100644 --- a/scratch.js +++ b/scratch.js @@ -36,7 +36,7 @@ import nlp from './src/two.js' // doc.remove('Remove') // console.log(doc.text()) -console.log(nlp.parseMatch('{sweet}')) +console.log(nlp.parseMatch('{sweet/adjective}')) // const doc = nlp("These are the old-fashioned dilemmas").debug() // const doc = nlp("foobar. he was demanding his rights after. walking his plank after") diff --git a/src/1-one/match/methods/parseMatch/04-inflect-root.js b/src/1-one/match/methods/parseMatch/04-inflect-root.js index 91679a708..898983f39 100644 --- a/src/1-one/match/methods/parseMatch/04-inflect-root.js +++ b/src/1-one/match/methods/parseMatch/04-inflect-root.js @@ -1,38 +1,36 @@ // add all conjugations of this verb const addVerbs = function (token, world) { - let { conjugate, toInfinitive } = world.methods.two.transform.verb || {} - if (!conjugate || !toInfinitive) { + let { all, toInfinitive } = world.methods.two.transform.verb || {} + let str = token.root + if (toInfinitive) { + str = toInfinitive(str, world.model) + } + if (!all) { + console.log('bail verb!') return [] } - let str = toInfinitive(token.root, world.model) - let res = conjugate(str, world.model) - delete res.FutureTense - return Object.values(res).filter(s => s) + return all(str, world.model) } // add all inflections of this noun const addNoun = function (token, world) { - let { toPlural } = world.methods.two.transform.noun || {} - let res = [token.root] - if (!toPlural) { - return res + let { all } = world.methods.two.transform.noun || {} + if (!all) { + console.log('bail noun!') + return [token.root] } - res.push(toPlural(token.root, world.model)) - return res + return all(token.root, world.model) } // add all inflections of this adjective const addAdjective = function (token, world) { - let { toSuperlative, toComparative, toAdverb } = world.methods.two.transform.adjective || {} - let res = [token.root] - if (!toSuperlative || !toComparative || !toAdverb) { - return res + let { all } = world.methods.two.transform.adjective || {} + if (!all) { + console.log('bail adj!') + return [token.root] } - res.push(toSuperlative(token.root, world.model)) - res.push(toComparative(token.root, world.model)) - res.push(toAdverb(token.root, world.model)) - return res + return all(token.root, world.model) } // turn '{walk}' into 'walking', 'walked', etc diff --git a/src/2-two/preTagger/methods/transform/adjectives/index.js b/src/2-two/preTagger/methods/transform/adjectives/index.js index 8a2ae6114..4acba1748 100644 --- a/src/2-two/preTagger/methods/transform/adjectives/index.js +++ b/src/2-two/preTagger/methods/transform/adjectives/index.js @@ -1,4 +1,6 @@ import { convert } from 'suffix-thumb' +import toAdverb from '../adverbs/toAdverb.js' + const toSuperlative = function (adj, model) { const mod = model.two.models.toSuperlative @@ -17,6 +19,17 @@ const fromSuperlative = function (adj, model) { return convert(adj, mod) } +const all = function (str, model) { + let arr = [str] + arr.push(toSuperlative(str, model)) + arr.push(toComparative(str, model)) + arr.push(toAdverb(str)) + arr = arr.filter(s => s) + arr = new Set(arr) + return Array.from(arr) +} + export { + all, toSuperlative, toComparative, fromComparative, fromSuperlative } diff --git a/src/2-two/preTagger/methods/transform/index.js b/src/2-two/preTagger/methods/transform/index.js index c0362b99f..c843ffac6 100644 --- a/src/2-two/preTagger/methods/transform/index.js +++ b/src/2-two/preTagger/methods/transform/index.js @@ -2,26 +2,27 @@ import toPlural from './nouns/toPlural/index.js' import toSingular from './nouns/toSingular/index.js' import toInfinitive from './verbs/toInfinitive/index.js' -import conjugate from './verbs/conjugate/index.js' +import { conjugate, all as allVerb } from './verbs/conjugate/index.js' + +import { toSuperlative, toComparative, fromSuperlative, fromComparative, all as allAdj } from './adjectives/index.js' + import fromAdverb from './adverbs/toAdjective.js' import toAdverb from './adverbs/toAdverb.js' import toNoun from './adverbs/toNoun.js' - -import { toSuperlative, toComparative, fromSuperlative, fromComparative } from './adjectives/index.js' - export default { noun: { toPlural, toSingular, + all: toPlural }, verb: { toInfinitive, conjugate, + all: allVerb }, - adjective: { toSuperlative, toComparative, toAdverb, toNoun, fromAdverb, fromSuperlative, fromComparative, - }, - + all: allAdj, + } } diff --git a/src/2-two/preTagger/methods/transform/verbs/conjugate/index.js b/src/2-two/preTagger/methods/transform/verbs/conjugate/index.js index d6e8be56c..cc7103e68 100644 --- a/src/2-two/preTagger/methods/transform/verbs/conjugate/index.js +++ b/src/2-two/preTagger/methods/transform/verbs/conjugate/index.js @@ -45,7 +45,11 @@ const conjugate = function (inf, model) { return found } -export default conjugate +const all = function (str, model) { + return Object.values(conjugate(str, model)).filter(s => s) +} + +export { conjugate, all } // console.log(toPresent.rules.y) // console.log(convert('buy', toPresent)) diff --git a/src/2-two/preTagger/model/_expand/index.js b/src/2-two/preTagger/model/_expand/index.js index 93c0adf86..064f3cd93 100644 --- a/src/2-two/preTagger/model/_expand/index.js +++ b/src/2-two/preTagger/model/_expand/index.js @@ -1,7 +1,7 @@ import methods from '../../methods/index.js' import expandIrregulars from './irregulars.js' import expandModels from './models.js' -import conjugate from '../../methods/transform/verbs/conjugate/index.js' +import { conjugate } from '../../methods/transform/verbs/conjugate/index.js' import { toSuperlative, toComparative } from '../../methods/transform/adjectives/index.js' import toInfinitive from '../../methods/transform/verbs/toInfinitive/index.js' import models from '../models/index.js' From b8ca67c577fd780bc0c13d40fe577ac985991768 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Tue, 18 Oct 2022 17:13:29 -0400 Subject: [PATCH 08/33] use all methods for all languages --- src/1-one/match/methods/parseMatch/04-inflect-root.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/1-one/match/methods/parseMatch/04-inflect-root.js b/src/1-one/match/methods/parseMatch/04-inflect-root.js index 898983f39..2ebbcfc54 100644 --- a/src/1-one/match/methods/parseMatch/04-inflect-root.js +++ b/src/1-one/match/methods/parseMatch/04-inflect-root.js @@ -7,7 +7,6 @@ const addVerbs = function (token, world) { str = toInfinitive(str, world.model) } if (!all) { - console.log('bail verb!') return [] } return all(str, world.model) @@ -17,7 +16,6 @@ const addVerbs = function (token, world) { const addNoun = function (token, world) { let { all } = world.methods.two.transform.noun || {} if (!all) { - console.log('bail noun!') return [token.root] } return all(token.root, world.model) @@ -27,7 +25,6 @@ const addNoun = function (token, world) { const addAdjective = function (token, world) { let { all } = world.methods.two.transform.adjective || {} if (!all) { - console.log('bail adj!') return [token.root] } return all(token.root, world.model) From c74d0f6c1670aec3ff09a2d827ae7de645bf9f43 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Tue, 18 Oct 2022 17:48:57 -0400 Subject: [PATCH 09/33] tests passing again --- builds/compromise.js | 2 +- builds/one/compromise-one.cjs | 2 +- builds/one/compromise-one.mjs | 2 +- builds/three/compromise-three.cjs | 2 +- builds/three/compromise-three.mjs | 2 +- builds/two/compromise-two.cjs | 2 +- builds/two/compromise-two.mjs | 2 +- scratch.js | 7 +++- .../methods/parseMatch/04-inflect-root.js | 8 ++--- .../transform/{ => adjectives}/adverbs/lib.js | 0 .../{ => adjectives}/adverbs/toAdjective.js | 0 .../{ => adjectives}/adverbs/toAdverb.js | 0 .../{ => adjectives}/adverbs/toNoun.js | 0 .../methods/transform/adjectives/index.js | 31 +++++------------- .../methods/transform/adjectives/inflect.js | 25 +++++++++++++++ .../preTagger/methods/transform/index.js | 32 ++++--------------- .../methods/transform/nouns/index.js | 17 ++++++++++ .../transform/verbs/conjugate/index.js | 5 +-- .../methods/transform/verbs/index.js | 11 +++++++ src/2-two/preTagger/model/_expand/index.js | 4 +-- 20 files changed, 88 insertions(+), 66 deletions(-) rename src/2-two/preTagger/methods/transform/{ => adjectives}/adverbs/lib.js (100%) rename src/2-two/preTagger/methods/transform/{ => adjectives}/adverbs/toAdjective.js (100%) rename src/2-two/preTagger/methods/transform/{ => adjectives}/adverbs/toAdverb.js (100%) rename src/2-two/preTagger/methods/transform/{ => adjectives}/adverbs/toNoun.js (100%) create mode 100644 src/2-two/preTagger/methods/transform/adjectives/inflect.js create mode 100644 src/2-two/preTagger/methods/transform/nouns/index.js create mode 100644 src/2-two/preTagger/methods/transform/verbs/index.js diff --git a/builds/compromise.js b/builds/compromise.js index a8ef68e8d..80b42fe98 100644 --- a/builds/compromise.js +++ b/builds/compromise.js @@ -1 +1 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var p=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let m=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=p(e,l,m);return e&&n.compute(m.hooks),n};Object.defineProperty(f,"_world",{value:m,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=p(e,l,m);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},j=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},x=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?j(n):(j(n),j([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!k(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||k(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var T=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const G=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},C=e=>"[object Array]"===Object.prototype.toString.call(e),D=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:C(e)?C(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=T(e),e)))}(d),n?(G(t.update([u]).firstTerm()),N(h,u,d,r)):(G(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var $=z,F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=F(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const W={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};W.deHyphenate=W.dehyphenate,W.toQuotation=W.toQuotations;var M=W,J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var _={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}},Q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,H,M,U,_,Q);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(pe);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ke=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},je={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},xe=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=xe(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&je.hasOwnProperty(l)&&(c=je[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),ke(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ke(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]},Te=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Ge.test(l)){let e=l.replace(Ge,"");if(i.hasOwnProperty(e)&&e.length>3&&Ce.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Oe,lib:Be,hooks:["lexicon"]},$e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const We=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=We(e.goNext,void 0),e.failTo=We(e.failTo,0),e.endAs=We(e.endAs,null),e};const Je={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};Je.compile=Je.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Je};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Qe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Qe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Qe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,pt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){pt.test(e)?(n.choices=e.split(pt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var kt=Pt;const At=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e},xt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform&&t.methods.two.transform.verbConjugate){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform;if(!n)return[];let r=n(e.root,t.model);return delete r.FutureTense,Object.values(r).filter((e=>e))}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,r=[e.root];return n?(r.push(n(e.root,t.model)),r):r}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:a}=t.methods.two.transform,o=[e.root];return n&&r&&a?(o.push(n(e.root,t.model)),o.push(r(e.root,t.model)),o.push(a(e.root,t.model)),o):o}(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e})),e},Nt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Et=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>kt(e,t))),r=jt(r,n),r=xt(r,n),r=Nt(r),r};const It=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Tt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),zt=(e,t)=>-1!==e.pre.indexOf(t),$t={hasQuote:e=>Ct.test(e.pre)||Dt.test(e.post),hasComma:e=>Bt(e,","),hasPeriod:e=>!0===Bt(e,".")&&!1===Bt(e,"..."),hasExclamation:e=>Bt(e,"!"),hasQuestionMark:e=>Bt(e,"?")||Bt(e,"¿"),hasEllipses:e=>Bt(e,"..")||Bt(e,"…")||zt(e,"..")||zt(e,"…"),hasSemicolon:e=>Bt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ot.test(e.post)||Ot.test(e.pre),hasDash:e=>Vt.test(e.post)||Vt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};$t.hasQuotation=$t.hasQuote;var Ft=$t;let St=function(){};St=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Gt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Ft[t.method]&&!0===Ft[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>St(e,t,n,r))):t.choices.some((t=>St(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Ht=St;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Mt(e,e.t).length=r-e.t),e.t=r,!0)};const Lt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Ht(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Ht(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Mt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Ut=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Rt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Ht(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Ht(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Ht(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Ut(e,r,t[e.r+1]):(e.t+=1,!0)},_t=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Ht(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Ht(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Qt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},Zt=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&_t(e),r.implicit&&e.terms[e.t+1]&&Zt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Qt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Mt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Xt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Wt(e,a)){if(e.negative){if(!Rt(a))return null}else if(!0!==Ht(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!Yt(a))return null}else if(!Yt(a))return null}else{if(e.negative&&e.anything)return null;if(!Yt(a))return null}else if(!Kt(a))return null}else if(!qt(a))return null}else if(!Jt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},en=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const tn=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},nn=function(e,t,n){let r=Xt(e,t,0,e.length);return r?(r=tn(r,n),r):null};var rn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=nn(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=en(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},an={api:ot,methods:{one:{termMethods:Ft,parseMatch:Et,match:rn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const on=/^\../,sn=/^#./,ln=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),on.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var un={html:function(e){let{starts:t,ends:n}=ln(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(hn,""),pn.test(a)&&(a=" "),a=a.replace(dn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(hn,""),a="-"===a?" ":a.replace(cn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&mn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},fn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};fn.clean=fn.normal,fn.reduced=fn.root;var vn=fn;let bn=[],yn=0;for(;yn<64;)bn[yn]=0|4294967296*Math.sin(++yn%Math.PI);function wn(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(yn=i=0;yn>4]+bn[i]+~~o[yn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const Pn={text:!0,terms:!0};let kn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const An=function(e,t){return Object.assign({},e,t)},jn={text:e=>gn(e,{keepPunct:!0},!1),normal:e=>gn(e,An(vn.normal,{keepPunct:!0}),!1),implicit:e=>gn(e,An(vn.implicit,{keepPunct:!0}),!1),machine:e=>gn(e,kn,!1),root:e=>gn(e,An(kn,{form:"root"}),!1),hash:e=>wn(gn(e,{keepPunct:!0},!1)),offset:e=>{let t=jn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};jn.sentences=jn.sentence,jn.clean=jn.normal,jn.reduced=jn.root;const xn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Pn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&jn[o]&&(a[o]=jn[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};xn.data=xn.json;var Nn=xn,En=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const In="";var Tn={green:e=>""+e+In,red:e=>""+e+In,blue:e=>""+e+In,magenta:e=>""+e+In,cyan:e=>""+e+In,yellow:e=>""+e+In,black:e=>""+e+In,dim:e=>""+e+In,i:e=>""+e+In},Gn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Tn.blue("\n ──────")),t.forEach((e=>{console.log(Tn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Tn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Tn.blue(" │ ")+Tn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Tn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Cn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Tn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Tn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Tn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Tn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Dn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Tn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},On=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(En(t),t):(!1!==e.tags&&(Gn(t),console.log("\n")),!0===e.chunks&&(Cn(t),console.log("\n")),!0===e.highlight&&(Dn(t),console.log("\n")),t)};const Vn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Bn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var $n=zn,Fn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&vn.hasOwnProperty(e)?t=Object.assign({},vn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Jn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Ln=function(e,t){let n=Jn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},qn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},Kn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Mn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},_n=function(e,t){let n=Jn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Mn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Zn=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},Yn={union:function(e){e=Qn(e,this);let t=Un(this.fullPointer,e.fullPointer);return t=Zn(t,this.document),this.toView(t)}};Yn.and=Yn.union,Yn.intersection=function(e){e=Qn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=Zn(t,this.document),this.toView(t)},Yn.not=function(e){e=Qn(e,this);let t=Rn(this.fullPointer,e.fullPointer);return t=Zn(t,this.document),this.toView(t)},Yn.difference=Yn.not,Yn.complement=function(){let e=this.all(),t=Rn(e.fullPointer,this.fullPointer);return t=Zn(t,this.document),this.toView(t)},Yn.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Un(e,[t])})),e=Zn(e,this.document),this.update(e)};var Xn=function(e){Object.assign(e.prototype,Yn)},er={methods:Kn,api:Xn},tr=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const nr=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var rr=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(nr(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(nr(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=nr(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},ar=function(e,t){e=rr(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},or=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},ir=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>t[n].has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},sr=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach((e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)})),!0===r.matchOne))return[a[0]]}return a},lr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=or(a,t.hooks);return o=ir(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),sr(o,e,n,r)},ur=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===ur(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},hr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:tr,methods:{one:{buildNet:ar,bulkMatch:lr,bulkTagger:cr}}};const dr=/ /,pr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},mr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),dr.test(t))!function(e,t,n,r){let a=t.split(dr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),mr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;ngr(e,t,n,r)))};var fr=gr,vr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>br({id:e}))),t}return[br({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},kr=e=>"[object Array]"===Object.prototype.toString.call(e),Ar=e=>(e=e||"").trim(),jr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||yr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:wr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=br({});return e.forEach((e=>{if((e=br(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Pr(t=e).forEach(br),t);var t},xr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Pr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Nr=function(e){let t=Pr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Er={text:xr,txt:xr,array:Nr,flat:Nr},Ir=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(xr(e,!0)),null):Er.hasOwnProperty(t)?Er[t](e):e},Tr=e=>{Pr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Gr=/\//;let Cr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Ar(e),!Gr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Cr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||br({});return new Cr(t)}add(e,t={}){if(kr(e))return e.forEach((e=>this.add(Ar(e),t))),this;e=Ar(e);let n=br({id:e,props:t});return this.json.children.push(n),new Cr(n)}remove(e){return e=Ar(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Pr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Pr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Pr(this.json)}fillDown(){var e;return e=this.json,Pr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else kr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Tr(this.json);let e=Pr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Tr(this.json),Ir(this.json,e)}debug(){return Tr(this.json),Ir(this.json,"debug"),this}};const Dr=function(e){let t=jr(e);return new Cr(t)};Dr.prototype.plugin=function(e){e(this)};var Or={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Vr=function(e){if(Or.hasOwnProperty(e.id))return Or[e.id];if(Or.hasOwnProperty(e.is))return Or[e.is];let t=e._cache.parents.find((e=>Or[e]));return Or[t]};var Br=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:Vr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const zr=function(e){return e?"string"==typeof e?[e]:e:[]};var $r=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=zr(e[t].children),e[t].not=zr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Fr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=$r(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Dr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Br(n)},Sr={one:{setTag:fr,unTag:vr,addTags:Fr}};const Hr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Wr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Hr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Hr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Mr=Wr,Jr=function(e){Object.assign(e.prototype,Mr)},Lr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const qr=new Set(["Auxiliary","Possessive"]);var Kr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(qr.has(e)||!t.hasOwnProperty(n))return 1;if(qr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Ur={model:{one:{tagSet:{}}},compute:{tagRank:Kr},methods:Sr,api:Jr,lib:Lr};const Rr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,_r=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Qr=/((?:\r?\n|\r)+)/;var Zr=function(e){let t=[],n=e.split(Qr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const na={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ra=RegExp("("+Object.keys(na).join("|")+")","g"),aa=RegExp("("+Object.values(na).join("|")+")","g"),oa=function(e){if(!e)return!1;let t=e.match(aa);return null!==t&&1===t.length};var ia=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var ka=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(wa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=va(n),n=ga(n),n=n.filter((e=>e)),n};let Aa=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),ja=new RegExp(`^[${["%","_"].join("")}]+`,"");const xa=/[\p{Punctuation}\s]+$/u,Na=/^[\p{Punctuation}\s]+/u,Ea=/['’]/,Ia=/^[a-z]\.([a-z]\.)+/i,Ta=/^'[0-9]{2}/;var Ga=function(e){let t=e,n="",r="";return e=e.replace(Na,(t=>{let r=t.match(Aa);return r?(n=t.replace(Aa,""),r):"'"===n&&Ta.test(e)?(n="",t):(n=t,"")})),e=e.replace(xa,(a=>{let o=a.match(ja);return o?(r=a.replace(ja,""),o):Ea.test(a)&&/[sn]['’]$/.test(t)&&!1===Ea.test(n)?(r=r.replace(Ea,""),"'"):!0===Ia.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}},Ca=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},Da=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Oa=/([A-Z]\.)+[A-Z]?,?$/,Va=/^[A-Z]\.,?$/,Ba=/[A-Z]{2,}('s|,)?$/,za=/([a-z]\.)+[a-z]\.?$/;var $a=function(e){return function(e){return!0===Oa.test(e)||!0===za.test(e)||!0===Va.test(e)||!0===Ba.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Fa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Da(r),r=n(r,t),r=$a(r),e.normal=r},Sa=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Fa(e,t)})),n})),e};const Ha=/[ .][A-Z]\.? *$/i,Wa=/(?:\u2026|\.{2,}) *$/,Ma=/\p{L}/u,Ja=/^[A-Z]\. $/;var La=function(e,t){if(!1===Ma.test(e))return!1;if(!0===Ha.test(e))return!1;if(3===e.length&&Ja.test(e))return!1;if(!0===Wa.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},qa={one:{killUnicode:Ca,tokenize:{splitSentences:da,isSentence:La,splitTerms:ka,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ga(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Sa}}},Ka={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ua={},Ra={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Ua[t]=!0,Ra[t]="Abbreviation",void 0!==e[1]&&(Ra[t]=[Ra[t],e[1]])}))}));var _a=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Qa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Za={};Object.keys(Qa).forEach((function(e){Qa[e].split("").forEach((function(t){Za[t]=e}))}));const Ya=/\//,Xa=/[a-z]\.[a-z]/i,eo=/[0-9]/;var to=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Ya.test(n)&&!Xa.test(n)&&!eo.test(n)){let t=n.split(Ya);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const no=/^\p{Letter}+-\p{Letter}+$/u;var ro=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),no.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ao=function(e){let t=e.docs,n={};for(let e=0;elo(e,to),machine:e=>lo(e,ro),normal:e=>lo(e,Fa),freq:ao,offset:oo,index:io,wordCount:so},methods:qa,model:{one:{aliases:Ka,abbreviations:Ua,prefixes:_a,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Ra,unicode:Za}},hooks:["alias","machine","index","id"]},co={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const ho=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var po=function(e){e.prototype.autoFill=ho},mo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const go={safe:!0,min:3};var fo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},go,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=mo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},vo={model:{one:{typeahead:{}}},api:po,lib:fo,compute:co,hooks:["typeahead"]};v.extend(ee),v.extend(Wn),v.extend(an),v.extend(er),v.extend(Ur),v.plugin(Ie),v.extend(uo),v.plugin(P),v.extend(Le),v.extend(vo),v.extend(ze),v.extend(hr);var bo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},yo={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const wo=36,Po="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ko=Po.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ao=function(e){if(void 0!==ko[e])return ko[e];let t=0,n=1,r=wo,a=1;for(;n=0;n--,a*=wo){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},jo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=No(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Eo(yo[e]);Co.test(e)?Object.keys(t).forEach((t=>{if(Oo[t]=e,"Noun|Verb"===e){let e=Go(t,Vo);Oo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Do[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Do[e]="Emoticon")),delete Do[""],delete Do.null,delete Do[" "];const Bo="Adjective";var zo={beforeTags:{Determiner:Bo,Possessive:Bo},afterTags:{Adjective:Bo},beforeWords:{seem:Bo,seemed:Bo,seems:Bo,feel:Bo,feels:Bo,felt:Bo,appear:Bo,appears:Bo,appeared:Bo,also:Bo,over:Bo,under:Bo,too:Bo,it:Bo,but:Bo,still:Bo,really:Bo,quite:Bo,well:Bo,very:Bo,deeply:Bo,profoundly:Bo,extremely:Bo,so:Bo,badly:Bo,mostly:Bo,totally:Bo,awfully:Bo,rather:Bo,nothing:Bo,something:Bo,anything:Bo,not:Bo,me:Bo},afterWords:{too:Bo,also:Bo,or:Bo}};const $o="Gerund";var Fo={beforeTags:{Adverb:$o,Preposition:$o,Conjunction:$o},afterTags:{Adverb:$o,Possessive:$o,Person:$o,Pronoun:$o,Determiner:$o,Copula:$o,Preposition:$o,Conjunction:$o,Comparative:$o},beforeWords:{been:$o,keep:$o,continue:$o,stop:$o,am:$o,be:$o,me:$o,began:$o,start:$o,starts:$o,started:$o,stops:$o,stopped:$o,help:$o,helps:$o,avoid:$o,avoids:$o,love:$o,loves:$o,loved:$o,hate:$o,hates:$o,hated:$o},afterWords:{you:$o,me:$o,her:$o,him:$o,them:$o,their:$o,it:$o,this:$o,there:$o,on:$o,about:$o,for:$o}},So={beforeTags:Object.assign({},zo.beforeTags,Fo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},zo.afterTags,Fo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},zo.beforeWords,Fo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},zo.afterWords,Fo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ho="Singular";var Wo={beforeTags:{Determiner:Ho,Possessive:Ho,Acronym:Ho,Noun:Ho,Adjective:Ho,PresentTense:Ho,Gerund:Ho,PastTense:Ho,Infinitive:Ho,Date:Ho},afterTags:{Value:Ho,Modal:Ho,Copula:Ho,PresentTense:Ho,PastTense:Ho,Demonym:Ho},beforeWords:{the:Ho,with:Ho,without:Ho,of:Ho,for:Ho,any:Ho,all:Ho,on:Ho,cut:Ho,cuts:Ho,save:Ho,saved:Ho,saves:Ho,make:Ho,makes:Ho,made:Ho,minus:Ho,plus:Ho,than:Ho,another:Ho,versus:Ho,neither:Ho,favorite:Ho,best:Ho,daily:Ho,weekly:Ho,linear:Ho,binary:Ho,mobile:Ho,lexical:Ho,technical:Ho,computer:Ho,scientific:Ho,formal:Ho},afterWords:{of:Ho,system:Ho,aid:Ho,method:Ho,utility:Ho,tool:Ho,reform:Ho,therapy:Ho,philosophy:Ho,room:Ho,authority:Ho,says:Ho,said:Ho,wants:Ho,wanted:Ho}};const Mo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Jo={beforeTags:Object.assign({},zo.beforeTags,Wo.beforeTags,Mo.beforeTags),afterTags:Object.assign({},zo.afterTags,Wo.afterTags),beforeWords:Object.assign({},zo.beforeWords,Wo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},zo.afterWords,Wo.afterWords)};const Lo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},qo={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ko={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Uo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ro={beforeTags:Object.assign({},zo.beforeTags,Lo),afterTags:Object.assign({},zo.afterTags,qo),beforeWords:Object.assign({},zo.beforeWords,Ko),afterWords:Object.assign({},zo.afterWords,Uo)};const _o="Infinitive";var Qo={beforeTags:{Modal:_o,Adverb:_o,Negative:_o,Plural:_o},afterTags:{Determiner:_o,Adverb:_o,Possessive:_o,Preposition:_o},beforeWords:{i:_o,we:_o,you:_o,they:_o,to:_o,please:_o,will:_o,have:_o,had:_o,would:_o,could:_o,should:_o,do:_o,did:_o,does:_o,can:_o,must:_o,us:_o,me:_o,he:_o,she:_o,it:_o,being:_o},afterWords:{the:_o,me:_o,you:_o,him:_o,her:_o,them:_o,it:_o,a:_o,an:_o,up:_o,down:_o,by:_o,out:_o,off:_o,under:_o,when:_o,all:_o,to:_o,because:_o,although:_o,before:_o,how:_o,otherwise:_o,together:_o,though:_o,yet:_o}};const Zo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Yo={beforeTags:Object.assign({},zo.beforeTags,Qo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},zo.afterTags,Qo.afterTags,Zo.afterTags),beforeWords:Object.assign({},zo.beforeWords,Qo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},zo.afterWords,Qo.afterWords,{to:void 0})};const Xo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ei={},ti={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ni={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ri={beforeTags:Object.assign({},Fo.beforeTags,Wo.beforeTags,Xo),afterTags:Object.assign({},Fo.afterTags,Wo.afterTags,ei),beforeWords:Object.assign({},Fo.beforeWords,Wo.beforeWords,ti),afterWords:Object.assign({},Fo.afterWords,Wo.afterWords,ni)},ai={beforeTags:Object.assign({},Qo.beforeTags,Wo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Qo.afterTags,Wo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Qo.beforeWords,Wo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Qo.afterWords,Wo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const oi="Person";var ii={beforeTags:{Honorific:oi,Person:oi,Preposition:oi},afterTags:{Person:oi,ProperNoun:oi,Verb:oi},ownTags:{ProperNoun:oi},beforeWords:{hi:oi,hey:oi,yo:oi,dear:oi,hello:oi},afterWords:{said:oi,says:oi,told:oi,tells:oi,feels:oi,felt:oi,seems:oi,thinks:oi,thought:oi,spends:oi,spendt:oi,plays:oi,played:oi,sing:oi,sang:oi,learn:oi,learned:oi,wants:oi,wanted:oi}};const si="Month",li={beforeTags:{Date:si,Value:si},afterTags:{Date:si,Value:si},beforeWords:{by:si,in:si,on:si,during:si,after:si,before:si,between:si,until:si,til:si,sometime:si,of:si,this:si,next:si,last:si,previous:si,following:si},afterWords:{sometime:si,in:si,of:si,until:si,the:si}};var ui={beforeTags:Object.assign({},ii.beforeTags,li.beforeTags),afterTags:Object.assign({},ii.afterTags,li.afterTags),beforeWords:Object.assign({},ii.beforeWords,li.beforeWords),afterWords:Object.assign({},ii.afterWords,li.afterWords)};const ci={Place:"Place"},hi={Place:"Place",Abbreviation:"Place"},di={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},pi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let mi="Unit";const gi="Honorific";let fi={first:gi,general:gi,royal:gi,vice:gi,rear:gi,major:gi};const vi={"Adj|Gerund":So,"Adj|Noun":Jo,"Adj|Past":Ro,"Adj|Present":Yo,"Noun|Verb":ai,"Noun|Gerund":ri,"Person|Noun":{beforeTags:Object.assign({},Wo.beforeTags,ii.beforeTags),afterTags:Object.assign({},Wo.afterTags,ii.afterTags),beforeWords:Object.assign({},Wo.beforeWords,ii.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Wo.afterWords,ii.afterWords)},"Person|Date":ui,"Person|Verb":{beforeTags:Object.assign({},ii.beforeTags,Qo.beforeTags),afterTags:Object.assign({},ii.afterTags,Qo.afterTags),beforeWords:Object.assign({},ii.beforeWords,Qo.beforeWords),afterWords:Object.assign({},ii.afterWords,Qo.afterWords)},"Person|Place":{beforeTags:Object.assign({},ci,ii.beforeTags),afterTags:Object.assign({},hi,ii.afterTags),beforeWords:Object.assign({},di,ii.beforeWords),afterWords:Object.assign({},pi,ii.afterWords)},"Unit|Noun":{beforeTags:{Value:mi},afterTags:{},beforeWords:{per:mi,every:mi,each:mi,square:mi,cubic:mi,sq:mi,metric:mi},afterWords:{per:mi,squared:mi,cubed:mi,long:mi}},"Honorific|Noun":{beforeTags:{Honorific:gi,ProperNoun:gi,Ordinal:gi},afterTags:{Person:gi,ProperNoun:gi},beforeWords:Object.assign({},fi,{honorable:gi,honourable:gi,worship:gi,excellency:gi,majesty:gi,right:gi}),afterWords:fi}},bi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};vi["Plural|Verb"]={beforeWords:bi(vi["Noun|Verb"].beforeWords,{}),afterWords:bi(vi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:bi(vi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:bi(vi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yi=vi;const wi="Adjective",Pi="Infinitive",ki="PresentTense",Ai="Singular",ji="PastTense",xi="Adverb",Ni="Plural",Ei="Actor",Ii="Verb",Ti="Noun",Gi="LastName",Ci="Modal",Di="Participle";var Oi=[null,null,{ea:Ai,ia:Ti,ic:wi,ly:xi,"'n":Ii,"'t":Ii},{oed:ji,ued:ji,xed:ji," so":xi,"'ll":Ci,"'re":"Copula",azy:wi,eer:Ti,end:Ii,ped:ji,ffy:wi,ify:Pi,ing:"Gerund",ize:Pi,ibe:Pi,lar:wi,mum:wi,nes:ki,nny:wi,ous:wi,que:wi,rol:Ai,sis:Ai,ogy:Ai,oid:Ai,ian:Ai,zes:ki,eld:ji,ken:Di,ven:Di,ten:Di,ect:Pi,ict:Pi,ign:Pi,ful:wi,bal:wi},{amed:ji,aped:ji,ched:ji,lked:ji,rked:ji,reed:ji,nded:ji,mned:wi,cted:ji,dged:ji,ield:Ai,akis:Gi,cede:Pi,chuk:Gi,czyk:Gi,ects:ki,ends:Ii,enko:Gi,ette:Ai,wner:Ai,fies:ki,fore:xi,gate:Pi,gone:wi,ices:Ni,ints:Ni,ruct:Pi,ines:Ni,ions:Ni,less:wi,llen:wi,made:wi,nsen:Gi,oses:ki,ould:Ci,some:wi,sson:Gi,tion:Ai,tage:Ti,ique:Ai,tive:wi,tors:Ti,vice:Ai,lier:Ai,fier:Ai,wned:ji,gent:Ai,tist:Ai,pist:Ai,rist:Ai,mist:Ai,yist:Ai,vist:Ai,lite:Ai,site:Ai,rite:Ai,mite:Ai,bite:Ai,mate:Ai,date:Ai,ndal:Ai,vent:Ai,uist:Ai,gist:Ai,note:Ai,cide:Ai,wide:wi,vide:Pi,ract:Pi,duce:Pi,pose:Pi,eive:Pi,lyze:Pi,lyse:Pi,iant:wi,nary:wi},{elist:Ai,holic:Ai,phite:Ai,tized:ji,urned:ji,eased:ji,ances:Ni,bound:wi,ettes:Ni,fully:xi,ishes:ki,ities:Ni,marek:Gi,nssen:Gi,ology:Ti,osome:Ai,tment:Ai,ports:Ni,rough:wi,tches:ki,tieth:"Ordinal",tures:Ni,wards:xi,where:xi,archy:Ti,pathy:Ti,opoly:Ti,embly:Ti,phate:Ti,ndent:Ai,scent:Ai,onist:Ai,anist:Ai,alist:Ai,olist:Ai,icist:Ai,ounce:Pi,iable:wi,borne:wi,gnant:wi,inant:wi,igent:wi,atory:wi,rient:Ai,dient:Ai},{auskas:Gi,parent:Ai,cedent:Ai,ionary:Ai,cklist:Ai,keeper:Ei,logist:Ei,teenth:"Value"},{opoulos:Gi,borough:"Place",sdottir:Gi}];const Vi="Adjective",Bi="Noun",zi="Verb";var $i=[null,null,{},{neo:Bi,bio:Bi,"de-":zi,"re-":zi,"un-":zi},{anti:Bi,auto:Bi,faux:Vi,hexa:Bi,kilo:Bi,mono:Bi,nano:Bi,octa:Bi,poly:Bi,semi:Vi,tele:Bi,"pro-":Vi,"mis-":zi,"dis-":zi,"pre-":Vi},{anglo:Bi,centi:Bi,ethno:Bi,ferro:Bi,grand:Bi,hepta:Bi,hydro:Bi,intro:Bi,macro:Bi,micro:Bi,milli:Bi,nitro:Bi,penta:Bi,quasi:Vi,radio:Bi,tetra:Bi,"omni-":Vi,"post-":Vi},{pseudo:Vi,"extra-":Vi,"hyper-":Vi,"inter-":Vi,"intra-":Vi,"deca-":Vi},{electro:Bi}];const Fi="Adjective",Si="Infinitive",Hi="PresentTense",Wi="Singular",Mi="PastTense",Ji="Adverb",Li="Expression",qi="Actor",Ki="Verb",Ui="Noun",Ri="LastName";var _i={a:[[/.[aeiou]na$/,Ui,"tuna"],[/.[oau][wvl]ska$/,Ri],[/.[^aeiou]ica$/,Wi,"harmonica"],[/^([hyj]a+)+$/,Li,"haha"]],c:[[/.[^aeiou]ic$/,Fi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Mi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Mi,"rammed"],[/.[aeiou][sg]hed$/,Mi,"gushed"],[/.[aeiou]red$/,Mi,"hired"],[/.[aeiou]r?ried$/,Mi,"hurried"],[/[^aeiou]ard$/,Wi,"steward"],[/[aeiou][^aeiou]id$/,Fi,""],[/.[vrl]id$/,Fi,"livid"],[/..led$/,Mi,"hurled"],[/.[iao]sed$/,Mi,""],[/[aeiou]n?[cs]ed$/,Mi,""],[/[aeiou][rl]?[mnf]ed$/,Mi,""],[/[aeiou][ns]?c?ked$/,Mi,"bunked"],[/[aeiou]gned$/,Mi],[/[aeiou][nl]?ged$/,Mi],[/.[tdbwxyz]ed$/,Mi],[/[^aeiou][aeiou][tvx]ed$/,Mi],[/.[cdflmnprstv]ied$/,Mi,"emptied"]],e:[[/.[lnr]ize$/,Si,"antagonize"],[/.[^aeiou]ise$/,Si,"antagonise"],[/.[aeiou]te$/,Si,"bite"],[/.[^aeiou][ai]ble$/,Fi,"fixable"],[/.[^aeiou]eable$/,Fi,"maleable"],[/.[ts]ive$/,Fi,"festive"],[/[a-z]-like$/,Fi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Fi,"cornish"],[/.v[iy]ch$/,Ri,"..ovich"],[/^ug?h+$/,Li,"ughh"],[/^uh[ -]?oh$/,Li,"uhoh"],[/[a-z]-ish$/,Fi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Ri,"polish-male"]],k:[[/^(k){2}$/,Li,"kkkk"]],l:[[/.[gl]ial$/,Fi,"familial"],[/.[^aeiou]ful$/,Fi,"fitful"],[/.[nrtumcd]al$/,Fi,"natal"],[/.[^aeiou][ei]al$/,Fi,"familial"]],m:[[/.[^aeiou]ium$/,Wi,"magnesium"],[/[^aeiou]ism$/,Wi,"schism"],[/^[hu]m+$/,Li,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Fi,"republican"],[/[^aeiou]ician$/,qi,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Li,"noooo"],[/^(yo)+$/,Li,"yoo"],[/^wo{2,}[pt]?$/,Li,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Wi],[/[^i]fer$/,Si],[/.[^aeiou][ao]pher$/,qi],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Fi],[/[aeiou].*ist$/,Fi],[/^[a-z]et$/,Ki]],s:[[/.[^aeiou]ises$/,Hi],[/.[rln]ates$/,Hi],[/.[^z]ens$/,Ki],[/.[lstrn]us$/,Wi],[/.[aeiou]sks$/,Hi],[/.[aeiou]kes$/,Hi],[/[aeiou][^aeiou]is$/,Wi],[/[a-z]'s$/,Ui],[/^yes+$/,Li]],v:[[/.[^aeiou][ai][kln]ov$/,Ri]],y:[[/.[cts]hy$/,Fi],[/.[st]ty$/,Fi],[/.[tnl]ary$/,Fi],[/.[oe]ry$/,Wi],[/[rdntkbhs]ly$/,Ji],[/.(gg|bb|zz)ly$/,Fi],[/...lly$/,Ji],[/.[gk]y$/,Fi],[/[bszmp]{2}y$/,Fi],[/.[ai]my$/,Fi],[/[ea]{2}zy$/,Fi],[/.[^aeiou]ity$/,Wi]]};const Qi="Verb",Zi="Noun";var Yi={leftTags:[["Adjective",Zi],["Possessive",Zi],["Determiner",Zi],["Adverb",Qi],["Pronoun",Qi],["Value",Zi],["Ordinal",Zi],["Modal",Qi],["Superlative",Zi],["Demonym",Zi],["Honorific","Person"]],leftWords:[["i",Qi],["first",Zi],["it",Qi],["there",Qi],["not",Qi],["because",Zi],["if",Zi],["but",Zi],["who",Qi],["this",Zi],["his",Zi],["when",Zi],["you",Qi],["very","Adjective"],["old",Zi],["never",Qi],["before",Zi],["a","Singular"],["the",Zi],["been",Qi]],rightTags:[["Copula",Zi],["PastTense",Zi],["Conjunction",Zi],["Modal",Zi]],rightWords:[["there",Qi],["me",Qi],["man","Adjective"],["only",Qi],["him",Qi],["it",Qi],["were",Zi],["took",Zi],["himself",Qi],["went",Zi],["who",Zi],["jr","Person"]]},Xi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},es={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ts={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ns={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},rs={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const as=/^.([0-9]+)/;var os=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(as);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(as,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},ss=/^([0-9]+)/,ls=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ss);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ss,"")]}(n[0],n[1])}))};var us=function(e={}){return(e=Object.assign({},e)).rules=ls(e.rules),e.rules=is(e.rules),e.rev&&(e.rev=ls(e.rev),e.rev=is(e.rev)),e.exceptions=ls(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},cs=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const hs=us({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ds=us(ns),ps=us(es),ms=us(ts),gs=cs(hs),fs=cs(ds),vs=cs(ps),bs=cs(ms),ys=us(Xi),ws=us(rs);var Ps={fromPast:hs,fromPresent:ds,fromGerund:ps,fromParticiple:ms,toPast:gs,toPresent:fs,toGerund:vs,toParticiple:bs,toComparative:ys,toSuperlative:ws,fromComparative:cs(ys),fromSuperlative:cs(ws)},ks=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),As=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],js=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(xs[t].forEach((n=>e[n]=t)),e)),{});var Ns=xs,Es=function(e){let t=e.substring(e.length-3);if(!0===Ns.hasOwnProperty(t))return Ns[t];let n=e.substring(e.length-2);return!0===Ns.hasOwnProperty(n)?Ns[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Is={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ts=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Es(e)),Is.hasOwnProperty(e))c=Is[e];else if("Participle"===n)c=os(l,i);else if("PastTense"===n)c=os(l,r);else if("PresentTense"===n)c=os(l,a);else{if("Gerund"!==n)return e;c=os(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Gs=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:os(i,n),PresentTense:os(i,r),Gerund:os(i,a),FutureTense:"will "+e},u=os(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Cs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Ds="ically",Os=new Set(["analyt"+Ds,"chem"+Ds,"class"+Ds,"clin"+Ds,"crit"+Ds,"ecolog"+Ds,"electr"+Ds,"empir"+Ds,"frant"+Ds,"grammat"+Ds,"ident"+Ds,"ideolog"+Ds,"log"+Ds,"mag"+Ds,"mathemat"+Ds,"mechan"+Ds,"med"+Ds,"method"+Ds,"method"+Ds,"mus"+Ds,"phys"+Ds,"phys"+Ds,"polit"+Ds,"pract"+Ds,"rad"+Ds,"satir"+Ds,"statist"+Ds,"techn"+Ds,"technolog"+Ds,"theoret"+Ds,"typ"+Ds,"vert"+Ds,"whims"+Ds]),Vs=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Bs=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),zs={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var $s=function(e){return e.endsWith("ly")?Os.has(e)?e.replace(/ically/,"ical"):Bs.has(e)?null:zs.hasOwnProperty(e)?zs[e]:Cs(e,Vs)||e:null};const Fs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ss={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Hs=function(e){if(Ss.hasOwnProperty(e))return Ss[e];let t=Cs(e,Fs);return t||e+"ly"};const Ws=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ms={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Js=new Set(["terrible","annoying"]),Ls=function(e,t){const n=t.two.models.toSuperlative;return os(e,n)},qs=function(e,t){const n=t.two.models.toComparative;return os(e,n)};var Ks={nounToPlural:Go,nounToSingular:js,verbToInfinitive:Ts,getTense:Es,verbConjugate:Gs,adjToSuperlative:Ls,adjToComparative:qs,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return os(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return os(e,n)},advToAdjective:$s,adjToAdverb:Hs,adjToNoun:function(e){if(Ms.hasOwnProperty(e))return Ms[e];if(Js.has(e))return null;let t=Cs(e,Ws);return t||e+"ness"}},Us={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Rs=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Us.hasOwnProperty(i)&&Us[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},_s=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Ys.find((t=>e.endsWith(t)))},el={two:{quickSplit:_s,expandLexicon:Rs,transform:Ks,looksPlural:Xs}},tl=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const nl=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var rl=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=nl(n,"Infinitive","PastTense"),Object.assign(s,l),l=nl(r,"Infinitive","Verb"),Object.assign(s,l),l=nl(a,"Infinitive","Gerund"),Object.assign(s,l),l=nl(o,"Adjective","Superlative"),Object.assign(s,l),l=nl(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let al={two:{models:Ps}};const ol={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},il=function(e,t){const n={model:t,methods:el};let{lex:r,_multi:a}=el.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},sl=function(e,t,n){let r=Gs(e,al);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},ll=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=ol[o],"Noun|Verb"!==o&&"Person|Verb"!==o||sl(a,r,!1),"Adj|Present"===o&&(sl(a,r,!0),function(e,t,n){let r=Ls(e,n);t[r]=t[r]||"Superlative";let a=qs(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ts(a,al,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ts(a,al,"PastTense");r[e]||(n[e]="Infinitive")}})),t=il(n,t)};var ul=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=il(e.one.lexicon,e)).one.lexicon,e),e=ll(e.two.switches,e),e=rl(e),e=tl(e)};let cl={one:{_multiCache:{},lexicon:Do},two:{irregularPlurals:bo,models:Ps,suffixPatterns:Oi,prefixPatterns:$i,endsWith:_i,neighbours:Yi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Oo,clues:yi,uncountable:{},orgWords:ks}};cl=ul(cl);var hl=cl;const dl=/^(under|over|mis|re|un|dis|semi)-?/;var pl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(dl.test(a.normal)){let e=a.normal.replace(dl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},ml=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const gl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var fl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(Xs(e.normal)?ml(e,"Plural","3-plural-guess"):ml(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Es(e.normal);t&&ml(e,t,"3-verb-tense-guess")}}(r)};const vl=/^\p{Lu}[\p{Ll}'’]/u,bl=/[0-9]/,yl=["Date","Month","WeekDay","Unit"],wl=/^[IVXLCDM]{2,}$/,Pl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,kl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Al=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===vl.test(o)&&!1===bl.test(o)?yl.find((e=>r.tags.has(e)))?null:(fl(e,t,n),r.tags.has("Noun")||r.tags.clear(),ml(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&wl.test(o)&&Pl.test(o)&&!kl[r.normal]?(ml(r,"RomanNumeral","2-xvii"),!0):null};const jl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var xl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=jl(r.normal,n.two.suffixPatterns);if(null!==e)return ml(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=jl(r.implicit,n.two.suffixPatterns),null!==e))return ml(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Nl=/['‘’‛‵′`´]/,El=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ml(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Gl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Cl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Gl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Dl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ol=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Vl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Cl(a)||Cl(o))return ml(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Dl(a)||Dl(o))return ml(n,"Year","2-tagYear-close");if(Ol(e[t-2])||Ol(e[t+2]))return ml(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ml(n,"Year","2-tagYear-noun")}}}return null};const Bl=/^[A-Z]('s|,)?$/,zl=/^[A-Z-]+$/,$l=/([A-Z]\.)+[A-Z]?,?$/,Fl=/[A-Z]{2,}('s|,)?$/,Sl=/([a-z]\.)+[a-z]\.?$/,Hl={I:!0,A:!0};var Wl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===zl.test(n)||n.length>5||Hl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==$l.test(n)&&!0!==Sl.test(n)&&!0!==Bl.test(n)&&!0!==Fl.test(n))}(r,n)?(r.tags.clear(),ml(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Hl.hasOwnProperty(r.text)&&Bl.test(r.text)?(r.tags.clear(),ml(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ml(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&zl.test(r.text)&&r.text.length<=6?(ml(r,"Acronym","3-titlecase-acronym"),!0):null};const Ml=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Jl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ll=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ml(e[t-1],a),l=l||Ml(e[t+1],o),l=l||Jl(e[t-1],r),l=l||Jl(e[t+1],i),l)return ml(s,l,"3-[neighbour]"),fl(e,t,n),e[t].confidence=.2,!0}return null};const ql=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Kl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&ql(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&ql(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ul=function(e,t,n){0===e[t].tags.size&&(ml(e[t],"Noun","3-[fallback]"),fl(e,t,n),e[t].confidence=.1)};const Rl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,_l=(e,t,n)=>0!==t||e[1]?null:n,Ql={"Adj|Gerund":(e,t)=>Rl(e,t),"Adj|Noun":(e,t)=>Rl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Rl(e,t),"Adj|Present":(e,t)=>Rl(e,t),"Noun|Gerund":(e,t)=>Rl(e,t),"Noun|Verb":(e,t)=>Rl(e,t)||_l(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Rl(e,t)||_l(e,t,"PresentTense"),"Person|Noun":(e,t)=>Rl(e,t),"Person|Verb":(e,t)=>0!==t?Rl(e,t):null};var Zl=Ql;const Yl="undefined"!=typeof process&&process.env?process.env:self.env||{},Xl=/^(under|over|mis|re|un|dis|semi)-?/,eu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Yl.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},tu=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&Yl.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var nu=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Xl.test(l)&&!o[l]&&(l=l.replace(Xl,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=eu(e[t+1],n.afterWords);return o=o||eu(e[t-1],n.beforeWords),o=o||tu(e[t-1],n.beforeTags,a),o=o||tu(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Zl[o]&&(u=Zl[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),fl(e,t,r)):Yl.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},ru=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ml(o,"Verb","3-[prefix]"),ml(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ml(o,"Adjective","3-[prefix]"),ml(o,"Prefix","3-[prefix]")))};const au={tagSwitch:pl,checkSuffix:xl,checkRegex:Il,checkCase:Al,checkPrefix:Tl,checkHyphen:ru,checkYear:Vl},ou={checkAcronym:Wl,neighbours:Ll,orgWords:Kl,nounFallback:Ul,switches:nu},iu=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};var cu=function(e){const t=e.world,n=Object.keys(uu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=ku.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Pu},ju=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const xu=/'/;var Nu=function(e,t){let n=e[t].normal.split(xu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Eu=/'/;var Iu=function(e,t){let n=e[t].normal.split(Eu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Tu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Gu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Cu={in:!0,by:!0,for:!0};var Du=(e,t)=>{let n=e[t];if(Gu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Cu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Ou=/'/,Vu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Bu={d:(e,t)=>Iu(e,t),t:(e,t)=>Tu(e,t),s:(e,t,n)=>Du(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Nu(e,t)},zu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var $u={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Ou.test(r[o].normal)&&([,i]=r[o].normal.split(Ou));let s=null;Bu.hasOwnProperty(i)&&(s=Bu[i](r,o,t)),s&&(s=zu(s,e),ju(n,[a,o],s),Vu(n[a],e,o,s.length))}}))}},Fu={compute:$u,api:Au,hooks:["contractionTwo"]};const Su="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Hu=["i","we","they"];let Wu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Su} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Su} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Su}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Hu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Hu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Hu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Mu=null;var Ju={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Mu=Mu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Mu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Lu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ju,model:{two:{matches:Wu}},hooks:["postTagger"]};var qu=Lu,Ku=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},Uu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Ku(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Ru={lib:{lazy:Uu}},_u=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},Qu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?_u(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(a,t):a.has("#Adjective")?function(e,t){const{adjToComparative:n,adjToSuperlative:r}=e.methods.two.transform;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},Zu={api:function(e){e.prototype.swap=Qu}};v.plugin(bu),v.plugin(Fu),v.plugin(qu),v.plugin(Ru),v.plugin(Zu);var Yu=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter((e=>e.wordCount()>5&&e.match("#Verb+").length>=2));if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},Xu=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r},ec=function(e){e.prototype.chunks=Xu,e.prototype.clauses=Yu};const tc={this:"Noun",then:"Pivot"};var nc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},cc={chunks:function(e){const{document:t,world:n}=e;nc(t),rc(t),ic(e,t,n),lc(t),uc(t)}},hc={compute:cc,api:ec,hooks:["chunks"]};const dc=/'s$/;var pc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(dc,""),e.normal=e.normal.replace(dc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const mc=/\(/,gc=/\)/,fc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(mc,"");let t=e[e.length-1];t.post=t.post.replace(gc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const bc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},yc=RegExp("("+Object.keys(bc).join("|")+")"),wc=RegExp("("+Object.values(bc).join("|")+")"),Pc=function(e,t){const n=e[t].pre.match(yc)[0]||"";if(!n||!bc[n])return null;const r=bc[n];for(;t{e[0].pre=e[0].pre.replace(yc,"");let t=e[e.length-1];t.post=t.post.replace(wc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Ac=/\./g;var jc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Ac,""),e.normal=e.normal.replace(Ac,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Ac,""),e.normal=e.normal.replace(Ac,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},xc=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Nc=(e,t)=>"number"==typeof t?e.eq(t):e,Ec=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Ic=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Ec(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{adjToComparative:t,adjToSuperlative:n,adjToNoun:r,adjToAdverb:a}=this.methods.two.transform;return Nc(this,e).map((e=>{let o=Ec(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return Nc(this,e).map((e=>{let n=Ec(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return Nc(this,e).map((e=>{let n=Ec(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return Nc(this,e).map((e=>{let n=Ec(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return Nc(this,e).map((e=>{let n=Ec(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Nc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Nc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Nc(t,e),new Adjectives(t.document,t.pointer)}};const Tc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},Gc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let Cc=[["emojis","emoji"],["atmentions","atMentions"]];var Dc=function(e){Gc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Tc,Cc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},Oc={api:function(e){Dc(e),pc(e),vc(e),kc(e),Ic(e),xc(e),jc(e)}};const Vc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Bc={case:e=>{Vc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Vc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{Vc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{Vc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const zc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),$c="unicode|punctuation|whitespace|acronyms",Fc="|case|contractions|parentheses|quotations|emoji|honorifics",Sc={light:zc($c),medium:zc($c+Fc),heavy:zc($c+Fc+"|possessives|adverbs|nouns|verbs")};var Hc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Sc[e]),Object.keys(e).forEach((t=>{Bc.hasOwnProperty(t)&&Bc[t](this,e[t])})),this}}},Wc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Mc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Jc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},qc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Lc(e,t),isSubordinate:Jc(e),root:t}};const Kc=e=>e.text(),Uc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Rc=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var _c=function(e){let t=qc(e);return{root:Kc(t.root),number:Rc(t.number),determiner:Kc(t.determiner),adjectives:Uc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Qc={tags:!0};var Zc=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Qc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Qc),e};const Yc={tags:!0};var Xc=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Yc).tag("Singular","toPlural"),e};const eh=(e,t)=>"number"==typeof t?e.eq(t):e;var th=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return eh(this,e).map(qc)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=_c(t)),n}),[])}isPlural(e){let t=this.filter((e=>qc(e).isPlural));return eh(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=qc(e).adjectives;n.found&&(t=t.concat(n))})),eh(t,e)}toPlural(e){return eh(this,e).map((e=>Zc(e,qc(e))))}toSingular(e){return eh(this,e).map((e=>{let t=qc(e);return Xc(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Wc(this);return t=eh(t,e),new Nouns(this.document,t.pointer)}},nh={api:th},rh=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},ah=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(oh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(oh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(oh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},sh=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const uh=/^([0-9,. ]+)\/([0-9,. ]+)$/,ch={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},hh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var dh=function(e){if(!0===ch.hasOwnProperty(e))return ch[e];if("a"===e||"an"===e)return 1;const t=ah(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=mh(n),r=mh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:mh(n);let a=r.text("reduced");return ph.test(a)&&(a=a.replace(ph,""),r=r.replaceWith(a)),r=gh.hasOwnProperty(a)?gh[a]:mh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:mh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},vh=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const bh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],yh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],wh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Ph=function(e){let t=[];if(e>100)return t;for(let n=0;n=bh[n][1]&&(e-=bh[n][1],t.push(bh[n][0]));return yh[e]&&t.push(yh[e]),t};var kh=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=vh(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return wh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Ph(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=vh(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Ah=function(e){return e.numerator&&e.denominator?`${kh({num:e.numerator})} out of ${kh({num:e.denominator})}`:""};const jh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var xh=e=>{let t=kh(e).split(" "),n=t[t.length-1];return jh.hasOwnProperty(n)?t[t.length-1]=jh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Nh=function(e){if(!e.numerator||!e.denominator)return"";let t=kh({num:e.numerator}),n=xh({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Eh=(e,t)=>"number"==typeof t?e.eq(t):e;var Ih=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Eh(this,e).map(fh)}get(e){return Eh(this,e).map(fh)}json(e){return Eh(this,e).map((t=>{let n=t.toView().json(e)[0],r=fh(t);return n.fraction=r,n}),[])}toDecimal(e){return Eh(this,e).forEach((e=>{let{decimal:t}=fh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return Eh(this,e).forEach((e=>{let t=fh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return Eh(this,e).forEach((e=>{let t=fh(e),n=Nh(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return Eh(this,e).forEach((e=>{let t=fh(e),n=Ah(t);e.replaceWith(n)})),this}toPercentage(e){return Eh(this,e).forEach((e=>{let{decimal:t}=fh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=rh(this);return t=Eh(t,e),new Fractions(this.document,t.pointer)}};const Th="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Gh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Th+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Th+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Th+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Th+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Th})`),r=e.has("("+Th+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Th+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Th+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},Ch=function(e){if("string"==typeof e)return{num:dh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=fh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=dh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Dh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=vh(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Oh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Vh={"%":"percent","°":"degrees"};var Bh=function(e){let t={suffix:"",prefix:e.prefix};return Oh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Oh[e.prefix],t.prefix=""),Vh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Vh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},zh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Bh(e);return t+xh(e)+n}if("Ordinal"===t)return e.prefix+Dh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Bh(e);return t+kh(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const $h=(e,t)=>"number"==typeof t?e.eq(t):e;var Fh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return $h(this,e).map(Ch)}get(e){return $h(this,e).map(Ch).map((e=>e.num))}json(e){return $h(this,e).map((t=>{let n=t.toView().json(e)[0],r=Ch(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=Ch(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=zh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=Ch(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=zh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=Ch(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=zh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=Ch(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=zh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=Ch(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=zh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>Ch(t).num===e))}greaterThan(e){return this.filter((t=>Ch(t).num>e))}lessThan(e){return this.filter((t=>Ch(t).num{let r=Ch(n).num;return r>e&&r{let n=Ch(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=zh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=Ch(e).num);let t=this.map((t=>{let n=Ch(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=zh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Gh(this);return t=$h(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Gh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=$h(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Gh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=$h(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Sh={api:function(e){Ih(e),Fh(e)}};const Hh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Wh=function(e={}){return!1!==(e=Object.assign({},Hh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},Mh={api:function(e){e.prototype.redact=Wh}};var Jh=Mh,Lh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},qh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},Kh=function(e){let t=e.clauses(),n=qh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Uh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Rh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},_h=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},Qh=function(e){return e.verbs().toInfinitive(),e};const Zh=(e,t)=>"number"==typeof t?e.eq(t):e;var Yh=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Kh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n}),[])}toPastTense(e){return Zh(this,e).map((e=>(Kh(e),Uh(e))))}toPresentTense(e){return Zh(this,e).map((e=>(Kh(e),Rh(e))))}toFutureTense(e){return Zh(this,e).map((e=>(Kh(e),e=_h(e))))}toInfinitive(e){return Zh(this,e).map((e=>(Kh(e),Qh(e))))}toNegative(e){return Zh(this,e).map((e=>(Kh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return Zh(this,e).map((e=>(Kh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return Zh(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return Zh(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=Zh(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Lh(this);return Zh(t,e)}};Object.assign(e.prototype,t)},Xh={api:Yh},ed=function(e){return e.match("#Honorific+? #Person+")},td=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const nd="male",rd="female",ad={mr:nd,mrs:rd,miss:rd,madam:rd,king:nd,queen:rd,duke:nd,duchess:rd,baron:nd,baroness:rd,count:nd,countess:rd,prince:nd,princess:rd,sire:nd,dame:rd,lady:rd,ayatullah:nd,congressman:nd,congresswoman:rd,"first lady":rd,mx:null};var od=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return rd;if(n.has("#MaleName"))return nd;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),ad.hasOwnProperty(e))return ad[e];if(/^her /.test(e))return rd;if(/^his /.test(e))return nd}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return nd;if(n&&!t)return rd}return null};const id=(e,t)=>"number"==typeof t?e.eq(t):e;var sd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return id(this,e).map(td)}json(e){return id(this,e).map((t=>{let n=t.toView().json(e)[0],r=td(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:od(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=ed(this);return t=id(t,e),new People(this.document,t.pointer)}},ld=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},ud=function(e){e.prototype.places=function(t){let n=ld(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},cd=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const hd=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var dd=function(e){e.prototype.topics=hd},pd={api:function(e){sd(e),ud(e),cd(e),dd(e)}},md=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},gd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},fd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const vd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},bd=function(e){return e.match("#Negative")},yd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var wd=function(e){let t=e.clone();t.contractions().expand();const n=gd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:fd(t,n),auxiliary:vd(t,n),negative:bd(t),phrasal:yd(n)}};const Pd={tense:"PresentTense"},kd={conditional:!0},Ad={tense:"FutureTense"},jd={progressive:!0},xd={tense:"PastTense"},Nd={complete:!0,progressive:!1},Ed={passive:!0},Id=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Td={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Pd]],["^wanted to #Infinitive$",[xd]],["^will want to #Infinitive$",[Ad]]],"gerund-phrase":[["^#PastTense #Gerund$",[xd]],["^#PresentTense #Gerund$",[Pd]],["^#Infinitive #Gerund$",[Pd]],["^will #Infinitive #Gerund$",[Ad]],["^have #PastTense #Gerund$",[xd]],["^will have #PastTense #Gerund$",[xd]]],"simple-present":[["^#PresentTense$",[Pd]],["^#Infinitive$",[Pd]]],"simple-past":[["^#PastTense$",[xd]]],"simple-future":[["^will #Adverb? #Infinitive",[Ad]]],"present-progressive":[["^(is|are|am) #Gerund$",[Pd,jd]]],"past-progressive":[["^(was|were) #Gerund$",[xd,jd]]],"future-progressive":[["^will be #Gerund$",[Ad,jd]]],"present-perfect":[["^(has|have) #PastTense$",[xd,Nd]]],"past-perfect":[["^had #PastTense$",[xd,Nd]],["^had #PastTense to #Infinitive",[xd,Nd]]],"future-perfect":[["^will have #PastTense$",[Ad,Nd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[xd,jd]]],"past-perfect-progressive":[["^had been #Gerund$",[xd,jd]]],"future-perfect-progressive":[["^will have been #Gerund$",[Ad,jd]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[xd,Ed]],["^(was|were) being (#PastTense|#Participle)",[xd,Ed]],["^(had|have) been (#PastTense|#Participle)",[xd,Ed]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Pd,Ed]],["^(is|are|am) being (#PastTense|#Participle)",[Pd,Ed]],["^has been (#PastTense|#Participle)",[Pd,Ed]]],"passive-future":[["will have been (#PastTense|#Participle)",[Ad,Ed,kd]],["will be being? (#PastTense|#Participle)",[Ad,Ed,kd]]],"present-conditional":[["would be #PastTense",[Pd,kd]]],"past-conditional":[["would have been #PastTense",[xd,kd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Ad]]],"auxiliary-past":[["^did #Infinitive$",[xd,{plural:!1}]],["^used to #Infinitive$",[xd,Nd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Pd,Nd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[xd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Gd=[];Object.keys(Td).map((e=>{Td[e].forEach((t=>{Gd.push({name:e,match:t[0],data:Id(t[1])})}))}));var Cd=Gd,Dd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),Od(r)&&(n.remove(r),r=n.last()),Od(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Vd(t,e)}};const zd=e=>e,$d=(e,t)=>{let n=Bd(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Fd=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Bd(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Sd=function(e,t){let n=Bd(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Hd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Wd=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Hd(e)),r&&e.replace(t.root,r),e},Md=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Jd=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Ld=function(e){return e&&e.isView?e.text("normal"):""},qd=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,Hd(e))};var Kd=function(e){let t=wd(e);e=e.clone().toView();const n=Dd(e,t);return{root:t.root.text(),preAdverbs:Jd(t.adverbs.pre),postAdverbs:Jd(t.adverbs.post),auxiliary:Ld(t.auxiliary),negative:t.negative.found,prefix:Ld(t.prefix),infinitive:qd(t.root),grammar:n}};const Ud={tags:!0};var Rd=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Hd(r)),i&&e.replace(r,i,Ud).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Sd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const _d={tags:!0},Qd={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Hd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Bd(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,_d),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Qd.simple(e,t),e=Qd.noAux(e,t))},hasHad:e=>(e.replace("has","had",_d),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Hd(a)),n(o,e.model).Participle}},Zd={infinitive:Qd.simple,"simple-present":Qd.simple,"simple-past":zd,"simple-future":Qd.both,"present-progressive":e=>(e.replace("are","were",_d),e.replace("(is|are|am)","was",_d),e),"past-progressive":zd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Qd.hasHad,"past-perfect":zd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Md(e)),e.remove("have"),e),"present-perfect-progressive":Qd.hasHad,"past-perfect-progressive":zd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",_d),e),"passive-past":e=>(e.replace("have","had",_d),e),"passive-present":e=>(e.replace("(is|are)","was",_d),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",_d),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":zd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",_d),e),"auxiliary-past":zd,"auxiliary-present":e=>(e.replace("(do|does)","did",_d),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",_d):(Qd.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":zd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",_d),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Qd.simple(e,t),Md(e),e)};var Yd=function(e,t,n){return Zd.hasOwnProperty(n)?((e=Zd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Xd={tags:!0},ep=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Hd(a)),!1===$d(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Fd(e)),o&&(e=e.replace(a,o,Xd)).not("#Particle").tag("PresentTense"),e},tp=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Hd(a)),!1===$d(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Xd)).not("#Particle").tag("Gerund"),e},np={infinitive:ep,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return ep(e,t);{let t=Bd(e).subject;if($d(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Xd)}return e},"simple-past":ep,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Fd(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else ep(e,t),e=e.remove("will");return e},"present-progressive":zd,"past-progressive":(e,t)=>{let n=Fd(e);return e.replace("(were|was)",n,Xd)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(ep(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Bd(e).subject;return $d(e)||n.has("i")?((e=Wd(e,t)).remove("had"),e):(e.replace("had","has",Xd),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":zd,"past-perfect-progressive":e=>e.replace("had","has",Xd),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Fd(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Xd),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":zd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":zd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(tp(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Sd(e);return e.replace(t.auxiliary,n),e}return tp(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":zd,"modal-infinitive":zd,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Hd(r)),a&&(e=e.replace(t.root,a,Xd))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ep(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return $d(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Xd),e.remove("will"),e}};var rp=function(e,t,n){return np.hasOwnProperty(n)?((e=np[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const ap={tags:!0},op=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Hd(r)),o&&(e=e.replace(r,o,ap)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},ip=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Hd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,ap),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},sp={infinitive:op,"simple-present":op,"simple-past":op,"simple-future":zd,"present-progressive":ip,"past-progressive":ip,"future-progressive":zd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":zd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":zd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":zd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":zd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":zd,"modal-past":zd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),op(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var lp=function(e,t,n){return e.has("will")||e.has("going to")?e:sp.hasOwnProperty(n)?((e=sp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const up={tags:!0};var cp=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Hd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Fd(e)} ${s}`,e.replace(a,s,up)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const hp={tags:!0},dp=function(e,t){let n=Sd(e);return e.prepend(n+" not"),e},pp=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},mp=e=>e.has("(is|was|am|are|will|were|be)"),gp={"simple-present":(e,t)=>!0===mp(e)?pp(e):(e=Wd(e,t),e=dp(e)),"simple-past":(e,t)=>!0===mp(e)?pp(e):((e=Wd(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===mp(e)?pp(e):dp(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",hp),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=dp(e)).replace("wants","want",hp)};var fp=function(e,t,n){if(e.has("#Negative"))return e;if(gp.hasOwnProperty(n))return e=gp[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===mp(e)?pp(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const vp=(e,t)=>"number"==typeof t?e.eq(t):e;var bp=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return vp(this,e).map(wd)}json(e,t){let n=vp(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Kd(t),n}),[]);return n}subjects(e){return vp(this,e).map((e=>(wd(e),Bd(e).subject)))}adverbs(e){return vp(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return vp(this,e).filter((e=>!0!==Bd(e).plural))}isPlural(e){return vp(this,e).filter((e=>!0===Bd(e).plural))}isImperative(e){return vp(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return vp(this,e).map((e=>{let t=wd(e),n=Dd(e,t);return Rd(e,t,n.form)}))}toPresentTense(e){return vp(this,e).map((e=>{let t=wd(e),n=Dd(e,t);return rp(e,t,n.form)}))}toPastTense(e){return vp(this,e).map((e=>{let t=wd(e),n=Dd(e,t);return Yd(e,t,n.form)}))}toFutureTense(e){return vp(this,e).map((e=>{let t=wd(e),n=Dd(e,t);return lp(e,t,n.form)}))}toGerund(e){return vp(this,e).map((e=>{let t=wd(e),n=Dd(e,t);return cp(e,t,n.form)}))}conjugate(e){return vp(this,e).map((e=>{let t=wd(e),n=Dd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Rd(e.clone(),t,n.form).text("normal"),PastTense:Yd(e.clone(),t,n.form).text("normal"),PresentTense:rp(e.clone(),t,n.form).text("normal"),FutureTense:lp(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return vp(this,e).map((e=>{let t=wd(e),n=Dd(e,t);return fp(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=md(this);return t=vp(t,e),new Verbs(this.document,t.pointer)}},yp={api:bp};return v.plugin(hc),v.plugin(Oc),v.plugin(Hc),v.plugin(nh),v.plugin(Sh),v.plugin(Jh),v.plugin(Xh),v.plugin(pd),v.plugin(yp),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var p=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let m=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=p(e,l,m);return e&&n.compute(m.hooks),n};Object.defineProperty(f,"_world",{value:m,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=p(e,l,m);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},j=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},x=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?j(n):(j(n),j([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!k(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||k(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var G=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},D=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=G(e),e)))}(d),n?(T(t.update([u]).firstTerm()),N(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var $=z,F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=F(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const W={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};W.deHyphenate=W.dehyphenate,W.toQuotation=W.toQuotations;var M=W,J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var _={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}},Q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,H,M,U,_,Q);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(pe);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ke=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},je={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},xe=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=xe(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&je.hasOwnProperty(l)&&(c=je[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),ke(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ke(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]},Ge=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Oe,lib:Be,hooks:["lexicon"]},$e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const We=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=We(e.goNext,void 0),e.failTo=We(e.failTo,0),e.endAs=We(e.endAs,null),e};const Je={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};Je.compile=Je.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Je};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Qe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Qe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Qe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,pt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){pt.test(e)?(n.choices=e.split(pt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var kt=Pt;const At=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const xt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var It=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(xt(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(xt(e,t)),n=n.concat(Nt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Gt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>kt(e,t))),r=jt(r,n),r=It(r,n),r=Gt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Vt.test(e.pre)||Bt.test(e.post),hasComma:e=>Ft(e,","),hasPeriod:e=>!0===Ft(e,".")&&!1===Ft(e,"..."),hasExclamation:e=>Ft(e,"!"),hasQuestionMark:e=>Ft(e,"?")||Ft(e,"¿"),hasEllipses:e=>Ft(e,"..")||Ft(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>Ft(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Wt=Ht;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Wt[t.method]&&!0===Wt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Jt=Mt;const Lt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(qt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Jt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Jt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(qt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Qt=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Jt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Jt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Jt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Qt(e,r,t[e.r+1]):(e.t+=1,!0)},Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Jt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Jt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Xt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Lt(e,a)){if(e.negative){if(!Zt(a))return null}else if(!0!==Jt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!tn(a))return null}else if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else if(!_t(a))return null}else if(!Rt(a))return null}else if(!Kt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},ln={api:ot,methods:{one:{termMethods:Wt,parseMatch:Tt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(a)&&(a=" "),a=a.replace(gn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(pn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let Pn=[],kn=0;for(;kn<64;)Pn[kn]=0|4294967296*Math.sin(++kn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(kn=i=0;kn>4]+Pn[i]+~~o[kn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const jn={text:!0,terms:!0};let xn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},En={text:e=>bn(e,{keepPunct:!0},!1),normal:e=>bn(e,Nn(wn.normal,{keepPunct:!0}),!1),implicit:e=>bn(e,Nn(wn.implicit,{keepPunct:!0}),!1),machine:e=>bn(e,xn,!1),root:e=>bn(e,Nn(xn,{form:"root"}),!1),hash:e=>An(bn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const In={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},jn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};In.data=In.json;var Gn=In,Tn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Dn="";var Cn={green:e=>""+e+Dn,red:e=>""+e+Dn,blue:e=>""+e+Dn,magenta:e=>""+e+Dn,cyan:e=>""+e+Dn,yellow:e=>""+e+Dn,black:e=>""+e+Dn,dim:e=>""+e+Dn,i:e=>""+e+Dn},On=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Cn.blue("\n ──────")),t.forEach((e=>{console.log(Cn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Cn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Cn.blue(" │ ")+Cn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Cn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Vn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Cn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Tn(t),t):(!1!==e.tags&&(On(t),console.log("\n")),!0===e.chunks&&(Vn(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const $n=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Fn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Hn=Sn,Wn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Kn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},Rn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},_n={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>qn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Yn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>qn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},er=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},tr={union:function(e){e=Xn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)}};tr.and=tr.union,tr.intersection=function(e){e=Xn(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.not=function(e){e=Xn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.difference=tr.not,tr.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=er(t,this.document),this.toView(t)},tr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Qn(e,[t])})),e=er(e,this.document),this.update(e)};var nr=function(e){Object.assign(e.prototype,tr)},rr={methods:_n,api:nr},ar=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const or=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ir=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(or(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(or(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=or(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},sr=function(e,t){e=ir(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},lr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},ur=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},cr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},hr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=lr(a,t.hooks);return o=ur(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),cr(o,e,a,n,r)},dr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===dr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ar,methods:{one:{buildNet:sr,bulkMatch:hr,bulkTagger:pr}}};const gr=/ /,fr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},vr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),gr.test(t))!function(e,t,n,r){let a=t.split(gr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),vr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var yr=br,wr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Pr({id:e}))),t}return[Pr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},xr=e=>"[object Array]"===Object.prototype.toString.call(e),Nr=e=>(e=e||"").trim(),Er=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||kr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ar(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Pr({});return e.forEach((e=>{if((e=Pr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(jr(t=e).forEach(Pr),t);var t},Ir=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return jr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Gr=function(e){let t=jr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Tr={text:Ir,txt:Ir,array:Gr,flat:Gr},Dr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ir(e,!0)),null):Tr.hasOwnProperty(t)?Tr[t](e):e},Cr=e=>{jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Or=/\//;let Vr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Nr(e),!Or.test(e)){let t=this.json.children.find((t=>t.id===e));return new Vr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||Pr({});return new Vr(t)}add(e,t={}){if(xr(e))return e.forEach((e=>this.add(Nr(e),t))),this;e=Nr(e);let n=Pr({id:e,props:t});return this.json.children.push(n),new Vr(n)}remove(e){return e=Nr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return jr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return jr(this.json)}fillDown(){var e;return e=this.json,jr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else xr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Cr(this.json);let e=jr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Cr(this.json),Dr(this.json,e)}debug(){return Cr(this.json),Dr(this.json,"debug"),this}};const Br=function(e){let t=Er(e);return new Vr(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const $r=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Fr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:$r(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sr=function(e){return e?"string"==typeof e?[e]:e:[]};var Hr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sr(e[t].children),e[t].not=Sr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Wr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Hr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Fr(n)},Mr={one:{setTag:yr,unTag:wr,addTags:Wr}};const Jr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Lr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Jr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Jr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var qr=Lr,Kr=function(e){Object.assign(e.prototype,qr)},Ur={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Rr=new Set(["Auxiliary","Possessive"]);var _r=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Rr.has(e)||!t.hasOwnProperty(n))return 1;if(Rr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Qr={model:{one:{tagSet:{}}},compute:{tagRank:_r},methods:Mr,api:Kr,lib:Ur};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Yr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var ea=function(e){let t=[],n=e.split(Xr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const oa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ia=RegExp("("+Object.keys(oa).join("|")+")","g"),sa=RegExp("("+Object.values(oa).join("|")+")","g"),la=function(e){if(!e)return!1;let t=e.match(sa);return null!==t&&1===t.length};var ua=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var xa=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Aa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wa(n),n=ba(n),n=n.filter((e=>e)),n};let Na=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Ea=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ia=/[\p{Punctuation}\s]+$/u,Ga=/^[\p{Punctuation}\s]+/u,Ta=/['’]/,Da=/^[a-z]\.([a-z]\.)+/i,Ca=/^'[0-9]{2}/;var Oa=function(e){let t=e,n="",r="";return e=e.replace(Ga,(t=>{let r=t.match(Na);return r?(n=t.replace(Na,""),r):"'"===n&&Ca.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ia,(a=>{let o=a.match(Ea);return o?(r=a.replace(Ea,""),o):Ta.test(a)&&/[sn]['’]$/.test(t)&&!1===Ta.test(n)?(r=r.replace(Ta,""),"'"):!0===Da.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}},Va=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},Ba=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const za=/([A-Z]\.)+[A-Z]?,?$/,$a=/^[A-Z]\.,?$/,Fa=/[A-Z]{2,}('s|,)?$/,Sa=/([a-z]\.)+[a-z]\.?$/;var Ha=function(e){return function(e){return!0===za.test(e)||!0===Sa.test(e)||!0===$a.test(e)||!0===Fa.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Wa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ba(r),r=n(r,t),r=Ha(r),e.normal=r},Ma=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Wa(e,t)})),n})),e};const Ja=/[ .][A-Z]\.? *$/i,La=/(?:\u2026|\.{2,}) *$/,qa=/\p{L}/u,Ka=/^[A-Z]\. $/;var Ua=function(e,t){if(!1===qa.test(e))return!1;if(!0===Ja.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===La.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ra={one:{killUnicode:Va,tokenize:{splitSentences:ga,isSentence:Ua,splitTerms:xa,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Oa(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Ma}}},_a={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},Za={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qa[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])}))}));var Ya=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){eo[t]=e}))}));const to=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),to.test(n)&&!no.test(n)&&!ro.test(n)){let t=n.split(to);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const oo=/^\p{Letter}+-\p{Letter}+$/u;var io=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),oo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},so=function(e){let t=e.docs,n={};for(let e=0;eho(e,ao),machine:e=>ho(e,io),normal:e=>ho(e,Wa),freq:so,offset:lo,index:uo,wordCount:co},methods:Ra,model:{one:{aliases:_a,abbreviations:Qa,prefixes:Ya,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Za,unicode:eo}},hooks:["alias","machine","index","id"]},mo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var fo=function(e){e.prototype.autoFill=go},vo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const bo={safe:!0,min:3};var yo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},bo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=vo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},wo={model:{one:{typeahead:{}}},api:fo,lib:yo,compute:mo,hooks:["typeahead"]};v.extend(ee),v.extend(Ln),v.extend(ln),v.extend(rr),v.extend(Qr),v.plugin(Ie),v.extend(po),v.plugin(P),v.extend(Le),v.extend(wo),v.extend(ze),v.extend(mr);var Po={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ko={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ao=36,jo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",xo=jo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==xo[e])return xo[e];let t=0,n=1,r=Ao,a=1;for(;n=0;n--,a*=Ao){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Eo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Go(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=To(ko[e]);Vo.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Oo(t,$o);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Bo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Bo[e]="Emoticon")),delete Bo[""],delete Bo.null,delete Bo[" "];const Fo="Adjective";var So={beforeTags:{Determiner:Fo,Possessive:Fo},afterTags:{Adjective:Fo},beforeWords:{seem:Fo,seemed:Fo,seems:Fo,feel:Fo,feels:Fo,felt:Fo,appear:Fo,appears:Fo,appeared:Fo,also:Fo,over:Fo,under:Fo,too:Fo,it:Fo,but:Fo,still:Fo,really:Fo,quite:Fo,well:Fo,very:Fo,deeply:Fo,profoundly:Fo,extremely:Fo,so:Fo,badly:Fo,mostly:Fo,totally:Fo,awfully:Fo,rather:Fo,nothing:Fo,something:Fo,anything:Fo,not:Fo,me:Fo},afterWords:{too:Fo,also:Fo,or:Fo}};const Ho="Gerund";var Wo={beforeTags:{Adverb:Ho,Preposition:Ho,Conjunction:Ho},afterTags:{Adverb:Ho,Possessive:Ho,Person:Ho,Pronoun:Ho,Determiner:Ho,Copula:Ho,Preposition:Ho,Conjunction:Ho,Comparative:Ho},beforeWords:{been:Ho,keep:Ho,continue:Ho,stop:Ho,am:Ho,be:Ho,me:Ho,began:Ho,start:Ho,starts:Ho,started:Ho,stops:Ho,stopped:Ho,help:Ho,helps:Ho,avoid:Ho,avoids:Ho,love:Ho,loves:Ho,loved:Ho,hate:Ho,hates:Ho,hated:Ho},afterWords:{you:Ho,me:Ho,her:Ho,him:Ho,them:Ho,their:Ho,it:Ho,this:Ho,there:Ho,on:Ho,about:Ho,for:Ho}},Mo={beforeTags:Object.assign({},So.beforeTags,Wo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},So.afterTags,Wo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},So.beforeWords,Wo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},So.afterWords,Wo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Jo="Singular";var Lo={beforeTags:{Determiner:Jo,Possessive:Jo,Acronym:Jo,Noun:Jo,Adjective:Jo,PresentTense:Jo,Gerund:Jo,PastTense:Jo,Infinitive:Jo,Date:Jo},afterTags:{Value:Jo,Modal:Jo,Copula:Jo,PresentTense:Jo,PastTense:Jo,Demonym:Jo},beforeWords:{the:Jo,with:Jo,without:Jo,of:Jo,for:Jo,any:Jo,all:Jo,on:Jo,cut:Jo,cuts:Jo,save:Jo,saved:Jo,saves:Jo,make:Jo,makes:Jo,made:Jo,minus:Jo,plus:Jo,than:Jo,another:Jo,versus:Jo,neither:Jo,favorite:Jo,best:Jo,daily:Jo,weekly:Jo,linear:Jo,binary:Jo,mobile:Jo,lexical:Jo,technical:Jo,computer:Jo,scientific:Jo,formal:Jo},afterWords:{of:Jo,system:Jo,aid:Jo,method:Jo,utility:Jo,tool:Jo,reform:Jo,therapy:Jo,philosophy:Jo,room:Jo,authority:Jo,says:Jo,said:Jo,wants:Jo,wanted:Jo}};const qo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ko={beforeTags:Object.assign({},So.beforeTags,Lo.beforeTags,qo.beforeTags),afterTags:Object.assign({},So.afterTags,Lo.afterTags),beforeWords:Object.assign({},So.beforeWords,Lo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Lo.afterWords)};const Uo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ro={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},_o={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Qo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Zo={beforeTags:Object.assign({},So.beforeTags,Uo),afterTags:Object.assign({},So.afterTags,Ro),beforeWords:Object.assign({},So.beforeWords,_o),afterWords:Object.assign({},So.afterWords,Qo)};const Yo="Infinitive";var Xo={beforeTags:{Modal:Yo,Adverb:Yo,Negative:Yo,Plural:Yo},afterTags:{Determiner:Yo,Adverb:Yo,Possessive:Yo,Preposition:Yo},beforeWords:{i:Yo,we:Yo,you:Yo,they:Yo,to:Yo,please:Yo,will:Yo,have:Yo,had:Yo,would:Yo,could:Yo,should:Yo,do:Yo,did:Yo,does:Yo,can:Yo,must:Yo,us:Yo,me:Yo,he:Yo,she:Yo,it:Yo,being:Yo},afterWords:{the:Yo,me:Yo,you:Yo,him:Yo,her:Yo,them:Yo,it:Yo,a:Yo,an:Yo,up:Yo,down:Yo,by:Yo,out:Yo,off:Yo,under:Yo,when:Yo,all:Yo,to:Yo,because:Yo,although:Yo,before:Yo,how:Yo,otherwise:Yo,together:Yo,though:Yo,yet:Yo}};const ei={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ti={beforeTags:Object.assign({},So.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},So.afterTags,Xo.afterTags,ei.afterTags),beforeWords:Object.assign({},So.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Xo.afterWords,{to:void 0})};const ni={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ri={},ai={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oi={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ii={beforeTags:Object.assign({},Wo.beforeTags,Lo.beforeTags,ni),afterTags:Object.assign({},Wo.afterTags,Lo.afterTags,ri),beforeWords:Object.assign({},Wo.beforeWords,Lo.beforeWords,ai),afterWords:Object.assign({},Wo.afterWords,Lo.afterWords,oi)},si={beforeTags:Object.assign({},Xo.beforeTags,Lo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xo.afterTags,Lo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xo.beforeWords,Lo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xo.afterWords,Lo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const li="Person";var ui={beforeTags:{Honorific:li,Person:li,Preposition:li},afterTags:{Person:li,ProperNoun:li,Verb:li},ownTags:{ProperNoun:li},beforeWords:{hi:li,hey:li,yo:li,dear:li,hello:li},afterWords:{said:li,says:li,told:li,tells:li,feels:li,felt:li,seems:li,thinks:li,thought:li,spends:li,spendt:li,plays:li,played:li,sing:li,sang:li,learn:li,learned:li,wants:li,wanted:li}};const ci="Month",hi={beforeTags:{Date:ci,Value:ci},afterTags:{Date:ci,Value:ci},beforeWords:{by:ci,in:ci,on:ci,during:ci,after:ci,before:ci,between:ci,until:ci,til:ci,sometime:ci,of:ci,this:ci,next:ci,last:ci,previous:ci,following:ci},afterWords:{sometime:ci,in:ci,of:ci,until:ci,the:ci}};var di={beforeTags:Object.assign({},ui.beforeTags,hi.beforeTags),afterTags:Object.assign({},ui.afterTags,hi.afterTags),beforeWords:Object.assign({},ui.beforeWords,hi.beforeWords),afterWords:Object.assign({},ui.afterWords,hi.afterWords)};const pi={Place:"Place"},mi={Place:"Place",Abbreviation:"Place"},gi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},fi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let vi="Unit";const bi="Honorific";let yi={first:bi,general:bi,royal:bi,vice:bi,rear:bi,major:bi};const wi={"Adj|Gerund":Mo,"Adj|Noun":Ko,"Adj|Past":Zo,"Adj|Present":ti,"Noun|Verb":si,"Noun|Gerund":ii,"Person|Noun":{beforeTags:Object.assign({},Lo.beforeTags,ui.beforeTags),afterTags:Object.assign({},Lo.afterTags,ui.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ui.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Lo.afterWords,ui.afterWords)},"Person|Date":di,"Person|Verb":{beforeTags:Object.assign({},ui.beforeTags,Xo.beforeTags),afterTags:Object.assign({},ui.afterTags,Xo.afterTags),beforeWords:Object.assign({},ui.beforeWords,Xo.beforeWords),afterWords:Object.assign({},ui.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},pi,ui.beforeTags),afterTags:Object.assign({},mi,ui.afterTags),beforeWords:Object.assign({},gi,ui.beforeWords),afterWords:Object.assign({},fi,ui.afterWords)},"Unit|Noun":{beforeTags:{Value:vi},afterTags:{},beforeWords:{per:vi,every:vi,each:vi,square:vi,cubic:vi,sq:vi,metric:vi},afterWords:{per:vi,squared:vi,cubed:vi,long:vi}},"Honorific|Noun":{beforeTags:{Honorific:bi,ProperNoun:bi,Ordinal:bi},afterTags:{Person:bi,ProperNoun:bi},beforeWords:Object.assign({},yi,{honorable:bi,honourable:bi,worship:bi,excellency:bi,majesty:bi,right:bi}),afterWords:yi}},Pi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};wi["Plural|Verb"]={beforeWords:Pi(wi["Noun|Verb"].beforeWords,{}),afterWords:Pi(wi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:Pi(wi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Pi(wi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ki=wi;const Ai="Adjective",ji="Infinitive",xi="PresentTense",Ni="Singular",Ei="PastTense",Ii="Adverb",Gi="Plural",Ti="Actor",Di="Verb",Ci="Noun",Oi="LastName",Vi="Modal",Bi="Participle";var zi=[null,null,{ea:Ni,ia:Ci,ic:Ai,ly:Ii,"'n":Di,"'t":Di},{oed:Ei,ued:Ei,xed:Ei," so":Ii,"'ll":Vi,"'re":"Copula",azy:Ai,eer:Ci,end:Di,ped:Ei,ffy:Ai,ify:ji,ing:"Gerund",ize:ji,ibe:ji,lar:Ai,mum:Ai,nes:xi,nny:Ai,ous:Ai,que:Ai,rol:Ni,sis:Ni,ogy:Ni,oid:Ni,ian:Ni,zes:xi,eld:Ei,ken:Bi,ven:Bi,ten:Bi,ect:ji,ict:ji,ign:ji,ful:Ai,bal:Ai},{amed:Ei,aped:Ei,ched:Ei,lked:Ei,rked:Ei,reed:Ei,nded:Ei,mned:Ai,cted:Ei,dged:Ei,ield:Ni,akis:Oi,cede:ji,chuk:Oi,czyk:Oi,ects:xi,ends:Di,enko:Oi,ette:Ni,wner:Ni,fies:xi,fore:Ii,gate:ji,gone:Ai,ices:Gi,ints:Gi,ruct:ji,ines:Gi,ions:Gi,less:Ai,llen:Ai,made:Ai,nsen:Oi,oses:xi,ould:Vi,some:Ai,sson:Oi,tion:Ni,tage:Ci,ique:Ni,tive:Ai,tors:Ci,vice:Ni,lier:Ni,fier:Ni,wned:Ei,gent:Ni,tist:Ni,pist:Ni,rist:Ni,mist:Ni,yist:Ni,vist:Ni,lite:Ni,site:Ni,rite:Ni,mite:Ni,bite:Ni,mate:Ni,date:Ni,ndal:Ni,vent:Ni,uist:Ni,gist:Ni,note:Ni,cide:Ni,wide:Ai,vide:ji,ract:ji,duce:ji,pose:ji,eive:ji,lyze:ji,lyse:ji,iant:Ai,nary:Ai},{elist:Ni,holic:Ni,phite:Ni,tized:Ei,urned:Ei,eased:Ei,ances:Gi,bound:Ai,ettes:Gi,fully:Ii,ishes:xi,ities:Gi,marek:Oi,nssen:Oi,ology:Ci,osome:Ni,tment:Ni,ports:Gi,rough:Ai,tches:xi,tieth:"Ordinal",tures:Gi,wards:Ii,where:Ii,archy:Ci,pathy:Ci,opoly:Ci,embly:Ci,phate:Ci,ndent:Ni,scent:Ni,onist:Ni,anist:Ni,alist:Ni,olist:Ni,icist:Ni,ounce:ji,iable:Ai,borne:Ai,gnant:Ai,inant:Ai,igent:Ai,atory:Ai,rient:Ni,dient:Ni},{auskas:Oi,parent:Ni,cedent:Ni,ionary:Ni,cklist:Ni,keeper:Ti,logist:Ti,teenth:"Value"},{opoulos:Oi,borough:"Place",sdottir:Oi}];const $i="Adjective",Fi="Noun",Si="Verb";var Hi=[null,null,{},{neo:Fi,bio:Fi,"de-":Si,"re-":Si,"un-":Si},{anti:Fi,auto:Fi,faux:$i,hexa:Fi,kilo:Fi,mono:Fi,nano:Fi,octa:Fi,poly:Fi,semi:$i,tele:Fi,"pro-":$i,"mis-":Si,"dis-":Si,"pre-":$i},{anglo:Fi,centi:Fi,ethno:Fi,ferro:Fi,grand:Fi,hepta:Fi,hydro:Fi,intro:Fi,macro:Fi,micro:Fi,milli:Fi,nitro:Fi,penta:Fi,quasi:$i,radio:Fi,tetra:Fi,"omni-":$i,"post-":$i},{pseudo:$i,"extra-":$i,"hyper-":$i,"inter-":$i,"intra-":$i,"deca-":$i},{electro:Fi}];const Wi="Adjective",Mi="Infinitive",Ji="PresentTense",Li="Singular",qi="PastTense",Ki="Adverb",Ui="Expression",Ri="Actor",_i="Verb",Qi="Noun",Zi="LastName";var Yi={a:[[/.[aeiou]na$/,Qi,"tuna"],[/.[oau][wvl]ska$/,Zi],[/.[^aeiou]ica$/,Li,"harmonica"],[/^([hyj]a+)+$/,Ui,"haha"]],c:[[/.[^aeiou]ic$/,Wi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,qi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,qi,"rammed"],[/.[aeiou][sg]hed$/,qi,"gushed"],[/.[aeiou]red$/,qi,"hired"],[/.[aeiou]r?ried$/,qi,"hurried"],[/[^aeiou]ard$/,Li,"steward"],[/[aeiou][^aeiou]id$/,Wi,""],[/.[vrl]id$/,Wi,"livid"],[/..led$/,qi,"hurled"],[/.[iao]sed$/,qi,""],[/[aeiou]n?[cs]ed$/,qi,""],[/[aeiou][rl]?[mnf]ed$/,qi,""],[/[aeiou][ns]?c?ked$/,qi,"bunked"],[/[aeiou]gned$/,qi],[/[aeiou][nl]?ged$/,qi],[/.[tdbwxyz]ed$/,qi],[/[^aeiou][aeiou][tvx]ed$/,qi],[/.[cdflmnprstv]ied$/,qi,"emptied"]],e:[[/.[lnr]ize$/,Mi,"antagonize"],[/.[^aeiou]ise$/,Mi,"antagonise"],[/.[aeiou]te$/,Mi,"bite"],[/.[^aeiou][ai]ble$/,Wi,"fixable"],[/.[^aeiou]eable$/,Wi,"maleable"],[/.[ts]ive$/,Wi,"festive"],[/[a-z]-like$/,Wi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Wi,"cornish"],[/.v[iy]ch$/,Zi,"..ovich"],[/^ug?h+$/,Ui,"ughh"],[/^uh[ -]?oh$/,Ui,"uhoh"],[/[a-z]-ish$/,Wi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Zi,"polish-male"]],k:[[/^(k){2}$/,Ui,"kkkk"]],l:[[/.[gl]ial$/,Wi,"familial"],[/.[^aeiou]ful$/,Wi,"fitful"],[/.[nrtumcd]al$/,Wi,"natal"],[/.[^aeiou][ei]al$/,Wi,"familial"]],m:[[/.[^aeiou]ium$/,Li,"magnesium"],[/[^aeiou]ism$/,Li,"schism"],[/^[hu]m+$/,Ui,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Wi,"republican"],[/[^aeiou]ician$/,Ri,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ui,"noooo"],[/^(yo)+$/,Ui,"yoo"],[/^wo{2,}[pt]?$/,Ui,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Li],[/[^i]fer$/,Mi],[/.[^aeiou][ao]pher$/,Ri],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Wi],[/[aeiou].*ist$/,Wi],[/^[a-z]et$/,_i]],s:[[/.[^aeiou]ises$/,Ji],[/.[rln]ates$/,Ji],[/.[^z]ens$/,_i],[/.[lstrn]us$/,Li],[/.[aeiou]sks$/,Ji],[/.[aeiou]kes$/,Ji],[/[aeiou][^aeiou]is$/,Li],[/[a-z]'s$/,Qi],[/^yes+$/,Ui]],v:[[/.[^aeiou][ai][kln]ov$/,Zi]],y:[[/.[cts]hy$/,Wi],[/.[st]ty$/,Wi],[/.[tnl]ary$/,Wi],[/.[oe]ry$/,Li],[/[rdntkbhs]ly$/,Ki],[/.(gg|bb|zz)ly$/,Wi],[/...lly$/,Ki],[/.[gk]y$/,Wi],[/[bszmp]{2}y$/,Wi],[/.[ai]my$/,Wi],[/[ea]{2}zy$/,Wi],[/.[^aeiou]ity$/,Li]]};const Xi="Verb",es="Noun";var ts={leftTags:[["Adjective",es],["Possessive",es],["Determiner",es],["Adverb",Xi],["Pronoun",Xi],["Value",es],["Ordinal",es],["Modal",Xi],["Superlative",es],["Demonym",es],["Honorific","Person"]],leftWords:[["i",Xi],["first",es],["it",Xi],["there",Xi],["not",Xi],["because",es],["if",es],["but",es],["who",Xi],["this",es],["his",es],["when",es],["you",Xi],["very","Adjective"],["old",es],["never",Xi],["before",es],["a","Singular"],["the",es],["been",Xi]],rightTags:[["Copula",es],["PastTense",es],["Conjunction",es],["Modal",es]],rightWords:[["there",Xi],["me",Xi],["man","Adjective"],["only",Xi],["him",Xi],["it",Xi],["were",es],["took",es],["himself",Xi],["went",es],["who",es],["jr","Person"]]},ns={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},rs={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},as={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},os={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},is={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ss=/^.([0-9]+)/;var ls=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ss);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ss,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},cs=/^([0-9]+)/,hs=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(cs);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(cs,"")]}(n[0],n[1])}))};var ds=function(e={}){return(e=Object.assign({},e)).rules=hs(e.rules),e.rules=us(e.rules),e.rev&&(e.rev=hs(e.rev),e.rev=us(e.rev)),e.exceptions=hs(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},ps=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const ms=ds({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),gs=ds(os),fs=ds(rs),vs=ds(as),bs=ps(ms),ys=ps(gs),ws=ps(fs),Ps=ps(vs),ks=ds(ns),As=ds(is);var js={fromPast:ms,fromPresent:gs,fromGerund:fs,fromParticiple:vs,toPast:bs,toPresent:ys,toGerund:ws,toParticiple:Ps,toComparative:ks,toSuperlative:As,fromComparative:ps(ks),fromSuperlative:ps(As)},xs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ns=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Es=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Is[t].forEach((n=>e[n]=t)),e)),{});var Gs=Is,Ts=function(e){let t=e.substring(e.length-3);if(!0===Gs.hasOwnProperty(t))return Gs[t];let n=e.substring(e.length-2);return!0===Gs.hasOwnProperty(n)?Gs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ds={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Cs=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ts(e)),Ds.hasOwnProperty(e))c=Ds[e];else if("Participle"===n)c=ls(l,i);else if("PastTense"===n)c=ls(l,r);else if("PresentTense"===n)c=ls(l,a);else{if("Gerund"!==n)return e;c=ls(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};const Os=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ls(i,n),PresentTense:ls(i,r),Gerund:ls(i,a),FutureTense:"will "+e},u=ls(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Vs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Bs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],zs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var $s=function(e){if(zs.hasOwnProperty(e))return zs[e];let t=Vs(e,Bs);return t||e+"ly"};const Fs=function(e,t){const n=t.two.models.toSuperlative;return ls(e,n)},Ss=function(e,t){const n=t.two.models.toComparative;return ls(e,n)},Hs="ically",Ws=new Set(["analyt"+Hs,"chem"+Hs,"class"+Hs,"clin"+Hs,"crit"+Hs,"ecolog"+Hs,"electr"+Hs,"empir"+Hs,"frant"+Hs,"grammat"+Hs,"ident"+Hs,"ideolog"+Hs,"log"+Hs,"mag"+Hs,"mathemat"+Hs,"mechan"+Hs,"med"+Hs,"method"+Hs,"method"+Hs,"mus"+Hs,"phys"+Hs,"phys"+Hs,"polit"+Hs,"pract"+Hs,"rad"+Hs,"satir"+Hs,"statist"+Hs,"techn"+Hs,"technolog"+Hs,"theoret"+Hs,"typ"+Hs,"vert"+Hs,"whims"+Hs]),Ms=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Js=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ls={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var qs=function(e){return e.endsWith("ly")?Ws.has(e)?e.replace(/ically/,"ical"):Js.has(e)?null:Ls.hasOwnProperty(e)?Ls[e]:Vs(e,Ms)||e:null};const Ks=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Us={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Rs=new Set(["terrible","annoying"]);var _s={noun:{toPlural:Oo,toSingular:Es,all:Oo},verb:{toInfinitive:Cs,conjugate:Os,all:function(e,t){let n=Os(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},adjective:{toSuperlative:Fs,toComparative:Ss,toAdverb:$s,toNoun:function(e){if(Us.hasOwnProperty(e))return Us[e];if(Rs.has(e))return null;let t=Vs(e,Ks);return t||e+"ness"},fromAdverb:qs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ls(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ls(e,n)},all:function(e,t){let n=[e];return n.push(Fs(e,t)),n.push(Ss(e,t)),n.push($s(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}}},Qs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Zs=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Qs.hasOwnProperty(i)&&Qs[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},Ys=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!tl.find((t=>e.endsWith(t)))},rl={two:{quickSplit:Ys,expandLexicon:Zs,transform:_s,looksPlural:nl}},al=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const ol=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var il=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=ol(n,"Infinitive","PastTense"),Object.assign(s,l),l=ol(r,"Infinitive","Verb"),Object.assign(s,l),l=ol(a,"Infinitive","Gerund"),Object.assign(s,l),l=ol(o,"Adjective","Superlative"),Object.assign(s,l),l=ol(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let sl={two:{models:js}};const ll={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},ul=function(e,t){const n={model:t,methods:rl};let{lex:r,_multi:a}=rl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},cl=function(e,t,n){let r=Os(e,sl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},hl=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=ll[o],"Noun|Verb"!==o&&"Person|Verb"!==o||cl(a,r,!1),"Adj|Present"===o&&(cl(a,r,!0),function(e,t,n){let r=Fs(e,n);t[r]=t[r]||"Superlative";let a=Ss(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Cs(a,sl,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Cs(a,sl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=ul(n,t)};var dl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=ul(e.one.lexicon,e)).one.lexicon,e),e=hl(e.two.switches,e),e=il(e),e=al(e)};let pl={one:{_multiCache:{},lexicon:Bo},two:{irregularPlurals:Po,models:js,suffixPatterns:zi,prefixPatterns:Hi,endsWith:Yi,neighbours:ts,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:zo,clues:ki,uncountable:{},orgWords:xs}};pl=dl(pl);var ml=pl;const gl=/^(under|over|mis|re|un|dis|semi)-?/;var fl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(gl.test(a.normal)){let e=a.normal.replace(gl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},vl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const bl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var yl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(nl(e.normal)?vl(e,"Plural","3-plural-guess"):vl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ts(e.normal);t&&vl(e,t,"3-verb-tense-guess")}}(r)};const wl=/^\p{Lu}[\p{Ll}'’]/u,Pl=/[0-9]/,kl=["Date","Month","WeekDay","Unit"],Al=/^[IVXLCDM]{2,}$/,jl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,xl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Nl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===wl.test(o)&&!1===Pl.test(o)?kl.find((e=>r.tags.has(e)))?null:(yl(e,t,n),r.tags.has("Noun")||r.tags.clear(),vl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Al.test(o)&&jl.test(o)&&!xl[r.normal]?(vl(r,"RomanNumeral","2-xvii"),!0):null};const El=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var Il=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=El(r.normal,n.two.suffixPatterns);if(null!==e)return vl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=El(r.implicit,n.two.suffixPatterns),null!==e))return vl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Gl=/['‘’‛‵′`´]/,Tl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return vl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Ol=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Vl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Ol.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Bl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},zl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var $l=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Vl(a)||Vl(o))return vl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Bl(a)||Bl(o))return vl(n,"Year","2-tagYear-close");if(zl(e[t-2])||zl(e[t+2]))return vl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return vl(n,"Year","2-tagYear-noun")}}}return null};const Fl=/^[A-Z]('s|,)?$/,Sl=/^[A-Z-]+$/,Hl=/([A-Z]\.)+[A-Z]?,?$/,Wl=/[A-Z]{2,}('s|,)?$/,Ml=/([a-z]\.)+[a-z]\.?$/,Jl={I:!0,A:!0};var Ll=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Sl.test(n)||n.length>5||Jl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Hl.test(n)&&!0!==Ml.test(n)&&!0!==Fl.test(n)&&!0!==Wl.test(n))}(r,n)?(r.tags.clear(),vl(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Jl.hasOwnProperty(r.text)&&Fl.test(r.text)?(r.tags.clear(),vl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(vl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Sl.test(r.text)&&r.text.length<=6?(vl(r,"Acronym","3-titlecase-acronym"),!0):null};const ql=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Kl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ul=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||ql(e[t-1],a),l=l||ql(e[t+1],o),l=l||Kl(e[t-1],r),l=l||Kl(e[t+1],i),l)return vl(s,l,"3-[neighbour]"),yl(e,t,n),e[t].confidence=.2,!0}return null};const Rl=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var _l=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Rl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Rl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ql=function(e,t,n){0===e[t].tags.size&&(vl(e[t],"Noun","3-[fallback]"),yl(e,t,n),e[t].confidence=.1)};const Zl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Yl=(e,t,n)=>0!==t||e[1]?null:n,Xl={"Adj|Gerund":(e,t)=>Zl(e,t),"Adj|Noun":(e,t)=>Zl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Zl(e,t),"Adj|Present":(e,t)=>Zl(e,t),"Noun|Gerund":(e,t)=>Zl(e,t),"Noun|Verb":(e,t)=>Zl(e,t)||Yl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Zl(e,t)||Yl(e,t,"PresentTense"),"Person|Noun":(e,t)=>Zl(e,t),"Person|Verb":(e,t)=>0!==t?Zl(e,t):null};var eu=Xl;const tu="undefined"!=typeof process&&process.env?process.env:self.env||{},nu=/^(under|over|mis|re|un|dis|semi)-?/,ru=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&tu.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},au=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&tu.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var ou=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(nu.test(l)&&!o[l]&&(l=l.replace(nu,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=ru(e[t+1],n.afterWords);return o=o||ru(e[t-1],n.beforeWords),o=o||au(e[t-1],n.beforeTags,a),o=o||au(e[t+1],n.afterTags,a),o}(e,t,i[o],r);eu[o]&&(u=eu[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),yl(e,t,r)):tu.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},iu=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(vl(o,"Verb","3-[prefix]"),vl(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(vl(o,"Adjective","3-[prefix]"),vl(o,"Prefix","3-[prefix]")))};const su={tagSwitch:fl,checkSuffix:Il,checkRegex:Dl,checkCase:Nl,checkPrefix:Cl,checkHyphen:iu,checkYear:$l},lu={checkAcronym:Ll,neighbours:Ul,orgWords:_l,nounFallback:Ql,switches:ou},uu=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var pu=function(e){const t=e.world,n=Object.keys(du);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=xu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=ju},Eu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Iu=/'/;var Gu=function(e,t){let n=e[t].normal.split(Iu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Tu=/'/;var Du=function(e,t){let n=e[t].normal.split(Tu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Cu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Ou={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Vu={in:!0,by:!0,for:!0};var Bu=(e,t)=>{let n=e[t];if(Ou.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Vu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const zu=/'/,$u=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Fu={d:(e,t)=>Du(e,t),t:(e,t)=>Cu(e,t),s:(e,t,n)=>Bu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Gu(e,t)},Su=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Hu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===zu.test(r[o].normal)&&([,i]=r[o].normal.split(zu));let s=null;Fu.hasOwnProperty(i)&&(s=Fu[i](r,o,t)),s&&(s=Su(s,e),Eu(n,[a,o],s),$u(n[a],e,o,s.length))}}))}},Wu={compute:Hu,api:Nu,hooks:["contractionTwo"]};const Mu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Ju=["i","we","they"];let Lu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Mu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Mu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Mu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ju,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ju,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ju,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),qu=null;var Ku={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;qu=qu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(qu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Uu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ku,model:{two:{matches:Lu}},hooks:["postTagger"]};var Ru=Uu,_u=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},Qu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=_u(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Zu={lib:{lazy:Qu}},Yu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},Xu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Yu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},ec={api:function(e){e.prototype.swap=Xu}};v.plugin(Pu),v.plugin(Wu),v.plugin(Ru),v.plugin(Zu),v.plugin(ec);var tc=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter((e=>e.wordCount()>5&&e.match("#Verb+").length>=2));if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},nc=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r},rc=function(e){e.prototype.chunks=nc,e.prototype.clauses=tc};const ac={this:"Noun",then:"Pivot"};var oc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},pc={chunks:function(e){const{document:t,world:n}=e;oc(t),ic(t),uc(e,t,n),hc(t),dc(t)}},mc={compute:pc,api:rc,hooks:["chunks"]};const gc=/'s$/;var fc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(gc,""),e.normal=e.normal.replace(gc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const vc=/\(/,bc=/\)/,yc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(vc,"");let t=e[e.length-1];t.post=t.post.replace(bc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const Pc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},kc=RegExp("("+Object.keys(Pc).join("|")+")"),Ac=RegExp("("+Object.values(Pc).join("|")+")"),jc=function(e,t){const n=e[t].pre.match(kc)[0]||"";if(!n||!Pc[n])return null;const r=Pc[n];for(;t{e[0].pre=e[0].pre.replace(kc,"");let t=e[e.length-1];t.post=t.post.replace(Ac,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Nc=/\./g;var Ec=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Nc,""),e.normal=e.normal.replace(Nc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Nc,""),e.normal=e.normal.replace(Nc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},Ic=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Gc=(e,t)=>"number"==typeof t?e.eq(t):e,Tc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Dc=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Tc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let o=Tc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Gc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Gc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Gc(t,e),new Adjectives(t.document,t.pointer)}};const Cc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},Oc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let Vc=[["emojis","emoji"],["atmentions","atMentions"]];var Bc=function(e){Oc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Cc,Vc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},zc={api:function(e){Bc(e),fc(e),wc(e),xc(e),Dc(e),Ic(e),Ec(e)}};const $c=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Fc={case:e=>{$c(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;$c(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{$c(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{$c(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Sc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Hc="unicode|punctuation|whitespace|acronyms",Wc="|case|contractions|parentheses|quotations|emoji|honorifics",Mc={light:Sc(Hc),medium:Sc(Hc+Wc),heavy:Sc(Hc+Wc+"|possessives|adverbs|nouns|verbs")};var Jc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Mc[e]),Object.keys(e).forEach((t=>{Fc.hasOwnProperty(t)&&Fc[t](this,e[t])})),this}}},Lc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const qc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Kc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Rc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Uc(e,t),isSubordinate:Kc(e),root:t}};const _c=e=>e.text(),Qc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Zc=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Yc=function(e){let t=Rc(e);return{root:_c(t.root),number:Zc(t.number),determiner:_c(t.determiner),adjectives:Qc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Xc={tags:!0};var eh=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Xc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Xc),e};const th={tags:!0};var nh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,th).tag("Singular","toPlural"),e};const rh=(e,t)=>"number"==typeof t?e.eq(t):e;var ah=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return rh(this,e).map(Rc)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Yc(t)),n}),[])}isPlural(e){let t=this.filter((e=>Rc(e).isPlural));return rh(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Rc(e).adjectives;n.found&&(t=t.concat(n))})),rh(t,e)}toPlural(e){return rh(this,e).map((e=>eh(e,Rc(e))))}toSingular(e){return rh(this,e).map((e=>{let t=Rc(e);return nh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Lc(this);return t=rh(t,e),new Nouns(this.document,t.pointer)}},oh={api:ah},ih=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},sh=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(lh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(lh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(lh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},ch=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const dh=/^([0-9,. ]+)\/([0-9,. ]+)$/,ph={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},mh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var gh=function(e){if(!0===ph.hasOwnProperty(e))return ph[e];if("a"===e||"an"===e)return 1;const t=sh(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=vh(n),r=vh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:vh(n);let a=r.text("reduced");return fh.test(a)&&(a=a.replace(fh,""),r=r.replaceWith(a)),r=bh.hasOwnProperty(a)?bh[a]:vh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:vh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},wh=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const Ph=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],kh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Ah=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],jh=function(e){let t=[];if(e>100)return t;for(let n=0;n=Ph[n][1]&&(e-=Ph[n][1],t.push(Ph[n][0]));return kh[e]&&t.push(kh[e]),t};var xh=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=wh(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Ah.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(jh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=wh(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Nh=function(e){return e.numerator&&e.denominator?`${xh({num:e.numerator})} out of ${xh({num:e.denominator})}`:""};const Eh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Ih=e=>{let t=xh(e).split(" "),n=t[t.length-1];return Eh.hasOwnProperty(n)?t[t.length-1]=Eh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Gh=function(e){if(!e.numerator||!e.denominator)return"";let t=xh({num:e.numerator}),n=Ih({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Th=(e,t)=>"number"==typeof t?e.eq(t):e;var Dh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Th(this,e).map(yh)}get(e){return Th(this,e).map(yh)}json(e){return Th(this,e).map((t=>{let n=t.toView().json(e)[0],r=yh(t);return n.fraction=r,n}),[])}toDecimal(e){return Th(this,e).forEach((e=>{let{decimal:t}=yh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return Th(this,e).forEach((e=>{let t=yh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return Th(this,e).forEach((e=>{let t=yh(e),n=Gh(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return Th(this,e).forEach((e=>{let t=yh(e),n=Nh(t);e.replaceWith(n)})),this}toPercentage(e){return Th(this,e).forEach((e=>{let{decimal:t}=yh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=ih(this);return t=Th(t,e),new Fractions(this.document,t.pointer)}};const Ch="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Oh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Ch+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Ch+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Ch+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Ch+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Ch})`),r=e.has("("+Ch+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Ch+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Ch+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},Vh=function(e){if("string"==typeof e)return{num:gh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=yh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=gh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Bh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=wh(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const zh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},$h={"%":"percent","°":"degrees"};var Fh=function(e){let t={suffix:"",prefix:e.prefix};return zh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+zh[e.prefix],t.prefix=""),$h.hasOwnProperty(e.suffix)&&(t.suffix+=" "+$h[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},Sh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Fh(e);return t+Ih(e)+n}if("Ordinal"===t)return e.prefix+Bh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Fh(e);return t+xh(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Hh=(e,t)=>"number"==typeof t?e.eq(t):e;var Wh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Hh(this,e).map(Vh)}get(e){return Hh(this,e).map(Vh).map((e=>e.num))}json(e){return Hh(this,e).map((t=>{let n=t.toView().json(e)[0],r=Vh(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=Vh(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Sh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=Vh(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Sh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Sh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Sh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Sh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>Vh(t).num===e))}greaterThan(e){return this.filter((t=>Vh(t).num>e))}lessThan(e){return this.filter((t=>Vh(t).num{let r=Vh(n).num;return r>e&&r{let n=Vh(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Sh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=Vh(e).num);let t=this.map((t=>{let n=Vh(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Sh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Oh(this);return t=Hh(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Oh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=Hh(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Oh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=Hh(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Mh={api:function(e){Dh(e),Wh(e)}};const Jh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Lh=function(e={}){return!1!==(e=Object.assign({},Jh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},qh={api:function(e){e.prototype.redact=Lh}};var Kh=qh,Uh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},Rh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},_h=function(e){let t=e.clauses(),n=Rh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Qh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Zh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},Yh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},Xh=function(e){return e.verbs().toInfinitive(),e};const ed=(e,t)=>"number"==typeof t?e.eq(t):e;var td=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=_h(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n}),[])}toPastTense(e){return ed(this,e).map((e=>(_h(e),Qh(e))))}toPresentTense(e){return ed(this,e).map((e=>(_h(e),Zh(e))))}toFutureTense(e){return ed(this,e).map((e=>(_h(e),e=Yh(e))))}toInfinitive(e){return ed(this,e).map((e=>(_h(e),Xh(e))))}toNegative(e){return ed(this,e).map((e=>(_h(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return ed(this,e).map((e=>(_h(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return ed(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return ed(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=ed(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Uh(this);return ed(t,e)}};Object.assign(e.prototype,t)},nd={api:td},rd=function(e){return e.match("#Honorific+? #Person+")},ad=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const od="male",id="female",sd={mr:od,mrs:id,miss:id,madam:id,king:od,queen:id,duke:od,duchess:id,baron:od,baroness:id,count:od,countess:id,prince:od,princess:id,sire:od,dame:id,lady:id,ayatullah:od,congressman:od,congresswoman:id,"first lady":id,mx:null};var ld=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return id;if(n.has("#MaleName"))return od;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),sd.hasOwnProperty(e))return sd[e];if(/^her /.test(e))return id;if(/^his /.test(e))return od}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return od;if(n&&!t)return id}return null};const ud=(e,t)=>"number"==typeof t?e.eq(t):e;var cd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return ud(this,e).map(ad)}json(e){return ud(this,e).map((t=>{let n=t.toView().json(e)[0],r=ad(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:ld(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=rd(this);return t=ud(t,e),new People(this.document,t.pointer)}},hd=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},dd=function(e){e.prototype.places=function(t){let n=hd(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},pd=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const md=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var gd=function(e){e.prototype.topics=md},fd={api:function(e){cd(e),dd(e),pd(e),gd(e)}},vd=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},bd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},yd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const wd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Pd=function(e){return e.match("#Negative")},kd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Ad=function(e){let t=e.clone();t.contractions().expand();const n=bd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:yd(t,n),auxiliary:wd(t,n),negative:Pd(t),phrasal:kd(n)}};const jd={tense:"PresentTense"},xd={conditional:!0},Nd={tense:"FutureTense"},Ed={progressive:!0},Id={tense:"PastTense"},Gd={complete:!0,progressive:!1},Td={passive:!0},Dd=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Cd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[jd]],["^wanted to #Infinitive$",[Id]],["^will want to #Infinitive$",[Nd]]],"gerund-phrase":[["^#PastTense #Gerund$",[Id]],["^#PresentTense #Gerund$",[jd]],["^#Infinitive #Gerund$",[jd]],["^will #Infinitive #Gerund$",[Nd]],["^have #PastTense #Gerund$",[Id]],["^will have #PastTense #Gerund$",[Id]]],"simple-present":[["^#PresentTense$",[jd]],["^#Infinitive$",[jd]]],"simple-past":[["^#PastTense$",[Id]]],"simple-future":[["^will #Adverb? #Infinitive",[Nd]]],"present-progressive":[["^(is|are|am) #Gerund$",[jd,Ed]]],"past-progressive":[["^(was|were) #Gerund$",[Id,Ed]]],"future-progressive":[["^will be #Gerund$",[Nd,Ed]]],"present-perfect":[["^(has|have) #PastTense$",[Id,Gd]]],"past-perfect":[["^had #PastTense$",[Id,Gd]],["^had #PastTense to #Infinitive",[Id,Gd]]],"future-perfect":[["^will have #PastTense$",[Nd,Gd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Id,Ed]]],"past-perfect-progressive":[["^had been #Gerund$",[Id,Ed]]],"future-perfect-progressive":[["^will have been #Gerund$",[Nd,Ed]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Id,Td]],["^(was|were) being (#PastTense|#Participle)",[Id,Td]],["^(had|have) been (#PastTense|#Participle)",[Id,Td]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[jd,Td]],["^(is|are|am) being (#PastTense|#Participle)",[jd,Td]],["^has been (#PastTense|#Participle)",[jd,Td]]],"passive-future":[["will have been (#PastTense|#Participle)",[Nd,Td,xd]],["will be being? (#PastTense|#Participle)",[Nd,Td,xd]]],"present-conditional":[["would be #PastTense",[jd,xd]]],"past-conditional":[["would have been #PastTense",[Id,xd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Nd]]],"auxiliary-past":[["^did #Infinitive$",[Id,{plural:!1}]],["^used to #Infinitive$",[Id,Gd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[jd,Gd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Id]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Od=[];Object.keys(Cd).map((e=>{Cd[e].forEach((t=>{Od.push({name:e,match:t[0],data:Dd(t[1])})}))}));var Vd=Od,Bd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),zd(r)&&(n.remove(r),r=n.last()),zd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:$d(t,e)}};const Sd=e=>e,Hd=(e,t)=>{let n=Fd(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Wd=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Fd(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Md=function(e,t){let n=Fd(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Jd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Ld=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Jd(e)),r&&e.replace(t.root,r),e},qd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Kd=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Ud=function(e){return e&&e.isView?e.text("normal"):""},Rd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Jd(e))};var _d=function(e){let t=Ad(e);e=e.clone().toView();const n=Bd(e,t);return{root:t.root.text(),preAdverbs:Kd(t.adverbs.pre),postAdverbs:Kd(t.adverbs.post),auxiliary:Ud(t.auxiliary),negative:t.negative.found,prefix:Ud(t.prefix),infinitive:Rd(t.root),grammar:n}};const Qd={tags:!0};var Zd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Jd(r)),i&&e.replace(r,i,Qd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Md(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Yd={tags:!0},Xd={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Jd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Fd(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Yd),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Xd.simple(e,t),e=Xd.noAux(e,t))},hasHad:e=>(e.replace("has","had",Yd),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Jd(a)),n(o,e.model).Participle}},ep={infinitive:Xd.simple,"simple-present":Xd.simple,"simple-past":Sd,"simple-future":Xd.both,"present-progressive":e=>(e.replace("are","were",Yd),e.replace("(is|are|am)","was",Yd),e),"past-progressive":Sd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Xd.hasHad,"past-perfect":Sd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=qd(e)),e.remove("have"),e),"present-perfect-progressive":Xd.hasHad,"past-perfect-progressive":Sd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Yd),e),"passive-past":e=>(e.replace("have","had",Yd),e),"passive-present":e=>(e.replace("(is|are)","was",Yd),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Yd),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Sd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Yd),e),"auxiliary-past":Sd,"auxiliary-present":e=>(e.replace("(do|does)","did",Yd),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Yd):(Xd.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Sd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Yd),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Xd.simple(e,t),qd(e),e)};var tp=function(e,t,n){return ep.hasOwnProperty(n)?((e=ep[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const np={tags:!0},rp=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Jd(a)),!1===Hd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Wd(e)),o&&(e=e.replace(a,o,np)).not("#Particle").tag("PresentTense"),e},ap=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Jd(a)),!1===Hd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,np)).not("#Particle").tag("Gerund"),e},op={infinitive:rp,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return rp(e,t);{let t=Fd(e).subject;if(Hd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,np)}return e},"simple-past":rp,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Wd(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else rp(e,t),e=e.remove("will");return e},"present-progressive":Sd,"past-progressive":(e,t)=>{let n=Wd(e);return e.replace("(were|was)",n,np)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(rp(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Fd(e).subject;return Hd(e)||n.has("i")?((e=Ld(e,t)).remove("had"),e):(e.replace("had","has",np),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Sd,"past-perfect-progressive":e=>e.replace("had","has",np),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Wd(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,np),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Sd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Sd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(ap(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Md(e);return e.replace(t.auxiliary,n),e}return ap(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Sd,"modal-infinitive":Sd,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Jd(r)),a&&(e=e.replace(t.root,a,np))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),rp(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Hd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,np),e.remove("will"),e}};var ip=function(e,t,n){return op.hasOwnProperty(n)?((e=op[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const sp={tags:!0},lp=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Jd(r)),o&&(e=e.replace(r,o,sp)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},up=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Jd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,sp),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},cp={infinitive:lp,"simple-present":lp,"simple-past":lp,"simple-future":Sd,"present-progressive":up,"past-progressive":up,"future-progressive":Sd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Sd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Sd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Sd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Sd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Sd,"modal-past":Sd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),lp(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var hp=function(e,t,n){return e.has("will")||e.has("going to")?e:cp.hasOwnProperty(n)?((e=cp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const dp={tags:!0};var pp=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Jd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Wd(e)} ${s}`,e.replace(a,s,dp)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const mp={tags:!0},gp=function(e,t){let n=Md(e);return e.prepend(n+" not"),e},fp=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},vp=e=>e.has("(is|was|am|are|will|were|be)"),bp={"simple-present":(e,t)=>!0===vp(e)?fp(e):(e=Ld(e,t),e=gp(e)),"simple-past":(e,t)=>!0===vp(e)?fp(e):((e=Ld(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===vp(e)?fp(e):gp(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",mp),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=gp(e)).replace("wants","want",mp)};var yp=function(e,t,n){if(e.has("#Negative"))return e;if(bp.hasOwnProperty(n))return e=bp[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===vp(e)?fp(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const wp=(e,t)=>"number"==typeof t?e.eq(t):e;var Pp=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return wp(this,e).map(Ad)}json(e,t){let n=wp(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=_d(t),n}),[]);return n}subjects(e){return wp(this,e).map((e=>(Ad(e),Fd(e).subject)))}adverbs(e){return wp(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return wp(this,e).filter((e=>!0!==Fd(e).plural))}isPlural(e){return wp(this,e).filter((e=>!0===Fd(e).plural))}isImperative(e){return wp(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return Zd(e,t,n.form)}))}toPresentTense(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return ip(e,t,n.form)}))}toPastTense(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return tp(e,t,n.form)}))}toFutureTense(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return hp(e,t,n.form)}))}toGerund(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return pp(e,t,n.form)}))}conjugate(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Zd(e.clone(),t,n.form).text("normal"),PastTense:tp(e.clone(),t,n.form).text("normal"),PresentTense:ip(e.clone(),t,n.form).text("normal"),FutureTense:hp(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return yp(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=vd(this);return t=wp(t,e),new Verbs(this.document,t.pointer)}},kp={api:Pp};return v.plugin(mc),v.plugin(zc),v.plugin(Jc),v.plugin(oh),v.plugin(Mh),v.plugin(Kh),v.plugin(nd),v.plugin(fd),v.plugin(kp),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/one/compromise-one.cjs b/builds/one/compromise-one.cjs index cfe9a2d7f..a04251cd7 100644 --- a/builds/one/compromise-one.cjs +++ b/builds/one/compromise-one.cjs @@ -1 +1 @@ -var t,e;t=this,e=function(){var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach((r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)})):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n=e,r={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2]))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var i=o;const s=Object.assign({},i,n,r);s.get=s.eq;var l=s;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach((t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})})),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map((t=>t.map((t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)))));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,l);var a=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function u(t,e){if(c(e))for(const n in e)c(e[n])?(t[n]||Object.assign(t,{[n]:{}}),u(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}var h=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&u(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.exceptions[t]=e[t].pastTense),n.fromPast&&(n.fromPast.exceptions[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.exceptions[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.exceptions[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.exceptions[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.exceptions[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.exceptions[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.exceptions[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[e[t].superlative]=t))}))}(i,t.irregulars),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach((e=>r[e]=t.lib[e])),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const f=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var p=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t)return new e(r.one.tokenize.fromString(t,n));if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(f(t)){if(f(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=function(t){return t.map((t=>t.terms.map((t=>(f(t.tags)&&(t.tags=new Set(t.tags)),t)))))}(t);return new e(n)}return o};let d=Object.assign({},t);const m=function(t,e){e&&m.addWords(e);let n=p(t,a,d);return t&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(t,e){const{compute:n}=this._world;e&&m.addWords(e);let r=p(t,a,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(t){return h(t,this._world,a,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},m.version="14.5.2";var w=m,b=function(t){let e=t.map((t=>{let e=new Set;return t.forEach((t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach((t=>e.add(t)));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),E=(t,e,n)=>{if(n.forEach((t=>t.dirty=!0)),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},O=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},k=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},P=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?O(n):(O(n),O([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!j(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(t=>t.toUpperCase()));let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||j(o.text)&&o.text.length>1&&(o.text=o.text.replace(/^\p{Lu}/u,(t=>t.toLowerCase())))}(t,i,n),E(t,i,n)};let _=0;const S=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var A=function(t){let[e,n]=t.index||[0,0];_+=1,_=_>46655?0:_,e=e>46655?0:e,n=n>1294?0:n;let r=S(_.toString(36));r+=S(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const T=function(t){t.has("@hasContraction")&&"function"==typeof t.contractions&&t.grow("@hasContraction").contractions().expand()},$=t=>"[object Array]"===Object.prototype.toString.call(t),C=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]||[]:$(t)?$(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=A(t),t)))}(f),n?(T(e.update([c]).firstTerm()),P(h,c,f,r)):(T(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)})),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(L,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let o=this.update(n);n=n.map((t=>t.slice(0,3)));let i=(o.docs[0]||[]).map((t=>Array.from(t.tags)));r.insertAfter(t),o.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach(((t,e)=>{t.tagSafe(i[e])})),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),s},replace:function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this}};var q=V,F=function(t,e){e.forEach((e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))}));for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const G={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=F(this.document,i);return o=function(t,e){return t=t.map((t=>{let[n]=t;return e[n]?(e[n].forEach((e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)})),t):t})),t.forEach(((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0))).map((t=>(t[3]=null,t[4]=null,t)))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};G.delete=G.remove;var D=G;const B={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t})),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t})),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")}))})),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach((e=>{e.forEach((e=>{t.test(e.post)&&(e.post=" ")}))})),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this}};B.deHyphenate=B.dehyphenate,B.toQuotation=B.toQuotations;var U=B,M={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach((t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1})),t.sort(((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0})),t}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),R=new Set(["freq","frequency","topk","repeats"]),I=new Set(["alpha","alphabetical"]);var Q={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return W.has(t)&&(t="sequential"),I.has(t)&&(t="alpha"),R.has(t)?(o=M.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof M[t]?(o=o.sort(M[t]),this.update(o.map((t=>t.pointer)))):this}};const Z=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var H={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return E(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach((e=>{e[0]+=t.document.length})),t.document=Z(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=Z(this.document,t);return this.document=e,this.all()}var o;return this}},K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map((t=>t.slice(0,3))),this.ptrs=t),this}};const J=Object.assign({},{toLowerCase:function(){return this.termList().forEach((t=>{t.text=t.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((t=>{t.text=t.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))),n!==t.length-1&&(e.post="")}))})),this}},N,q,D,U,Q,H,K);var X=function(t){Object.assign(t.prototype,J)};const Y={id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t))),n[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const rt=/'/,ot=new Set(["what","how","when","where","why"]),it=new Set(["be","go","start","think","need"]),st=new Set(["been","gone"]);var lt=function(t,e){let n=t[e].normal.split(rt)[0];if(ot.has(n))return[n,"did"];if(t[e+1]){if(st.has(t[e+1].normal))return[n,"had"];if(it.has(t[e+1].normal))return[n,"would"]}return null},at=function(t,e){return"ain't"===t[e].normal||"aint"===t[e].normal?null:[t[e].normal.replace(/n't/,""),"not"]};const ct=/'/;var ut=(t,e)=>["je",t[e].normal.split(ct)[1]],ht=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ft=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,dt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,mt=/^[0-9]{3}-[0-9]{4}$/;var gt=function(t,e){let n=t[e],r=n.text.match(pt);return null!==r?!0===n.tags.has("PhoneNumber")||mt.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(dt),null!==r?[r[1],"to",r[4]]:null)};const wt=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,bt=new Set(["st","nd","rd","th","am","pm","max"]);var yt=function(t,e){let n=t[e].text.match(wt);if(null!==n){let t=n[2].toLowerCase().trim();return bt.has(t)?null:[n[1],t]}return null};const vt=/'/,xt=/^[0-9][^-–—]*[-–—].*?[0-9]/,jt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]]},Et={t:(t,e)=>at(t,e),d:(t,e)=>lt(t,e)},Ot={j:(t,e)=>ut(t,e),l:(t,e)=>ht(t,e),d:(t,e)=>ft(t,e)},kt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===vt.test(r[l].normal)&&([a,c]=r[l].normal.split(vt));let u=kt(i,r[l],a,c);!u&&Et.hasOwnProperty(c)&&(u=Et[c](r,l,e)),!u&&Ot.hasOwnProperty(a)&&(u=Ot[a](r,l)),u?(u=Pt(u,t),nt(n,[s,l],u),jt(n[s],t,l,u.length)):xt.test(r[l].normal)?(u=gt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),jt(n[s],t,l,u.length))):(u=yt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}}))},St={model:et,compute:{contractions:_t},hooks:["contractions"]},At=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t)));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===Tt.test(a)){let t=a.replace(Tt,"");if(s.hasOwnProperty(t)&&t.length>3&&$t.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null},zt={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}},Lt={addWords:function(t){const e=this.world(),{methods:n,model:r}=e;if(t)if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},Vt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Nt}},compute:zt,lib:Lt,hooks:["lexicon"]},qt=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map((t=>t.text.toLowerCase()))}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const Ft=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const Bt=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1),t;return t};var Ut=function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Bt(t.goNext,void 0),t.failTo=Bt(t.failTo,0),t.endAs=Bt(t.endAs,null),t};const Mt={buildTrie:function(t){const e=qt(t,this.world());return Ut(e)}};Mt.compile=Mt.buildTrie;var Wt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:qt(t,this.world));var r;let o=Dt(this,n,e);return o=o.settle(),o}},lib:Mt};const Rt=function(t,e){return e?(t.forEach((t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])})),t):t},It=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Rt(n,e),Object.keys(r).forEach((t=>{r[t]=Rt(r[t],e)})),{ptrs:n,byGroup:r}},Qt=t=>"[object Object]"===Object.prototype.toString.call(t),Zt=t=>t&&Qt(t)&&!0===t.isView,Ht=t=>t&&Qt(t)&&!0===t.isNet,Kt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Jt={matchOne:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t).eq(0);if(Ht(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t);if(Ht(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Kt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Zt(t))return t.fullPointer.length>0;if(Ht(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.filter((e=>e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Zt(t))return this.filter((e=>!e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Kt(t,n,this.world);let i=this._cache||[],s=this.filter(((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length}));return this._cache&&(s._cache=s.ptrs.map((t=>i[t[0]]))),s}},Xt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?1:-1))[0];e[1]>0&&o.push([e[0],0,e[1]])}));let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?-1:1))[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}})),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach(((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}})),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Yt=function(t,e){return[t[0],t[1],e[2]]},te=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},ee=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},ne={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Yt(t.match,t.after)):(i.push(t.match),i.push(t.after))})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(Yt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)}};ne.split=ne.splitAfter;var re=ne;const oe=Object.assign({},Jt,Xt,re);oe.lookBehind=oe.before,oe.lookBefore=oe.before,oe.lookAhead=oe.after,oe.lookAfter=oe.after,oe.notIf=oe.ifNo;var ie=function(t){Object.assign(t.prototype,oe)};const se=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,le=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ae=/ /g,ce=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),ue=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))};var he=function(t){let e=t.split(se),n=[];e.forEach((t=>{ce(t)?n.push(t):n=n.concat(t.split(le))})),n=ue(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ce(t)?r.push(t):r=r.concat(t.split(ae))})),r=ue(r),r};const fe=/\{([0-9]+)?(, *[0-9]*)?\}/,pe=/&&/,de=new RegExp(/^<\s*(\S+)\s*>/),me=t=>t.charAt(0).toUpperCase()+t.substring(1),ge=t=>t.charAt(t.length-1),we=t=>t.charAt(0),be=t=>t.substring(1),ye=t=>t.substring(0,t.length-1),ve=function(t){return t=be(t),t=ye(t)},xe=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ge(t)&&(n.end=!0,t=ye(t)),"^"===we(t)&&(n.start=!0,t=be(t)),("["===we(t)||"]"===ge(t))&&(n.group=null,"["===we(t)&&(n.groupStart=!0),"]"===ge(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===we(t))){const e=de.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ge(t)&&(n.greedy=!0,t=ye(t)),"*"!==t&&"*"===ge(t)&&"\\*"!==t&&(n.greedy=!0,t=ye(t)),"?"===ge(t)&&(n.optional=!0,t=ye(t)),"!"===we(t)&&(n.negative=!0,t=be(t)),"~"===we(t)&&"~"===ge(t)&&t.length>2&&(t=ve(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===we(t)&&")"===ge(t)){pe.test(t)?(n.choices=t.split(pe),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=be(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ye(n.choices[r]),n.choices=n.choices.map((t=>t.trim())),n.choices=n.choices.filter((t=>t)),n.choices=n.choices.map((t=>t.split(/ /g).map((t=>xe(t,e))))),t=""}if("/"===we(t)&&"/"===ge(t))return t=ve(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===we(t)&&"}"===ge(t)){if(t=ve(t),n.id=t,n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.num=t[2])}return n}if("<"===we(t)&&">"===ge(t))return t=ve(t),n.chunk=me(t),n.greedy=!0,n;if("%"===we(t)&&"%"===ge(t))return t=ve(t),n.switch=t,n}return!0===fe.test(t)&&(t=t.replace(fe,((t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===we(t)?(n.tag=be(t),n.tag=me(n.tag),n):"@"===we(t)?(n.method=be(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var je=xe;const Ee=/[a-z0-9][-–—][a-z]/i;var Oe=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&Ee.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter((t=>t)).reverse(),t.splice(e,1),o.forEach((n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)}))}}return t},ke=function(t,e){return t=t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform&&e.methods.two.transform.verbConjugate){let n=[];t.pos&&"Verb"!==t.pos||(n=n.concat(function(t,e){let{verbConjugate:n}=e.methods.two.transform;if(!n)return[];let r=n(t.root,e.model);return delete r.FutureTense,Object.values(r).filter((t=>t))}(t,e))),t.pos&&"Noun"!==t.pos||(n=n.concat(function(t,e){let{nounToPlural:n}=e.methods.two.transform,r=[t.root];return n?(r.push(n(t.root,e.model)),r):r}(t,e))),t.pos&&"Adjective"!==t.pos||(n=n.concat(function(t,e){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:o}=e.methods.two.transform,i=[t.root];return n&&r&&o?(i.push(n(t.root,e.model)),i.push(r(t.root,e.model)),i.push(o(t.root,e.model)),i):i}(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t})),t},Pe=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach((e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)})),t)))}(t=t.map((t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every((t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method}))&&(t.fastOr=new Set,t.choices.forEach((e=>{t.fastOr.add(e[0].word)})),delete t.choices)}return t}))),t},_e=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=he(t);return r=r.map((t=>je(t,e))),r=Oe(r,n),r=ke(r,n),r=Pe(r),r};const Se=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var Ae=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),Ve=(t,e)=>-1!==t.pre.indexOf(e),qe={hasQuote:t=>$e.test(t.pre)||Ce.test(t.post),hasComma:t=>Le(t,","),hasPeriod:t=>!0===Le(t,".")&&!1===Le(t,"..."),hasExclamation:t=>Le(t,"!"),hasQuestionMark:t=>Le(t,"?")||Le(t,"¿"),hasEllipses:t=>Le(t,"..")||Le(t,"…")||Ve(t,"..")||Ve(t,"…"),hasSemicolon:t=>Le(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>ze.test(t.post)||ze.test(t.pre),hasDash:t=>Ne.test(t.post)||Ne.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};qe.hasQuotation=qe.hasQuote;var Fe=qe;let Ge=function(){};Ge=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(Te(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some((t=>t===e.word)))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof Fe[e.method]&&!0===Fe[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.pos&&!t.tags.has(e.pos)?null:e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Ge(t,e,n,r))):e.choices.some((e=>Ge(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};var De=Ge;const Be=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max?(t.t=t.t+n.max,!0):(!0===t.hasGroup&&(Ue(t,t.t).length=r-t.t),t.t=r,!0)};const We=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=De(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every(((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&De(t.terms[r],e,r,t.phrase_length)}));return!0===r&&n.length>e&&(e=n.length),r}))&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup&&(Ue(t,t.t).length+=r),!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null},Qe=function(t,e,n){let r=0;for(let o=t.t;or||(t.t+=r,0))},Ze=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,De(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];n&&(De(t.terms[t.t],n,t.start_i+t.t,t.phrase_length)?t.r+=1:n.optional&&e[t.r+2]&&De(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2))}return n.greedy?Qe(t,r,e[t.r+1]):(t.t+=1,!0)},He=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=De(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&De(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}},Ke=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null},Je=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}},Xe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;return!!(n.optional&&e[t.r+1]&&n.negative)||(n.optional&&e[t.r+1]&&He(t),r.implicit&&t.terms[t.t+1]&&Je(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ke(t)?(!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Ue(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0):null)},Ye=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional)))break;return null}if(!0!==t.anything||!0!==t.greedy){if(void 0===t.choices||"or"!==t.operator){if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything){if(!0!==Be(t,o)){if(t.negative){if(!Ze(o))return null}else if(!0!==De(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else if(!Xe(o))return null}else if(!Xe(o))return null}else{if(t.negative&&t.anything)return null;if(!Xe(o))return null}else if(!Ie(o))return null}else if(!Re(o))return null}else if(!Me(o))return null}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach((t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]})),{pointer:i,groups:s}},tn=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach((t=>{t.groups[e]&&n.push(t.groups[e])})):t.forEach((t=>{n.push(t.pointer),Object.keys(t.groups).forEach((e=>{r[e]=r[e]||[],r[e].push(t.groups[e])}))}))),{ptrs:n,byGroup:r}};const en=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach((n=>{t.groups[n][0]=e})),t},nn=function(t,e,n){let r=Ye(t,e,0,t.length);return r?(r=en(r,n),r):null};var rn=function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter((t=>!0!==t.optional&&!0!==t.negative)).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=nn(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter((e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]}))),s=tn(s,o),s.ptrs.forEach((e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id})),s},on={api:ie,methods:{one:{termMethods:Fe,parseMatch:_e,match:rn}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const sn=/^\../,ln=/^#./,an=function(t,e){let n={},r={};return Object.keys(e).forEach((o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),sn.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach((t=>{if(t.every((t=>t.implicit)))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)}))})),{starts:n,ends:r}};var cn={html:function(t){let{starts:e,ends:n}=an(this,t),r="";return this.docs.forEach((t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(hn,""),pn.test(o)&&(o=" "),o=o.replace(fn,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(hn,""),o="-"===o?" ":o.replace(un,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&dn.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},gn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};gn.clean=gn.normal,gn.reduced=gn.root;var wn=gn;let bn=[],yn=0;for(;yn<64;)bn[yn]=0|4294967296*Math.sin(++yn%Math.PI);function vn(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(yn=s=0;yn>4]+bn[s]+~~i[yn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const xn={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const En=function(t,e){return Object.assign({},t,e)},On={text:t=>mn(t,{keepPunct:!0},!1),normal:t=>mn(t,En(wn.normal,{keepPunct:!0}),!1),implicit:t=>mn(t,En(wn.implicit,{keepPunct:!0}),!1),machine:t=>mn(t,jn,!1),root:t=>mn(t,En(jn,{form:"root"}),!1),hash:t=>vn(mn(t,{keepPunct:!0},!1)),offset:t=>{let e=On.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map((t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e})),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some((t=>!0===t.dirty))};On.sentences=On.sentence,On.clean=On.normal,On.reduced=On.root;const kn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},xn,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&On[i]&&(o[i]=On[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};kn.data=kn.json;var Pn=kn,_n=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach((t=>{console.groupCollapsed(t.text());let e=t.docs[0].map((t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}}));console.table(e,["text","tags"]),console.groupEnd()}))};const Sn="";var An={green:t=>""+t+Sn,red:t=>""+t+Sn,blue:t=>""+t+Sn,magenta:t=>""+t+Sn,cyan:t=>""+t+Sn,yellow:t=>""+t+Sn,black:t=>""+t+Sn,dim:t=>""+t+Sn,i:t=>""+t+Sn},Tn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(An.blue("\n ──────")),e.forEach((t=>{console.log(An.blue("\n ┌─────────")),t.forEach((t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=An.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=An.blue(" │ ")+An.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map((t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return An[n](t)}))),t.join(", ")}(e,n);console.log(i)}))}))},$n=function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(An.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(An.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(An.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(An.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")}))},Cn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),Object.keys(e).forEach((n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach(((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${An.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)}))},zn=function(t={}){let e=this;if("string"==typeof t){let e={};e[t]=!0,t=e}return"undefined"!=typeof window&&window.document?(_n(e),e):(!1!==t.tags&&(Tn(e),console.log("\n")),!0===t.chunks&&($n(e),console.log("\n")),!0===t.highlight&&(Cn(e),console.log("\n")),e)};const Nn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var Ln=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach((r=>{t.match(r).fullPointer.forEach((t=>{n[t[3]]={fn:e[r],end:t[2]}}))})),n}(t,e),r="";return t.docs.forEach(((e,o)=>{for(let i=0;it.reduce(((t,e)=>t+e.pre+e.text+e.post),"").trim()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.sort(((t,e)=>t.count>e.count?-1:0))}(this.json({normal:!0}).map((t=>t.normal)));if("terms"===t){let t=[];return this.docs.forEach((e=>{let n=e.terms.map((t=>t.text));n=n.filter((t=>t)),t=t.concat(n)})),t}return"tags"===t?this.docs.map((t=>t.reduce(((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t)),{}))):"debug"===t?this.debug():this.text()}};var qn=Vn,Fn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&wn.hasOwnProperty(t)?e=Object.assign({},wn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},Mn=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e};var Wn=function(t,e){let n=Mn(e),r=[];return t.forEach((t=>{let[e]=t,o=n[e]||[];if(o=o.filter((e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e))),0===o.length)return void r.push({passthrough:t});o=o.sort(((t,e)=>t[1]-e[1]));let i=t;o.forEach(((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)}))})),r},Rn=function(t,e){let n=[];return t.forEach(((r,o)=>{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<20;r+=1){if(e[n-r]){let o=e[n-r].findIndex((e=>e.id===t));if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex((e=>e.id===t));if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex((t=>t.id===o));return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))})),n=n.filter((t=>t.length>0)),n},In={one:{termList:function(t){let e=[];for(let n=0;n{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter((e=>Un(t,e)));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach((t=>{t[1]n&&(n=t[2])})),[t[0][0],e,n]}(n);o.push(i)})),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)})),n},Hn=function(t,e){let n=Mn(e),r=[];return t.forEach((t=>{let e=n[t[0]]||[];e=e.filter((e=>Un(t,e))),0!==e.length&&e.forEach((e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},Jn=function(t,e){return t.map((t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t}))},Xn={union:function(t){t=Kn(t,this);let e=Qn(this.fullPointer,t.fullPointer);return e=Jn(e,this.document),this.toView(e)}};Xn.and=Xn.union,Xn.intersection=function(t){t=Kn(t,this);let e=Hn(this.fullPointer,t.fullPointer);return e=Jn(e,this.document),this.toView(e)},Xn.not=function(t){t=Kn(t,this);let e=Zn(this.fullPointer,t.fullPointer);return e=Jn(e,this.document),this.toView(e)},Xn.difference=Xn.not,Xn.complement=function(){let t=this.all(),e=Zn(t.fullPointer,this.fullPointer);return e=Jn(e,this.document),this.toView(e)},Xn.settle=function(){let t=this.fullPointer;return t.forEach((e=>{t=Qn(t,[e])})),t=Jn(t,this.document),this.update(t)};var Yn=function(t){Object.assign(t.prototype,Xn)},tr={methods:In,api:Yn},er=function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t}));let s=i.map((t=>t.pointer));return i=i.map((t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t))),{view:this.update(s),found:i}}};const nr=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var rr=function(t,e){const n=e.methods.one.parseMatch;return t.forEach((t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach((t=>{e.push(nr(t)),"and"===t.operator&&t.choices&&t.choices.forEach((t=>{t.forEach((t=>{e.push(nr(t))}))}))})),e.filter((t=>t))}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach((t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach((t=>{e.push(t)})),t.choices&&t.choices.forEach((t=>{t.forEach((t=>{let n=nr(t);n&&e.push(n)}))})),n+=1)})),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter((t=>!t.optional)).length})),t},or=function(t,e){t=rr(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=n[e]||[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=n[e]||[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>!e[t.match]&&(e[t.match]=!0,!0)))}));let r=t.filter((t=>0===t.needs.length&&0===t.wants.length));return{hooks:n,always:r}},ir=function(t,e){return t.map(((n,r)=>{let o=[];Object.keys(e).forEach((n=>{t[r].has(n)&&(o=o.concat(e[n]))}));let i={};return o=o.filter((t=>!i[t.match]&&(i[t.match]=!0,!0))),o}))},sr=function(t,e){return t.map(((t,n)=>{let r=e[n];return t=(t=(t=t.filter((t=>t.needs.every((t=>r.has(t)))))).filter((t=>void 0===t.ifNo||!0!==t.ifNo.some((t=>e[n].has(t)))))).filter((t=>0===t.wants.length||t.wants.filter((t=>r.has(t))).length>=t.minWant))}))},lr=function(t,e,n,r){let o=[];for(let i=0;i0&&(a.ptrs.forEach((t=>{t[0]=i;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),o.push(e)})),!0===r.matchOne))return[o[0]]}return o},ar=function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=ir(o,e.hooks);return i=sr(i,o),e.always.length>0&&(i=i.map((t=>t.concat(e.always)))),i=function(t,e){return t.map(((t,n)=>{let r=e[n].length;return t=t.filter((t=>r>=t.minWords)),t}))}(i,t),lr(i,t,n,r)},cr=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===cr(c,t.tag,r))return;if("-"===c[c.length-1].post)return}if(void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),"Noun"===t.tag)){let e=c[c.length-1];a(e.text)?s([e],"Plural",n,t.safe,"quick-plural"):s([e],"Singular",n,t.safe,"quick-singular")}void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach((e=>e.chunk=t.chunk))})))},hr={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:er,methods:{one:{buildNet:or,bulkMatch:ar,bulkTagger:ur}}};const fr=/ /,pr=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},dr=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map((t=>t.text||"["+t.implicit+"]")).join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),1!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if("string"==typeof e)if(e=e.trim(),fr.test(e))!function(t,e,n,r){let o=e.split(fr);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),dr(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nmr(t,e,n,r)))};var gr=mr,wr=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach((t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map((t=>t.trim())).filter((t=>t)),e=e.map((t=>br({id:t}))),e}return[br({id:t})]}(t))})),n=n.filter((t=>t));let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach((n=>{e&&e(t,n),r.push(n)}))}return n},jr=t=>"[object Array]"===Object.prototype.toString.call(t),Er=t=>(t=t||"").trim(),Or=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||yr.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:vr(t)})}));let r=function(t){let e={children:[]};return t.forEach(((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t}));let n=br({});return t.forEach((t=>{if((t=br(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)})),n}(t):(xr(e=t).forEach(br),e);var e},kr=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return xr(t).forEach(((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"})),r},Pr=function(t){let e=xr(t);e.forEach((t=>{delete(t=Object.assign({},t)).children}));let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},_r={text:kr,txt:kr,array:Pr,flat:Pr},Sr=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(kr(t,!0)),null):_r.hasOwnProperty(e)?_r[e](t):t},Ar=t=>{xr(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},Tr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=Er(t),!Tr.test(t)){let e=this.json.children.find((e=>e.id===t));return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]));if(!r)return null;t=r}return t})(this.json,t)||br({});return new g(e)}add(t,e={}){if(jr(t))return t.forEach((t=>this.add(Er(t),e))),this;t=Er(t);let n=br({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Er(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return xr(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=xr(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))})),n={};e.forEach((t=>{t.id&&(n[t.id]=t)})),e.forEach((t=>{t._cache.parents.forEach((e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)}))})),t._cache.children=Object.keys(n)})(this.json),this}list(){return xr(this.json)}fillDown(){var t;return t=this.json,xr(t,((t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach((n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else jr(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){Ar(this.json);let t=xr(this.json),e=t.length>1?1:0;return t.forEach((t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)})),e}out(t){return Ar(this.json),Sr(this.json,t)}debug(){return Ar(this.json),Sr(this.json,"debug"),this}}const $r=function(t){let e=Or(t);return new g(e)};$r.prototype.plugin=function(t){t(this)};var Cr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const zr=function(t){if(Cr.hasOwnProperty(t.id))return Cr[t.id];if(Cr.hasOwnProperty(t.is))return Cr[t.is];let e=t._cache.parents.find((t=>Cr[t]));return Cr[e]};var Nr=function(t){const e={};return t.forEach((t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:zr(t)}})),Object.keys(e).forEach((t=>{let n=new Set(e[t].not);e[t].not.forEach((t=>{e[t]&&e[t].children.forEach((t=>n.add(t)))})),e[t].not=Array.from(n)})),e};const Lr=function(t){return t?"string"==typeof t?[t]:t:[]};var Vr=function(t,e){return t=function(t,e){return Object.keys(t).forEach((n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))})),t}(t,e),Object.keys(t).forEach((e=>{t[e].children=Lr(t[e].children),t[e].not=Lr(t[e].not)})),Object.keys(t).forEach((e=>{(t[e].not||[]).forEach((n=>{t[n]&&t[n].not&&t[n].not.push(e)}))})),t},qr=function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach((e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0})),t}(t)),t=Vr(t,e);const n=function(t){const e=Object.keys(t).map((e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}}));return $r(e).cache().fillDown().out("array")}(Object.assign({},e,t));return Nr(n)},Fr={one:{setTag:gr,unTag:wr,addTags:qr}};const Gr=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Dr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),Gr(t)?t.forEach((t=>o.one.setTag(r,t,s,n,e))):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return Gr(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach(((t,e)=>{t.forEach(((t,o)=>{n.find((e=>t.tags.has(e)))&&r.push([e,o,o+1])}))}));let o=this.update(r);return this.difference(o)}};var Br=Dr,Ur=function(t){Object.assign(t.prototype,Br)},Mr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const Wr=new Set(["Auxiliary","Possessive"]);var Rr=function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach((t=>{t.forEach((t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t=t.sort(((t,n)=>{if(Wr.has(t)||!e.hasOwnProperty(n))return 1;if(Wr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))},Ir={model:{one:{tagSet:{}}},compute:{tagRank:Rr},methods:Fr,api:Ur,lib:Mr};const Qr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Zr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Hr=/((?:\r?\n|\r)+)/;var Kr=function(t){let e=[],n=t.split(Hr);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const eo={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},no=RegExp("("+Object.keys(eo).join("|")+")","g"),ro=RegExp("("+Object.values(eo).join("|")+")","g"),oo=function(t){if(!t)return!1;let e=t.match(ro);return null!==e&&1===e.length};var io=function(t){let e=[];for(let n=0;n(t[e]=!0,t)),{});var jo=function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(vo);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=wo(n),n=mo(n),n=n.filter((t=>t)),n};let Eo=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Oo=new RegExp(`^[${["%","_"].join("")}]+`,"");const ko=/[\p{Punctuation}\s]+$/u,Po=/^[\p{Punctuation}\s]+/u,_o=/['’]/,So=/^[a-z]\.([a-z]\.)+/i,Ao=/^'[0-9]{2}/;var To=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Po,(e=>{let r=e.match(Eo);return r?(n=e.replace(Eo,""),r):"'"===n&&Ao.test(t)?(n="",e):(n=e,"")}))).replace(ko,(o=>{let i=o.match(Oo);return i?(r=o.replace(Oo,""),i):_o.test(o)&&/[sn]['’]$/.test(e)&&!1===_o.test(n)?(r=r.replace(_o,""),"'"):!0===So.test(t)?(r=o.replace(/^\./,""),"."):(r=o,"")})))&&(e=e.replace(/ *$/,(t=>(r=t||"",""))),t=e,n=""),{str:t,pre:n,post:r}},$o=function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach(((t,e)=>{n[t]&&(r[e]=n[t])})),r.join("")},Co=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const zo=/([A-Z]\.)+[A-Z]?,?$/,No=/^[A-Z]\.,?$/,Lo=/[A-Z]{2,}('s|,)?$/,Vo=/([a-z]\.)+[a-z]\.?$/;var qo=function(t){return function(t){return!0===zo.test(t)||!0===Vo.test(t)||!0===No.test(t)||!0===Lo.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Fo=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Co(r),r=n(r,e),r=qo(r),t.normal=r},Go=function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map(s),n.forEach((t=>{Fo(t,e)})),n})),t};const Do=/[ .][A-Z]\.? *$/i,Bo=/(?:\u2026|\.{2,}) *$/,Uo=/\p{L}/u,Mo=/^[A-Z]\. $/;var Wo={one:{killUnicode:$o,tokenize:{splitSentences:ho,isSentence:function(t,e){if(!1===Uo.test(t))return!1;if(!0===Do.test(t))return!1;if(3===t.length&&Mo.test(t))return!1;if(!0===Bo.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)},splitTerms:jo,splitWhitespace:t=>{let{str:e,pre:n,post:r}=To(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:Go}}},Ro={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Io={},Qo={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((t=>{t[0].forEach((e=>{Io[e]=!0,Qo[e]="Abbreviation",void 0!==t[1]&&(Qo[e]=[Qo[e],t[1]])}))}));var Zo=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((t,e)=>(t[e]=!0,t)),{});let Ho={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Ko={};Object.keys(Ho).forEach((function(t){Ho[t].split("").forEach((function(e){Ko[e]=t}))}));const Jo=/\//,Xo=/[a-z]\.[a-z]/i,Yo=/[0-9]/;var ti=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),Jo.test(n)&&!Xo.test(n)&&!Yo.test(n)){let e=n.split(Jo);e.length<=2&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t};const ei=/^\p{Letter}+-\p{Letter}+$/u;var ni=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),ei.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},ri=function(t){let e=t.docs,n={};for(let t=0;tli(t,ti),machine:t=>li(t,ni),normal:t=>li(t,Fo),freq:ri,offset:oi,index:ii,wordCount:si},methods:Wo,model:{one:{aliases:Ro,abbreviations:Io,prefixes:Zo,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Qo,unicode:Ko}},hooks:["alias","machine","index","id"]},ci={typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}};const ui=function(){const t=this.docs;if(0===t.length)return this;let e=t[t.length-1]||[],n=e[e.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var hi=function(t){t.prototype.autoFill=ui},fi=function(t,e,n){let r={},o=[],i=n.prefixes||{};return t.forEach((t=>{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]})),r};const pi={safe:!0,min:3};var di={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},pi,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=fi(t,e,this.world());return Object.keys(o).forEach((t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]})),this}},mi={model:{one:{typeahead:{}}},api:hi,lib:di,compute:ci,hooks:["typeahead"]};return w.extend(tt),w.extend(Bn),w.extend(on),w.extend(tr),w.extend(Ir),w.plugin(St),w.extend(ai),w.plugin(x),w.extend(Wt),w.extend(mi),w.extend(Vt),w.extend(hr),w},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).nlp=e(); +var t,e;t=this,e=function(){var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach((r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)})):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n=e,r={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2]))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var i=o;const s=Object.assign({},i,n,r);s.get=s.eq;var l=s;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach((t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})})),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map((t=>t.map((t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)))));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,l);var a=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function u(t,e){if(c(e))for(const n in e)c(e[n])?(t[n]||Object.assign(t,{[n]:{}}),u(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}var h=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&u(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.exceptions[t]=e[t].pastTense),n.fromPast&&(n.fromPast.exceptions[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.exceptions[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.exceptions[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.exceptions[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.exceptions[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.exceptions[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.exceptions[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[e[t].superlative]=t))}))}(i,t.irregulars),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach((e=>r[e]=t.lib[e])),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const f=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var p=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t)return new e(r.one.tokenize.fromString(t,n));if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(f(t)){if(f(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=function(t){return t.map((t=>t.terms.map((t=>(f(t.tags)&&(t.tags=new Set(t.tags)),t)))))}(t);return new e(n)}return o};let d=Object.assign({},t);const m=function(t,e){e&&m.addWords(e);let n=p(t,a,d);return t&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(t,e){const{compute:n}=this._world;e&&m.addWords(e);let r=p(t,a,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(t){return h(t,this._world,a,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},m.version="14.5.2";var w=m,y=function(t){let e=t.map((t=>{let e=new Set;return t.forEach((t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach((t=>e.add(t)));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),E=(t,e,n)=>{if(n.forEach((t=>t.dirty=!0)),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},O=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},k=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},P=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?O(n):(O(n),O([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!j(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(t=>t.toUpperCase()));let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||j(o.text)&&o.text.length>1&&(o.text=o.text.replace(/^\p{Lu}/u,(t=>t.toLowerCase())))}(t,i,n),E(t,i,n)};let _=0;const S=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var A=function(t){let[e,n]=t.index||[0,0];_+=1,_=_>46655?0:_,e=e>46655?0:e,n=n>1294?0:n;let r=S(_.toString(36));r+=S(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const $=function(t){t.has("@hasContraction")&&"function"==typeof t.contractions&&t.grow("@hasContraction").contractions().expand()},T=t=>"[object Array]"===Object.prototype.toString.call(t),C=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]||[]:T(t)?T(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=A(t),t)))}(f),n?($(e.update([c]).firstTerm()),P(h,c,f,r)):($(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)})),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(L,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let o=this.update(n);n=n.map((t=>t.slice(0,3)));let i=(o.docs[0]||[]).map((t=>Array.from(t.tags)));r.insertAfter(t),o.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach(((t,e)=>{t.tagSafe(i[e])})),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),s},replace:function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this}};var q=V,F=function(t,e){e.forEach((e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))}));for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const G={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=F(this.document,i);return o=function(t,e){return t=t.map((t=>{let[n]=t;return e[n]?(e[n].forEach((e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)})),t):t})),t.forEach(((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0))).map((t=>(t[3]=null,t[4]=null,t)))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};G.delete=G.remove;var D=G;const B={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t})),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t})),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")}))})),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach((e=>{e.forEach((e=>{t.test(e.post)&&(e.post=" ")}))})),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this}};B.deHyphenate=B.dehyphenate,B.toQuotation=B.toQuotations;var U=B,M={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach((t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1})),t.sort(((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0})),t}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),R=new Set(["freq","frequency","topk","repeats"]),I=new Set(["alpha","alphabetical"]);var Q={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return W.has(t)&&(t="sequential"),I.has(t)&&(t="alpha"),R.has(t)?(o=M.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof M[t]?(o=o.sort(M[t]),this.update(o.map((t=>t.pointer)))):this}};const Z=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var H={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return E(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach((e=>{e[0]+=t.document.length})),t.document=Z(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=Z(this.document,t);return this.document=e,this.all()}var o;return this}},K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map((t=>t.slice(0,3))),this.ptrs=t),this}};const J=Object.assign({},{toLowerCase:function(){return this.termList().forEach((t=>{t.text=t.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((t=>{t.text=t.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))),n!==t.length-1&&(e.post="")}))})),this}},N,q,D,U,Q,H,K);var X=function(t){Object.assign(t.prototype,J)};const Y={id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t))),n[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const rt=/'/,ot=new Set(["what","how","when","where","why"]),it=new Set(["be","go","start","think","need"]),st=new Set(["been","gone"]);var lt=function(t,e){let n=t[e].normal.split(rt)[0];if(ot.has(n))return[n,"did"];if(t[e+1]){if(st.has(t[e+1].normal))return[n,"had"];if(it.has(t[e+1].normal))return[n,"would"]}return null},at=function(t,e){return"ain't"===t[e].normal||"aint"===t[e].normal?null:[t[e].normal.replace(/n't/,""),"not"]};const ct=/'/;var ut=(t,e)=>["je",t[e].normal.split(ct)[1]],ht=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ft=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,dt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,gt=/^[0-9]{3}-[0-9]{4}$/;var mt=function(t,e){let n=t[e],r=n.text.match(pt);return null!==r?!0===n.tags.has("PhoneNumber")||gt.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(dt),null!==r?[r[1],"to",r[4]]:null)};const wt=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,yt=new Set(["st","nd","rd","th","am","pm","max"]);var bt=function(t,e){let n=t[e].text.match(wt);if(null!==n){let t=n[2].toLowerCase().trim();return yt.has(t)?null:[n[1],t]}return null};const vt=/'/,xt=/^[0-9][^-–—]*[-–—].*?[0-9]/,jt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]]},Et={t:(t,e)=>at(t,e),d:(t,e)=>lt(t,e)},Ot={j:(t,e)=>ut(t,e),l:(t,e)=>ht(t,e),d:(t,e)=>ft(t,e)},kt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===vt.test(r[l].normal)&&([a,c]=r[l].normal.split(vt));let u=kt(i,r[l],a,c);!u&&Et.hasOwnProperty(c)&&(u=Et[c](r,l,e)),!u&&Ot.hasOwnProperty(a)&&(u=Ot[a](r,l)),u?(u=Pt(u,t),nt(n,[s,l],u),jt(n[s],t,l,u.length)):xt.test(r[l].normal)?(u=mt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),jt(n[s],t,l,u.length))):(u=bt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}}))},St={model:et,compute:{contractions:_t},hooks:["contractions"]},At=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t)));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===$t.test(a)){let t=a.replace($t,"");if(s.hasOwnProperty(t)&&t.length>3&&Tt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null},zt={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}},Lt={addWords:function(t){const e=this.world(),{methods:n,model:r}=e;if(t)if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},Vt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Nt}},compute:zt,lib:Lt,hooks:["lexicon"]},qt=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map((t=>t.text.toLowerCase()))}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const Ft=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const Bt=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1),t;return t};var Ut=function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Bt(t.goNext,void 0),t.failTo=Bt(t.failTo,0),t.endAs=Bt(t.endAs,null),t};const Mt={buildTrie:function(t){const e=qt(t,this.world());return Ut(e)}};Mt.compile=Mt.buildTrie;var Wt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:qt(t,this.world));var r;let o=Dt(this,n,e);return o=o.settle(),o}},lib:Mt};const Rt=function(t,e){return e?(t.forEach((t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])})),t):t},It=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Rt(n,e),Object.keys(r).forEach((t=>{r[t]=Rt(r[t],e)})),{ptrs:n,byGroup:r}},Qt=t=>"[object Object]"===Object.prototype.toString.call(t),Zt=t=>t&&Qt(t)&&!0===t.isView,Ht=t=>t&&Qt(t)&&!0===t.isNet,Kt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Jt={matchOne:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t).eq(0);if(Ht(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t);if(Ht(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Kt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Zt(t))return t.fullPointer.length>0;if(Ht(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.filter((e=>e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Zt(t))return this.filter((e=>!e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Kt(t,n,this.world);let i=this._cache||[],s=this.filter(((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length}));return this._cache&&(s._cache=s.ptrs.map((t=>i[t[0]]))),s}},Xt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?1:-1))[0];e[1]>0&&o.push([e[0],0,e[1]])}));let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?-1:1))[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}})),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach(((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}})),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Yt=function(t,e){return[t[0],t[1],e[2]]},te=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},ee=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},ne={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Yt(t.match,t.after)):(i.push(t.match),i.push(t.after))})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(Yt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)}};ne.split=ne.splitAfter;var re=ne;const oe=Object.assign({},Jt,Xt,re);oe.lookBehind=oe.before,oe.lookBefore=oe.before,oe.lookAhead=oe.after,oe.lookAfter=oe.after,oe.notIf=oe.ifNo;var ie=function(t){Object.assign(t.prototype,oe)};const se=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,le=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ae=/ /g,ce=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),ue=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))};var he=function(t){let e=t.split(se),n=[];e.forEach((t=>{ce(t)?n.push(t):n=n.concat(t.split(le))})),n=ue(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ce(t)?r.push(t):r=r.concat(t.split(ae))})),r=ue(r),r};const fe=/\{([0-9]+)?(, *[0-9]*)?\}/,pe=/&&/,de=new RegExp(/^<\s*(\S+)\s*>/),ge=t=>t.charAt(0).toUpperCase()+t.substring(1),me=t=>t.charAt(t.length-1),we=t=>t.charAt(0),ye=t=>t.substring(1),be=t=>t.substring(0,t.length-1),ve=function(t){return t=ye(t),t=be(t)},xe=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===me(t)&&(n.end=!0,t=be(t)),"^"===we(t)&&(n.start=!0,t=ye(t)),("["===we(t)||"]"===me(t))&&(n.group=null,"["===we(t)&&(n.groupStart=!0),"]"===me(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===we(t))){const e=de.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===me(t)&&(n.greedy=!0,t=be(t)),"*"!==t&&"*"===me(t)&&"\\*"!==t&&(n.greedy=!0,t=be(t)),"?"===me(t)&&(n.optional=!0,t=be(t)),"!"===we(t)&&(n.negative=!0,t=ye(t)),"~"===we(t)&&"~"===me(t)&&t.length>2&&(t=ve(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===we(t)&&")"===me(t)){pe.test(t)?(n.choices=t.split(pe),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ye(n.choices[0]);let r=n.choices.length-1;n.choices[r]=be(n.choices[r]),n.choices=n.choices.map((t=>t.trim())),n.choices=n.choices.filter((t=>t)),n.choices=n.choices.map((t=>t.split(/ /g).map((t=>xe(t,e))))),t=""}if("/"===we(t)&&"/"===me(t))return t=ve(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===we(t)&&"}"===me(t)){if(t=ve(t),n.id=t,n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.num=t[2])}return n}if("<"===we(t)&&">"===me(t))return t=ve(t),n.chunk=ge(t),n.greedy=!0,n;if("%"===we(t)&&"%"===me(t))return t=ve(t),n.switch=t,n}return!0===fe.test(t)&&(t=t.replace(fe,((t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===we(t)?(n.tag=ye(t),n.tag=ge(n.tag),n):"@"===we(t)?(n.method=ye(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var je=xe;const Ee=/[a-z0-9][-–—][a-z]/i;var Oe=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&Ee.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter((t=>t)).reverse(),t.splice(e,1),o.forEach((n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)}))}}return t};const ke=function(t,e){let{all:n}=e.methods.two.transform.verb||{},r=t.root;return n?n(r,e.model):[]},Pe=function(t,e){let{all:n}=e.methods.two.transform.noun||{};return n?n(t.root,e.model):[t.root]},_e=function(t,e){let{all:n}=e.methods.two.transform.adjective||{};return n?n(t.root,e.model):[t.root]};var Se=function(t,e){return t=t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform){let n=[];t.pos?"Verb"===t.pos?n=n.concat(ke(t,e)):"Noun"===t.pos?n=n.concat(Pe(t,e)):"Adjective"===t.pos&&(n=n.concat(_e(t,e))):(n=n.concat(ke(t,e)),n=n.concat(Pe(t,e)),n=n.concat(_e(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t}))},Ae=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach((e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)})),t)))}(t=t.map((t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every((t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method}))&&(t.fastOr=new Set,t.choices.forEach((e=>{t.fastOr.add(e[0].word)})),delete t.choices)}return t}))),t},$e=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=he(t);return r=r.map((t=>je(t,e))),r=Oe(r,n),r=Se(r,n),r=Ae(r),r};const Te=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var Ce=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),Ge=(t,e)=>-1!==t.pre.indexOf(e),De={hasQuote:t=>Ne.test(t.pre)||Le.test(t.post),hasComma:t=>Fe(t,","),hasPeriod:t=>!0===Fe(t,".")&&!1===Fe(t,"..."),hasExclamation:t=>Fe(t,"!"),hasQuestionMark:t=>Fe(t,"?")||Fe(t,"¿"),hasEllipses:t=>Fe(t,"..")||Fe(t,"…")||Ge(t,"..")||Ge(t,"…"),hasSemicolon:t=>Fe(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>Ve.test(t.post)||Ve.test(t.pre),hasDash:t=>qe.test(t.post)||qe.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};De.hasQuotation=De.hasQuote;var Be=De;let Ue=function(){};Ue=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(ze(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some((t=>t===e.word)))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof Be[e.method]&&!0===Be[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.pos&&!t.tags.has(e.pos)?null:e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Ue(t,e,n,r))):e.choices.some((e=>Ue(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};var Me=Ue;const We=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max?(t.t=t.t+n.max,!0):(!0===t.hasGroup&&(Re(t,t.t).length=r-t.t),t.t=r,!0)};const Qe=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Me(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every(((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Me(t.terms[r],e,r,t.phrase_length)}));return!0===r&&n.length>e&&(e=n.length),r}))&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup&&(Re(t,t.t).length+=r),!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null},Ke=function(t,e,n){let r=0;for(let o=t.t;or||(t.t+=r,0))},Je=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,Me(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];n&&(Me(t.terms[t.t],n,t.start_i+t.t,t.phrase_length)?t.r+=1:n.optional&&e[t.r+2]&&Me(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2))}return n.greedy?Ke(t,r,e[t.r+1]):(t.t+=1,!0)},Xe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Me(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Me(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}},Ye=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null},tn=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}},en=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;return!!(n.optional&&e[t.r+1]&&n.negative)||(n.optional&&e[t.r+1]&&Xe(t),r.implicit&&t.terms[t.t+1]&&tn(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ye(t)?(!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Re(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0):null)},nn=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional)))break;return null}if(!0!==t.anything||!0!==t.greedy){if(void 0===t.choices||"or"!==t.operator){if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything){if(!0!==We(t,o)){if(t.negative){if(!Je(o))return null}else if(!0!==Me(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else if(!en(o))return null}else if(!en(o))return null}else{if(t.negative&&t.anything)return null;if(!en(o))return null}else if(!He(o))return null}else if(!Ze(o))return null}else if(!Ie(o))return null}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach((t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]})),{pointer:i,groups:s}},rn=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach((t=>{t.groups[e]&&n.push(t.groups[e])})):t.forEach((t=>{n.push(t.pointer),Object.keys(t.groups).forEach((e=>{r[e]=r[e]||[],r[e].push(t.groups[e])}))}))),{ptrs:n,byGroup:r}};const on=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach((n=>{t.groups[n][0]=e})),t},sn=function(t,e,n){let r=nn(t,e,0,t.length);return r?(r=on(r,n),r):null};var ln=function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter((t=>!0!==t.optional&&!0!==t.negative)).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=sn(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter((e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]}))),s=rn(s,o),s.ptrs.forEach((e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id})),s},an={api:ie,methods:{one:{termMethods:Be,parseMatch:$e,match:ln}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const cn=/^\../,un=/^#./,hn=function(t,e){let n={},r={};return Object.keys(e).forEach((o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),cn.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach((t=>{if(t.every((t=>t.implicit)))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)}))})),{starts:n,ends:r}};var fn={html:function(t){let{starts:e,ends:n}=hn(this,t),r="";return this.docs.forEach((t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(dn,""),mn.test(o)&&(o=" "),o=o.replace(gn,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(dn,""),o="-"===o?" ":o.replace(pn,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&wn.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},bn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};bn.clean=bn.normal,bn.reduced=bn.root;var vn=bn;let xn=[],jn=0;for(;jn<64;)xn[jn]=0|4294967296*Math.sin(++jn%Math.PI);function En(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(jn=s=0;jn>4]+xn[s]+~~i[jn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const On={text:!0,terms:!0};let kn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Pn=function(t,e){return Object.assign({},t,e)},_n={text:t=>yn(t,{keepPunct:!0},!1),normal:t=>yn(t,Pn(vn.normal,{keepPunct:!0}),!1),implicit:t=>yn(t,Pn(vn.implicit,{keepPunct:!0}),!1),machine:t=>yn(t,kn,!1),root:t=>yn(t,Pn(kn,{form:"root"}),!1),hash:t=>En(yn(t,{keepPunct:!0},!1)),offset:t=>{let e=_n.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map((t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e})),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some((t=>!0===t.dirty))};_n.sentences=_n.sentence,_n.clean=_n.normal,_n.reduced=_n.root;const Sn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},On,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&_n[i]&&(o[i]=_n[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};Sn.data=Sn.json;var An=Sn,$n=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach((t=>{console.groupCollapsed(t.text());let e=t.docs[0].map((t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}}));console.table(e,["text","tags"]),console.groupEnd()}))};const Tn="";var Cn={green:t=>""+t+Tn,red:t=>""+t+Tn,blue:t=>""+t+Tn,magenta:t=>""+t+Tn,cyan:t=>""+t+Tn,yellow:t=>""+t+Tn,black:t=>""+t+Tn,dim:t=>""+t+Tn,i:t=>""+t+Tn},zn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(Cn.blue("\n ──────")),e.forEach((t=>{console.log(Cn.blue("\n ┌─────────")),t.forEach((t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=Cn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=Cn.blue(" │ ")+Cn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map((t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return Cn[n](t)}))),t.join(", ")}(e,n);console.log(i)}))}))},Nn=function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(Cn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(Cn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(Cn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(Cn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")}))},Ln=function(t){if(!t.found)return;let e={};t.fullPointer.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),Object.keys(e).forEach((n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach(((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${Cn.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)}))},Vn=function(t={}){let e=this;if("string"==typeof t){let e={};e[t]=!0,t=e}return"undefined"!=typeof window&&window.document?($n(e),e):(!1!==t.tags&&(zn(e),console.log("\n")),!0===t.chunks&&(Nn(e),console.log("\n")),!0===t.highlight&&(Ln(e),console.log("\n")),e)};const qn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var Fn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach((r=>{t.match(r).fullPointer.forEach((t=>{n[t[3]]={fn:e[r],end:t[2]}}))})),n}(t,e),r="";return t.docs.forEach(((e,o)=>{for(let i=0;it.reduce(((t,e)=>t+e.pre+e.text+e.post),"").trim()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.sort(((t,e)=>t.count>e.count?-1:0))}(this.json({normal:!0}).map((t=>t.normal)));if("terms"===t){let t=[];return this.docs.forEach((e=>{let n=e.terms.map((t=>t.text));n=n.filter((t=>t)),t=t.concat(n)})),t}return"tags"===t?this.docs.map((t=>t.reduce(((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t)),{}))):"debug"===t?this.debug():this.text()}};var Dn=Gn,Bn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&vn.hasOwnProperty(t)?e=Object.assign({},vn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},In=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e};var Qn=function(t,e){let n=In(e),r=[];return t.forEach((t=>{let[e]=t,o=n[e]||[];if(o=o.filter((e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e))),0===o.length)return void r.push({passthrough:t});o=o.sort(((t,e)=>t[1]-e[1]));let i=t;o.forEach(((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)}))})),r},Zn=function(t,e){let n=[];return t.forEach(((r,o)=>{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<20;r+=1){if(e[n-r]){let o=e[n-r].findIndex((e=>e.id===t));if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex((e=>e.id===t));if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex((t=>t.id===o));return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))})),n=n.filter((t=>t.length>0)),n},Hn={one:{termList:function(t){let e=[];for(let n=0;n{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter((e=>Rn(t,e)));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach((t=>{t[1]n&&(n=t[2])})),[t[0][0],e,n]}(n);o.push(i)})),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)})),n},Xn=function(t,e){let n=In(e),r=[];return t.forEach((t=>{let e=n[t[0]]||[];e=e.filter((e=>Rn(t,e))),0!==e.length&&e.forEach((e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},tr=function(t,e){return t.map((t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t}))},er={union:function(t){t=Yn(t,this);let e=Kn(this.fullPointer,t.fullPointer);return e=tr(e,this.document),this.toView(e)}};er.and=er.union,er.intersection=function(t){t=Yn(t,this);let e=Xn(this.fullPointer,t.fullPointer);return e=tr(e,this.document),this.toView(e)},er.not=function(t){t=Yn(t,this);let e=Jn(this.fullPointer,t.fullPointer);return e=tr(e,this.document),this.toView(e)},er.difference=er.not,er.complement=function(){let t=this.all(),e=Jn(t.fullPointer,this.fullPointer);return e=tr(e,this.document),this.toView(e)},er.settle=function(){let t=this.fullPointer;return t.forEach((e=>{t=Kn(t,[e])})),t=tr(t,this.document),this.update(t)};var nr=function(t){Object.assign(t.prototype,er)},rr={methods:Hn,api:nr},or=function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t}));let s=i.map((t=>t.pointer));return i=i.map((t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t))),{view:this.update(s),found:i}}};const ir=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var sr=function(t,e){const n=e.methods.one.parseMatch;return t.forEach((t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach((t=>{e.push(ir(t)),"and"===t.operator&&t.choices&&t.choices.forEach((t=>{t.forEach((t=>{e.push(ir(t))}))}))})),e.filter((t=>t))}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach((t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach((t=>{e.push(t)})),t.choices&&t.choices.forEach((t=>{t.forEach((t=>{let n=ir(t);n&&e.push(n)}))})),n+=1)})),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter((t=>!t.optional)).length})),t},lr=function(t,e){t=sr(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=n[e]||[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=n[e]||[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>!e[t.match]&&(e[t.match]=!0,!0)))}));let r=t.filter((t=>0===t.needs.length&&0===t.wants.length));return{hooks:n,always:r}},ar=function(t,e){return t.map(((n,r)=>{let o=[];Object.keys(e).forEach((n=>{t[r].has(n)&&(o=o.concat(e[n]))}));let i={};return o=o.filter((t=>!i[t.match]&&(i[t.match]=!0,!0))),o}))},cr=function(t,e){return t.map(((t,n)=>{let r=e[n];return t=(t=(t=t.filter((t=>t.needs.every((t=>r.has(t)))))).filter((t=>void 0===t.ifNo||!0!==t.ifNo.some((t=>r.has(t)))))).filter((t=>0===t.wants.length||t.wants.filter((t=>r.has(t))).length>=t.minWant))}))},ur=function(t,e,n,r,o){let i=[];for(let n=0;n0&&(a.ptrs.forEach((t=>{t[0]=n;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),i.push(e)})),!0===o.matchOne))return[i[0]]}return i},hr=function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=ar(o,e.hooks);return i=cr(i,o),e.always.length>0&&(i=i.map((t=>t.concat(e.always)))),i=function(t,e){return t.map(((t,n)=>{let r=e[n].length;return t=t.filter((t=>r>=t.minWords)),t}))}(i,t),ur(i,t,o,n,r)},fr=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===fr(c,t.tag,r))return;if("-"===c[c.length-1].post)return}if(void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),"Noun"===t.tag)){let e=c[c.length-1];a(e.text)?s([e],"Plural",n,t.safe,"quick-plural"):s([e],"Singular",n,t.safe,"quick-singular")}void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach((e=>e.chunk=t.chunk))})))},dr={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:or,methods:{one:{buildNet:lr,bulkMatch:hr,bulkTagger:pr}}};const gr=/ /,mr=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},wr=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map((t=>t.text||"["+t.implicit+"]")).join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),1!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if("string"==typeof e)if(e=e.trim(),gr.test(e))!function(t,e,n,r){let o=e.split(gr);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),wr(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nyr(t,e,n,r)))};var br=yr,vr=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach((t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map((t=>t.trim())).filter((t=>t)),e=e.map((t=>xr({id:t}))),e}return[xr({id:t})]}(t))})),n=n.filter((t=>t));let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach((n=>{e&&e(t,n),r.push(n)}))}return n},kr=t=>"[object Array]"===Object.prototype.toString.call(t),Pr=t=>(t=t||"").trim(),_r=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||jr.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Er(t)})}));let r=function(t){let e={children:[]};return t.forEach(((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t}));let n=xr({});return t.forEach((t=>{if((t=xr(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)})),n}(t):(Or(e=t).forEach(xr),e);var e},Sr=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Or(t).forEach(((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"})),r},Ar=function(t){let e=Or(t);e.forEach((t=>{delete(t=Object.assign({},t)).children}));let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},$r={text:Sr,txt:Sr,array:Ar,flat:Ar},Tr=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Sr(t,!0)),null):$r.hasOwnProperty(e)?$r[e](t):t},Cr=t=>{Or(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},zr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=Pr(t),!zr.test(t)){let e=this.json.children.find((e=>e.id===t));return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]));if(!r)return null;t=r}return t})(this.json,t)||xr({});return new g(e)}add(t,e={}){if(kr(t))return t.forEach((t=>this.add(Pr(t),e))),this;t=Pr(t);let n=xr({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Pr(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return Or(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=Or(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))})),n={};e.forEach((t=>{t.id&&(n[t.id]=t)})),e.forEach((t=>{t._cache.parents.forEach((e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)}))})),t._cache.children=Object.keys(n)})(this.json),this}list(){return Or(this.json)}fillDown(){var t;return t=this.json,Or(t,((t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach((n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else kr(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){Cr(this.json);let t=Or(this.json),e=t.length>1?1:0;return t.forEach((t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)})),e}out(t){return Cr(this.json),Tr(this.json,t)}debug(){return Cr(this.json),Tr(this.json,"debug"),this}}const Nr=function(t){let e=_r(t);return new g(e)};Nr.prototype.plugin=function(t){t(this)};var Lr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Vr=function(t){if(Lr.hasOwnProperty(t.id))return Lr[t.id];if(Lr.hasOwnProperty(t.is))return Lr[t.is];let e=t._cache.parents.find((t=>Lr[t]));return Lr[e]};var qr=function(t){const e={};return t.forEach((t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:Vr(t)}})),Object.keys(e).forEach((t=>{let n=new Set(e[t].not);e[t].not.forEach((t=>{e[t]&&e[t].children.forEach((t=>n.add(t)))})),e[t].not=Array.from(n)})),e};const Fr=function(t){return t?"string"==typeof t?[t]:t:[]};var Gr=function(t,e){return t=function(t,e){return Object.keys(t).forEach((n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))})),t}(t,e),Object.keys(t).forEach((e=>{t[e].children=Fr(t[e].children),t[e].not=Fr(t[e].not)})),Object.keys(t).forEach((e=>{(t[e].not||[]).forEach((n=>{t[n]&&t[n].not&&t[n].not.push(e)}))})),t},Dr=function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach((e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0})),t}(t)),t=Gr(t,e);const n=function(t){const e=Object.keys(t).map((e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}}));return Nr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return qr(n)},Br={one:{setTag:br,unTag:vr,addTags:Dr}};const Ur=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Mr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),Ur(t)?t.forEach((t=>o.one.setTag(r,t,s,n,e))):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return Ur(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach(((t,e)=>{t.forEach(((t,o)=>{n.find((e=>t.tags.has(e)))&&r.push([e,o,o+1])}))}));let o=this.update(r);return this.difference(o)}};var Wr=Mr,Rr=function(t){Object.assign(t.prototype,Wr)},Ir={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const Qr=new Set(["Auxiliary","Possessive"]);var Zr=function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach((t=>{t.forEach((t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t=t.sort(((t,n)=>{if(Qr.has(t)||!e.hasOwnProperty(n))return 1;if(Qr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))},Hr={model:{one:{tagSet:{}}},compute:{tagRank:Zr},methods:Br,api:Rr,lib:Ir};const Kr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Jr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var Yr=function(t){let e=[],n=t.split(Xr);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const oo={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},io=RegExp("("+Object.keys(oo).join("|")+")","g"),so=RegExp("("+Object.values(oo).join("|")+")","g"),lo=function(t){if(!t)return!1;let e=t.match(so);return null!==e&&1===e.length};var ao=function(t){let e=[];for(let n=0;n(t[e]=!0,t)),{});var ko=function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Eo);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=vo(n),n=yo(n),n=n.filter((t=>t)),n};let Po=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),_o=new RegExp(`^[${["%","_"].join("")}]+`,"");const So=/[\p{Punctuation}\s]+$/u,Ao=/^[\p{Punctuation}\s]+/u,$o=/['’]/,To=/^[a-z]\.([a-z]\.)+/i,Co=/^'[0-9]{2}/;var zo=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Ao,(e=>{let r=e.match(Po);return r?(n=e.replace(Po,""),r):"'"===n&&Co.test(t)?(n="",e):(n=e,"")}))).replace(So,(o=>{let i=o.match(_o);return i?(r=o.replace(_o,""),i):$o.test(o)&&/[sn]['’]$/.test(e)&&!1===$o.test(n)?(r=r.replace($o,""),"'"):!0===To.test(t)?(r=o.replace(/^\./,""),"."):(r=o,"")})))&&(e=e.replace(/ *$/,(t=>(r=t||"",""))),t=e,n=""),{str:t,pre:n,post:r}},No=function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach(((t,e)=>{n[t]&&(r[e]=n[t])})),r.join("")},Lo=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Vo=/([A-Z]\.)+[A-Z]?,?$/,qo=/^[A-Z]\.,?$/,Fo=/[A-Z]{2,}('s|,)?$/,Go=/([a-z]\.)+[a-z]\.?$/;var Do=function(t){return function(t){return!0===Vo.test(t)||!0===Go.test(t)||!0===qo.test(t)||!0===Fo.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Bo=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Lo(r),r=n(r,e),r=Do(r),t.normal=r},Uo=function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map(s),n.forEach((t=>{Bo(t,e)})),n})),t};const Mo=/[ .][A-Z]\.? *$/i,Wo=/(?:\u2026|\.{2,}) *$/,Ro=/\p{L}/u,Io=/^[A-Z]\. $/;var Qo={one:{killUnicode:No,tokenize:{splitSentences:go,isSentence:function(t,e){if(!1===Ro.test(t))return!1;if(!0===Mo.test(t))return!1;if(3===t.length&&Io.test(t))return!1;if(!0===Wo.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)},splitTerms:ko,splitWhitespace:t=>{let{str:e,pre:n,post:r}=zo(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:Uo}}},Zo={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ho={},Ko={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((t=>{t[0].forEach((e=>{Ho[e]=!0,Ko[e]="Abbreviation",void 0!==t[1]&&(Ko[e]=[Ko[e],t[1]])}))}));var Jo=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((t,e)=>(t[e]=!0,t)),{});let Xo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Yo={};Object.keys(Xo).forEach((function(t){Xo[t].split("").forEach((function(e){Yo[e]=t}))}));const ti=/\//,ei=/[a-z]\.[a-z]/i,ni=/[0-9]/;var ri=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),ti.test(n)&&!ei.test(n)&&!ni.test(n)){let e=n.split(ti);e.length<=2&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t};const oi=/^\p{Letter}+-\p{Letter}+$/u;var ii=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),oi.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},si=function(t){let e=t.docs,n={};for(let t=0;tui(t,ri),machine:t=>ui(t,ii),normal:t=>ui(t,Bo),freq:si,offset:li,index:ai,wordCount:ci},methods:Qo,model:{one:{aliases:Zo,abbreviations:Ho,prefixes:Jo,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Ko,unicode:Yo}},hooks:["alias","machine","index","id"]},fi={typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}};const pi=function(){const t=this.docs;if(0===t.length)return this;let e=t[t.length-1]||[],n=e[e.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var di=function(t){t.prototype.autoFill=pi},gi=function(t,e,n){let r={},o=[],i=n.prefixes||{};return t.forEach((t=>{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]})),r};const mi={safe:!0,min:3};var wi={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},mi,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=gi(t,e,this.world());return Object.keys(o).forEach((t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]})),this}},yi={model:{one:{typeahead:{}}},api:di,lib:wi,compute:fi,hooks:["typeahead"]};return w.extend(tt),w.extend(Wn),w.extend(an),w.extend(rr),w.extend(Hr),w.plugin(St),w.extend(hi),w.plugin(x),w.extend(Wt),w.extend(yi),w.extend(Vt),w.extend(dr),w},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).nlp=e(); diff --git a/builds/one/compromise-one.mjs b/builds/one/compromise-one.mjs index 19dc75cdb..aa6b5ce4d 100644 --- a/builds/one/compromise-one.mjs +++ b/builds/one/compromise-one.mjs @@ -1 +1 @@ -var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach((r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)})):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n=e;var r={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&(t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2])))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var i=o;const s=Object.assign({},i,n,r);s.get=s.eq;var l=s;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach((t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})})),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map((t=>t.map((t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)))));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,l);var a=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function u(t,e){if(c(e))for(const n in e)c(e[n])?(t[n]||Object.assign(t,{[n]:{}}),u(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}var h=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&u(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.exceptions[t]=e[t].pastTense),n.fromPast&&(n.fromPast.exceptions[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.exceptions[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.exceptions[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.exceptions[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.exceptions[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.exceptions[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.exceptions[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[e[t].superlative]=t))}))}(i,t.irregulars),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach((e=>r[e]=t.lib[e])),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const f=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var p=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t){return new e(r.one.tokenize.fromString(t,n))}if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(f(t)){if(f(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=function(t){return t.map((t=>t.terms.map((t=>(f(t.tags)&&(t.tags=new Set(t.tags)),t)))))}(t);return new e(n)}return o};let d=Object.assign({},t);const m=function(t,e){e&&m.addWords(e);let n=p(t,a,d);return t&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(t,e){const{compute:n}=this._world;e&&m.addWords(e);let r=p(t,a,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(t){return h(t,this._world,a,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},m.version="14.5.2";var w=m;var v=function(t){let e=t.map((t=>{let e=new Set;return t.forEach((t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach((t=>e.add(t)));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),E=(t,e,n)=>{if(n.forEach((t=>t.dirty=!0)),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},O=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},k=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},P=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?O(n):(O(n),O([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!j(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(t=>t.toUpperCase()));let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||j(o.text)&&o.text.length>1&&(o.text=(i=o.text,i.replace(/^\p{Lu}/u,(t=>t.toLowerCase()))));var i}(t,i,n),E(t,i,n)};let _=0;const S=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var A=function(t){let[e,n]=t.index||[0,0];_+=1,_=_>46655?0:_,e=e>46655?0:e,n=n>1294?0:n;let r=S(_.toString(36));r+=S(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const T=function(t){if(t.has("@hasContraction")&&"function"==typeof t.contractions){t.grow("@hasContraction").contractions().expand()}},$=t=>"[object Array]"===Object.prototype.toString.call(t),C=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]||[]:$(t)?$(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=A(t),t)))}(f),n?(T(e.update([c]).firstTerm()),P(h,c,f,r)):(T(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)})),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(L,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let o=this.update(n);n=n.map((t=>t.slice(0,3)));let i=(o.docs[0]||[]).map((t=>Array.from(t.tags)));if(r.insertAfter(t),o.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach(((t,e)=>{t.tagSafe(i[e])})),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),s},V.replace=function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this};var q=V;var F=function(t,e){e.forEach((e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))}));for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const G={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=F(this.document,i);return o=function(t,e){return t=t.map((t=>{let[n]=t;return e[n]?(e[n].forEach((e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)})),t):t})),t.forEach(((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0))).map((t=>(t[3]=null,t[4]=null,t)))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};G.delete=G.remove;var D=G;const B={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t})),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t})),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")}))})),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach((e=>{e.forEach((e=>{t.test(e.post)&&(e.post=" ")}))})),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this}};B.deHyphenate=B.dehyphenate,B.toQuotation=B.toQuotations;var U=B;var M={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach((t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1})),t.sort(((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0})),t}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),R=new Set(["freq","frequency","topk","repeats"]),I=new Set(["alpha","alphabetical"]);var Q={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return W.has(t)&&(t="sequential"),I.has(t)&&(t="alpha"),R.has(t)?(o=M.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof M[t]?(o=o.sort(M[t]),this.update(o.map((t=>t.pointer)))):this}};const Z=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var H={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return E(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach((e=>{e[0]+=t.document.length})),t.document=Z(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=Z(this.document,t);return this.document=e,this.all()}var o;return this}};var K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map((t=>t.slice(0,3))),this.ptrs=t),this}};const J=Object.assign({},{toLowerCase:function(){return this.termList().forEach((t=>{t.text=t.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((t=>{t.text=t.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))),n!==t.length-1&&(e.post="")}))})),this}},N,q,D,U,Q,H,K);var X=function(t){Object.assign(t.prototype,J)};const Y={id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t))),n[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const rt=/'/,ot=new Set(["what","how","when","where","why"]),it=new Set(["be","go","start","think","need"]),st=new Set(["been","gone"]);var lt=function(t,e){let n=t[e].normal.split(rt)[0];if(ot.has(n))return[n,"did"];if(t[e+1]){if(st.has(t[e+1].normal))return[n,"had"];if(it.has(t[e+1].normal))return[n,"would"]}return null};var at=function(t,e){if("ain't"===t[e].normal||"aint"===t[e].normal)return null;return[t[e].normal.replace(/n't/,""),"not"]};const ct=/'/;var ut=(t,e)=>["je",t[e].normal.split(ct)[1]],ht=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ft=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,dt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,mt=/^[0-9]{3}-[0-9]{4}$/;var gt=function(t,e){let n=t[e],r=n.text.match(pt);return null!==r?!0===n.tags.has("PhoneNumber")||mt.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(dt),null!==r?[r[1],"to",r[4]]:null)};const wt=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,vt=new Set(["st","nd","rd","th","am","pm","max"]);var bt=function(t,e){let n=t[e].text.match(wt);if(null!==n){let t=n[2].toLowerCase().trim();return vt.has(t)?null:[n[1],t]}return null};const yt=/'/,xt=/^[0-9][^-–—]*[-–—].*?[0-9]/,jt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]]},Et={t:(t,e)=>at(t,e),d:(t,e)=>lt(t,e)},Ot={j:(t,e)=>ut(t,e),l:(t,e)=>ht(t,e),d:(t,e)=>ft(t,e)},kt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===yt.test(r[l].normal)&&([a,c]=r[l].normal.split(yt));let u=kt(i,r[l],a,c);!u&&Et.hasOwnProperty(c)&&(u=Et[c](r,l,e)),!u&&Ot.hasOwnProperty(a)&&(u=Ot[a](r,l)),u?(u=Pt(u,t),nt(n,[s,l],u),jt(n[s],t,l,u.length)):xt.test(r[l].normal)?(u=gt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),jt(n[s],t,l,u.length))):(u=bt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}}))};var St={model:et,compute:{contractions:_t},hooks:["contractions"]};var At=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t)));if(t){return i([l],s[t],n,!1,"1-lexicon-alias"),!0}}if(!0===Tt.test(a)){let t=a.replace(Tt,"");if(s.hasOwnProperty(t)&&t.length>3&&$t.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null};var zt={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}};var Lt={addWords:function(t){const e=this.world(),{methods:n,model:r}=e;if(t)if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}};var Vt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Nt}},compute:zt,lib:Lt,hooks:["lexicon"]};var qt=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map((t=>t.text.toLowerCase()))}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const Ft=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const Bt=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1),t;return t};var Ut=function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Bt(t.goNext,void 0),t.failTo=Bt(t.failTo,0),t.endAs=Bt(t.endAs,null),t};const Mt={buildTrie:function(t){const e=qt(t,this.world());return Ut(e)}};Mt.compile=Mt.buildTrie;var Wt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:qt(t,this.world));var r;let o=Dt(this,n,e);return o=o.settle(),o}},lib:Mt};const Rt=function(t,e){return e?(t.forEach((t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])})),t):t},It=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Rt(n,e),Object.keys(r).forEach((t=>{r[t]=Rt(r[t],e)})),{ptrs:n,byGroup:r}},Qt=t=>"[object Object]"===Object.prototype.toString.call(t),Zt=t=>t&&Qt(t)&&!0===t.isView,Ht=t=>t&&Qt(t)&&!0===t.isNet,Kt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Jt={matchOne:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t).eq(0);if(Ht(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t);if(Ht(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Kt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Zt(t)){return t.fullPointer.length>0}if(Ht(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.filter((e=>e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Zt(t))return this.filter((e=>!e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Kt(t,n,this.world);let i=this._cache||[],s=this.filter(((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length}));return this._cache&&(s._cache=s.ptrs.map((t=>i[t[0]]))),s}};var Xt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?1:-1))[0];e[1]>0&&o.push([e[0],0,e[1]])}));let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?-1:1))[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}})),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach(((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}})),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Yt=function(t,e){return[t[0],t[1],e[2]]},te=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},ee=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},ne={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Yt(t.match,t.after)):(i.push(t.match),i.push(t.after))})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(Yt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)}};ne.split=ne.splitAfter;var re=ne;const oe=Object.assign({},Jt,Xt,re);oe.lookBehind=oe.before,oe.lookBefore=oe.before,oe.lookAhead=oe.after,oe.lookAfter=oe.after,oe.notIf=oe.ifNo;var ie=function(t){Object.assign(t.prototype,oe)};const se=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,le=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ae=/ /g,ce=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),ue=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))};var he=function(t){let e=t.split(se),n=[];e.forEach((t=>{ce(t)?n.push(t):n=n.concat(t.split(le))})),n=ue(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ce(t)?r.push(t):r=r.concat(t.split(ae))})),r=ue(r),r};const fe=/\{([0-9]+)?(, *[0-9]*)?\}/,pe=/&&/,de=new RegExp(/^<\s*(\S+)\s*>/),me=t=>t.charAt(0).toUpperCase()+t.substring(1),ge=t=>t.charAt(t.length-1),we=t=>t.charAt(0),ve=t=>t.substring(1),be=t=>t.substring(0,t.length-1),ye=function(t){return t=ve(t),t=be(t)},xe=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ge(t)&&(n.end=!0,t=be(t)),"^"===we(t)&&(n.start=!0,t=ve(t)),("["===we(t)||"]"===ge(t))&&(n.group=null,"["===we(t)&&(n.groupStart=!0),"]"===ge(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===we(t))){const e=de.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ge(t)&&(n.greedy=!0,t=be(t)),"*"!==t&&"*"===ge(t)&&"\\*"!==t&&(n.greedy=!0,t=be(t)),"?"===ge(t)&&(n.optional=!0,t=be(t)),"!"===we(t)&&(n.negative=!0,t=ve(t)),"~"===we(t)&&"~"===ge(t)&&t.length>2&&(t=ye(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===we(t)&&")"===ge(t)){pe.test(t)?(n.choices=t.split(pe),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ve(n.choices[0]);let r=n.choices.length-1;n.choices[r]=be(n.choices[r]),n.choices=n.choices.map((t=>t.trim())),n.choices=n.choices.filter((t=>t)),n.choices=n.choices.map((t=>t.split(/ /g).map((t=>xe(t,e))))),t=""}if("/"===we(t)&&"/"===ge(t))return t=ye(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===we(t)&&"}"===ge(t)){if(t=ye(t),n.id=t,n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.num=t[2])}return n}if("<"===we(t)&&">"===ge(t))return t=ye(t),n.chunk=me(t),n.greedy=!0,n;if("%"===we(t)&&"%"===ge(t))return t=ye(t),n.switch=t,n}return!0===fe.test(t)&&(t=t.replace(fe,((t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===we(t)?(n.tag=ve(t),n.tag=me(n.tag),n):"@"===we(t)?(n.method=ve(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var je=xe;const Ee=/[a-z0-9][-–—][a-z]/i;var Oe=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&Ee.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter((t=>t)).reverse(),t.splice(e,1),o.forEach((n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)}))}}return t};var ke=function(t,e){return t=t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform&&e.methods.two.transform.verbConjugate){let n=[];t.pos&&"Verb"!==t.pos||(n=n.concat(function(t,e){let{verbConjugate:n}=e.methods.two.transform;if(!n)return[];let r=n(t.root,e.model);return delete r.FutureTense,Object.values(r).filter((t=>t))}(t,e))),t.pos&&"Noun"!==t.pos||(n=n.concat(function(t,e){let{nounToPlural:n}=e.methods.two.transform,r=[t.root];return n?(r.push(n(t.root,e.model)),r):r}(t,e))),t.pos&&"Adjective"!==t.pos||(n=n.concat(function(t,e){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:o}=e.methods.two.transform,i=[t.root];return n&&r&&o?(i.push(n(t.root,e.model)),i.push(r(t.root,e.model)),i.push(o(t.root,e.model)),i):i}(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t})),t};var Pe=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach((e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)})),t)))}(t=t.map((t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every((t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method}))&&(t.fastOr=new Set,t.choices.forEach((e=>{t.fastOr.add(e[0].word)})),delete t.choices)}return t}))),t};var _e=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=he(t);return r=r.map((t=>je(t,e))),r=Oe(r,n),r=ke(r,n),r=Pe(r),r};const Se=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var Ae=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),Ve=(t,e)=>-1!==t.pre.indexOf(e),qe={hasQuote:t=>$e.test(t.pre)||Ce.test(t.post),hasComma:t=>Le(t,","),hasPeriod:t=>!0===Le(t,".")&&!1===Le(t,"..."),hasExclamation:t=>Le(t,"!"),hasQuestionMark:t=>Le(t,"?")||Le(t,"¿"),hasEllipses:t=>Le(t,"..")||Le(t,"…")||Ve(t,"..")||Ve(t,"…"),hasSemicolon:t=>Le(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>ze.test(t.post)||ze.test(t.pre),hasDash:t=>Ne.test(t.post)||Ne.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};qe.hasQuotation=qe.hasQuote;var Fe=qe;let Ge=function(){};Ge=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(Te(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some((t=>t===e.word)))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof Fe[e.method]&&!0===Fe[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.pos&&!t.tags.has(e.pos)?null:e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Ge(t,e,n,r))):e.choices.some((e=>Ge(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};var De=Ge;const Be=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max)return t.t=t.t+n.max,!0;if(!0===t.hasGroup){Ue(t,t.t).length=r-t.t}return t.t=r,!0};const We=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=De(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every(((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&De(t.terms[r],e,r,t.phrase_length)}));return!0===r&&n.length>e&&(e=n.length),r}))&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup){Ue(t,t.t).length+=r}if(!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null};var Qe=function(t,e,n){let r=0;for(let o=t.t;or)&&(t.t+=r,!0))};var Ze=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,De(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];if(n){if(De(t.terms[t.t],n,t.start_i+t.t,t.phrase_length))t.r+=1;else if(n.optional&&e[t.r+2]){De(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2)}}}return n.greedy?Qe(t,r,e[t.r+1]):(t.t+=1,!0)};var He=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=De(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&De(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}};var Ke=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null};var Je=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}};var Xe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;if(n.optional&&e[t.r+1]&&n.negative)return!0;if(n.optional&&e[t.r+1]&&He(t),r.implicit&&t.terms[t.t+1]&&Je(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Ke(t))return null}return!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Ue(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0};var Ye=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional)))break;return null}if(!0!==t.anything||!0!==t.greedy)if(void 0===t.choices||"or"!==t.operator)if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything)if(!0!==Be(t,o))if(t.negative){if(!Ze(o))return null}else if(!0!==De(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else{if(!Xe(o))return null}else{if(!Xe(o))return null}else{if(t.negative&&t.anything)return null;if(!Xe(o))return null}else{if(!Ie(o))return null}else{if(!Re(o))return null}else{if(!Me(o))return null}}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach((t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]})),{pointer:i,groups:s}};var tn=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach((t=>{t.groups[e]&&n.push(t.groups[e])})):t.forEach((t=>{n.push(t.pointer),Object.keys(t.groups).forEach((e=>{r[e]=r[e]||[],r[e].push(t.groups[e])}))}))),{ptrs:n,byGroup:r}};const en=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach((n=>{t.groups[n][0]=e})),t},nn=function(t,e,n){let r=Ye(t,e,0,t.length);return r?(r=en(r,n),r):null};var rn=function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter((t=>!0!==t.optional&&!0!==t.negative)).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=nn(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter((e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]}))),s=tn(s,o),s.ptrs.forEach((e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id})),s};var on={api:ie,methods:{one:{termMethods:Fe,parseMatch:_e,match:rn}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const sn=/^\../,ln=/^#./,an=function(t,e){let n={},r={};return Object.keys(e).forEach((o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),sn.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach((t=>{if(t.every((t=>t.implicit)))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)}))})),{starts:n,ends:r}};var cn={html:function(t){let{starts:e,ends:n}=an(this,t),r="";return this.docs.forEach((t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(hn,""),pn.test(o)&&(o=" "),o=o.replace(fn,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(hn,""),o="-"===o?" ":o.replace(un,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&dn.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},gn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};gn.clean=gn.normal,gn.reduced=gn.root;var wn=gn;let vn=[],bn=0;for(;bn<64;)vn[bn]=0|4294967296*Math.sin(++bn%Math.PI);function yn(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(bn=s=0;bn>4]+vn[s]+~~i[bn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const xn={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const En=function(t,e){return Object.assign({},t,e)},On={text:t=>mn(t,{keepPunct:!0},!1),normal:t=>mn(t,En(wn.normal,{keepPunct:!0}),!1),implicit:t=>mn(t,En(wn.implicit,{keepPunct:!0}),!1),machine:t=>mn(t,jn,!1),root:t=>mn(t,En(jn,{form:"root"}),!1),hash:t=>yn(mn(t,{keepPunct:!0},!1)),offset:t=>{let e=On.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map((t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e})),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some((t=>!0===t.dirty))};On.sentences=On.sentence,On.clean=On.normal,On.reduced=On.root;const kn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},xn,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&On[i]&&(o[i]=On[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};kn.data=kn.json;var Pn=kn;var _n=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach((t=>{console.groupCollapsed(t.text());let e=t.docs[0].map((t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}}));console.table(e,["text","tags"]),console.groupEnd()}))};var Sn={green:t=>""+t+"",red:t=>""+t+"",blue:t=>""+t+"",magenta:t=>""+t+"",cyan:t=>""+t+"",yellow:t=>""+t+"",black:t=>""+t+"",dim:t=>""+t+"",i:t=>""+t+""};var An=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(Sn.blue("\n ──────")),e.forEach((t=>{console.log(Sn.blue("\n ┌─────────")),t.forEach((t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=Sn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=Sn.blue(" │ ")+Sn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map((t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return Sn[n](t)}))),t.join(", ")}(e,n);console.log(i)}))}))};var Tn=function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(Sn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(Sn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(Sn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(Sn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")}))};var $n=function(t){if(!t.found)return;let e={};t.fullPointer.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),Object.keys(e).forEach((n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach(((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${Sn.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)}))};var Cn=function(t={}){let e=this;if("string"==typeof t){let e={};e[t]=!0,t=e}return"undefined"!=typeof window&&window.document?(_n(e),e):(!1!==t.tags&&(An(e),console.log("\n")),!0===t.chunks&&(Tn(e),console.log("\n")),!0===t.highlight&&($n(e),console.log("\n")),e)};const zn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var Nn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach((r=>{t.match(r).fullPointer.forEach((t=>{n[t[3]]={fn:e[r],end:t[2]}}))})),n}(t,e),r="";return t.docs.forEach(((e,o)=>{for(let i=0;it.reduce(((t,e)=>t+e.pre+e.text+e.post),"").trim()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.sort(((t,e)=>t.count>e.count?-1:0))}(this.json({normal:!0}).map((t=>t.normal)));if("terms"===t){let t=[];return this.docs.forEach((e=>{let n=e.terms.map((t=>t.text));n=n.filter((t=>t)),t=t.concat(n)})),t}return"tags"===t?this.docs.map((t=>t.reduce(((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t)),{}))):"debug"===t?this.debug():this.text()}};var Vn=Ln;var qn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&wn.hasOwnProperty(t)?e=Object.assign({},wn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},Un=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e};var Mn=function(t,e){let n=Un(e),r=[];return t.forEach((t=>{let[e]=t,o=n[e]||[];if(o=o.filter((e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e))),0===o.length)return void r.push({passthrough:t});o=o.sort(((t,e)=>t[1]-e[1]));let i=t;o.forEach(((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)}))})),r};var Wn=function(t,e){let n=[];return t.forEach(((r,o)=>{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<20;r+=1){if(e[n-r]){let o=e[n-r].findIndex((e=>e.id===t));if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex((e=>e.id===t));if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex((t=>t.id===o));return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))})),n=n.filter((t=>t.length>0)),n};var Rn={one:{termList:function(t){let e=[];for(let n=0;n{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter((e=>Bn(t,e)));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach((t=>{t[1]n&&(n=t[2])})),[t[0][0],e,n]}(n);o.push(i)})),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)})),n};var Zn=function(t,e){let n=Un(e),r=[];return t.forEach((t=>{let e=n[t[0]]||[];e=e.filter((e=>Bn(t,e))),0!==e.length&&e.forEach((e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},Kn=function(t,e){return t.map((t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t}))},Jn={union:function(t){t=Hn(t,this);let e=In(this.fullPointer,t.fullPointer);return e=Kn(e,this.document),this.toView(e)}};Jn.and=Jn.union,Jn.intersection=function(t){t=Hn(t,this);let e=Zn(this.fullPointer,t.fullPointer);return e=Kn(e,this.document),this.toView(e)},Jn.not=function(t){t=Hn(t,this);let e=Qn(this.fullPointer,t.fullPointer);return e=Kn(e,this.document),this.toView(e)},Jn.difference=Jn.not,Jn.complement=function(){let t=this.all(),e=Qn(t.fullPointer,this.fullPointer);return e=Kn(e,this.document),this.toView(e)},Jn.settle=function(){let t=this.fullPointer;return t.forEach((e=>{t=In(t,[e])})),t=Kn(t,this.document),this.update(t)};var Xn=function(t){Object.assign(t.prototype,Jn)},Yn={methods:Rn,api:Xn};var tr=function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t}));let s=i.map((t=>t.pointer));return i=i.map((t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t))),{view:this.update(s),found:i}}};const er=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var nr=function(t,e){const n=e.methods.one.parseMatch;return t.forEach((t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach((t=>{e.push(er(t)),"and"===t.operator&&t.choices&&t.choices.forEach((t=>{t.forEach((t=>{e.push(er(t))}))}))})),e.filter((t=>t))}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach((t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach((t=>{e.push(t)})),t.choices&&t.choices.forEach((t=>{t.forEach((t=>{let n=er(t);n&&e.push(n)}))})),n+=1)})),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter((t=>!t.optional)).length})),t};var rr=function(t,e){t=nr(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=n[e]||[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=n[e]||[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>!e[t.match]&&(e[t.match]=!0,!0)))}));let r=t.filter((t=>0===t.needs.length&&0===t.wants.length));return{hooks:n,always:r}};var or=function(t,e){return t.map(((n,r)=>{let o=[];Object.keys(e).forEach((n=>{t[r].has(n)&&(o=o.concat(e[n]))}));let i={};return o=o.filter((t=>!i[t.match]&&(i[t.match]=!0,!0))),o}))};var ir=function(t,e){return t.map(((t,n)=>{let r=e[n];return t=(t=(t=t.filter((t=>t.needs.every((t=>r.has(t)))))).filter((t=>void 0===t.ifNo||!0!==t.ifNo.some((t=>e[n].has(t)))))).filter((t=>{if(0===t.wants.length)return!0;return t.wants.filter((t=>r.has(t))).length>=t.minWant}))}))};var sr=function(t,e,n,r){let o=[];for(let i=0;i0&&(a.ptrs.forEach((t=>{t[0]=i;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),o.push(e)})),!0===r.matchOne))return[o[0]]}return o};var lr=function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=or(o,e.hooks);return i=ir(i,o),e.always.length>0&&(i=i.map((t=>t.concat(e.always)))),i=function(t,e){return t.map(((t,n)=>{let r=e[n].length;return t=t.filter((t=>r>=t.minWords)),t}))}(i,t),sr(i,t,n,r)};var ar=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===ar(c,t.tag,r))return;if("-"===c[c.length-1].post)return}if(void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),"Noun"===t.tag)){let e=c[c.length-1];a(e.text)?s([e],"Plural",n,t.safe,"quick-plural"):s([e],"Singular",n,t.safe,"quick-singular")}void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach((e=>e.chunk=t.chunk))}))},ur={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:tr,methods:{one:{buildNet:rr,bulkMatch:lr,bulkTagger:cr}}};const hr=/ /,fr=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},pr=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map((t=>t.text||"["+t.implicit+"]")).join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if("string"==typeof e)if(e=e.trim(),hr.test(e))!function(t,e,n,r){let o=e.split(hr);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),pr(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;ndr(t,e,n,r)))};var mr=dr;var gr=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach((t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map((t=>t.trim())).filter((t=>t)),e=e.map((t=>wr({id:t}))),e}return[wr({id:t})]}(t))})),n=n.filter((t=>t));let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach((n=>{e&&e(t,n),r.push(n)}))}return n},xr=t=>"[object Array]"===Object.prototype.toString.call(t),jr=t=>(t=t||"").trim(),Er=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||vr.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:br(t)})}));let r=function(t){let e={children:[]};return t.forEach(((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t}));let n=wr({});return t.forEach((t=>{if((t=wr(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)})),n}(t):(yr(e=t).forEach(wr),e);var e},Or=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return yr(t).forEach(((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"})),r},kr=function(t){let e=yr(t);e.forEach((t=>{delete(t=Object.assign({},t)).children}));let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},Pr={text:Or,txt:Or,array:kr,flat:kr},_r=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Or(t,!0)),null):Pr.hasOwnProperty(e)?Pr[e](t):t},Sr=t=>{yr(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},Ar=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=jr(t),!Ar.test(t)){let e=this.json.children.find((e=>e.id===t));return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]));if(!r)return null;t=r}return t})(this.json,t)||wr({});return new g(e)}add(t,e={}){if(xr(t))return t.forEach((t=>this.add(jr(t),e))),this;t=jr(t);let n=wr({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=jr(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return yr(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=yr(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))})),n={};e.forEach((t=>{t.id&&(n[t.id]=t)})),e.forEach((t=>{t._cache.parents.forEach((e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)}))})),t._cache.children=Object.keys(n)})(this.json),this}list(){return yr(this.json)}fillDown(){var t;return t=this.json,yr(t,((t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach((n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else xr(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){Sr(this.json);let t=yr(this.json),e=t.length>1?1:0;return t.forEach((t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)})),e}out(t){return Sr(this.json),_r(this.json,t)}debug(){return Sr(this.json),_r(this.json,"debug"),this}}const Tr=function(t){let e=Er(t);return new g(e)};Tr.prototype.plugin=function(t){t(this)};var $r={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Cr=function(t){if($r.hasOwnProperty(t.id))return $r[t.id];if($r.hasOwnProperty(t.is))return $r[t.is];let e=t._cache.parents.find((t=>$r[t]));return $r[e]};var zr=function(t){const e={};return t.forEach((t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:Cr(t)}})),Object.keys(e).forEach((t=>{let n=new Set(e[t].not);e[t].not.forEach((t=>{e[t]&&e[t].children.forEach((t=>n.add(t)))})),e[t].not=Array.from(n)})),e};const Nr=function(t){return t?"string"==typeof t?[t]:t:[]};var Lr=function(t,e){return t=function(t,e){return Object.keys(t).forEach((n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))})),t}(t,e),Object.keys(t).forEach((e=>{t[e].children=Nr(t[e].children),t[e].not=Nr(t[e].not)})),Object.keys(t).forEach((e=>{(t[e].not||[]).forEach((n=>{t[n]&&t[n].not&&t[n].not.push(e)}))})),t};var Vr=function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach((e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0})),t}(t)),t=Lr(t,e);const n=function(t){const e=Object.keys(t).map((e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}}));return Tr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return zr(n)},qr={one:{setTag:mr,unTag:gr,addTags:Vr}};const Fr=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Gr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),Fr(t)?t.forEach((t=>o.one.setTag(r,t,s,n,e))):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return Fr(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach(((t,e)=>{t.forEach(((t,o)=>{n.find((e=>t.tags.has(e)))&&r.push([e,o,o+1])}))}));let o=this.update(r);return this.difference(o)}};var Dr=Gr;var Br=function(t){Object.assign(t.prototype,Dr)};var Ur={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const Mr=new Set(["Auxiliary","Possessive"]);var Wr=function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach((t=>{t.forEach((t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t=t.sort(((t,n)=>{if(Mr.has(t)||!e.hasOwnProperty(n))return 1;if(Mr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))},Rr={model:{one:{tagSet:{}}},compute:{tagRank:Wr},methods:qr,api:Br,lib:Ur};const Ir=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Qr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Zr=/((?:\r?\n|\r)+)/;var Hr=function(t){let e=[],n=t.split(Zr);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const to={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},eo=RegExp("("+Object.keys(to).join("|")+")","g"),no=RegExp("("+Object.values(to).join("|")+")","g"),ro=function(t){if(!t)return!1;let e=t.match(no);return null!==e&&1===e.length};var oo=function(t){let e=[];for(let n=0;n(t[e]=!0,t)),{});var xo=function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(bo);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=go(n),n=po(n),n=n.filter((t=>t)),n};let jo=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Eo=new RegExp(`^[${["%","_"].join("")}]+`,"");const Oo=/[\p{Punctuation}\s]+$/u,ko=/^[\p{Punctuation}\s]+/u,Po=/['’]/,_o=/^[a-z]\.([a-z]\.)+/i,So=/^'[0-9]{2}/;var Ao=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(ko,(e=>{let r=e.match(jo);return r?(n=e.replace(jo,""),r):"'"===n&&So.test(t)?(n="",e):(n=e,"")}))).replace(Oo,(o=>{let i=o.match(Eo);return i?(r=o.replace(Eo,""),i):Po.test(o)&&/[sn]['’]$/.test(e)&&!1===Po.test(n)?(r=r.replace(Po,""),"'"):!0===_o.test(t)?(r=o.replace(/^\./,""),"."):(r=o,"")})))&&(e=e.replace(/ *$/,(t=>(r=t||"",""))),t=e,n=""),{str:t,pre:n,post:r}};var To=function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach(((t,e)=>{n[t]&&(r[e]=n[t])})),r.join("")};var $o=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Co=/([A-Z]\.)+[A-Z]?,?$/,zo=/^[A-Z]\.,?$/,No=/[A-Z]{2,}('s|,)?$/,Lo=/([a-z]\.)+[a-z]\.?$/;var Vo=function(t){return function(t){return!0===Co.test(t)||!0===Lo.test(t)||!0===zo.test(t)||!0===No.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var qo=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=$o(r),r=n(r,e),r=Vo(r),t.normal=r};var Fo=function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map(s),n.forEach((t=>{qo(t,e)})),n})),t};const Go=/[ .][A-Z]\.? *$/i,Do=/(?:\u2026|\.{2,}) *$/,Bo=/\p{L}/u,Uo=/^[A-Z]\. $/;var Mo={one:{killUnicode:To,tokenize:{splitSentences:uo,isSentence:function(t,e){if(!1===Bo.test(t))return!1;if(!0===Go.test(t))return!1;if(3===t.length&&Uo.test(t))return!1;if(!0===Do.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)},splitTerms:xo,splitWhitespace:t=>{let{str:e,pre:n,post:r}=Ao(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:Fo}}};var Wo={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ro={},Io={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((t=>{t[0].forEach((e=>{Ro[e]=!0,Io[e]="Abbreviation",void 0!==t[1]&&(Io[e]=[Io[e],t[1]])}))}));var Qo=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((t,e)=>(t[e]=!0,t)),{});let Zo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Ho={};Object.keys(Zo).forEach((function(t){Zo[t].split("").forEach((function(e){Ho[e]=t}))}));const Ko=/\//,Jo=/[a-z]\.[a-z]/i,Xo=/[0-9]/;var Yo=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),Ko.test(n)&&!Jo.test(n)&&!Xo.test(n)){let e=n.split(Ko);e.length<=2&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t};const ti=/^\p{Letter}+-\p{Letter}+$/u;var ei=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),ti.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var ni=function(t){let e=t.docs,n={};for(let t=0;tsi(t,Yo),machine:t=>si(t,ei),normal:t=>si(t,qo),freq:ni,offset:ri,index:oi,wordCount:ii},methods:Mo,model:{one:{aliases:Wo,abbreviations:Ro,prefixes:Qo,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Io,unicode:Ho}},hooks:["alias","machine","index","id"]};var ai={typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}};const ci=function(){const t=this.docs;if(0===t.length)return this;let e=t[t.length-1]||[],n=e[e.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var ui=function(t){t.prototype.autoFill=ci};var hi=function(t,e,n){let r={},o=[],i=n.prefixes||{};return t.forEach((t=>{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]})),r};const fi={safe:!0,min:3};var pi={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},fi,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=hi(t,e,this.world());return Object.keys(o).forEach((t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]})),this}};var di={model:{one:{typeahead:{}}},api:ui,lib:pi,compute:ai,hooks:["typeahead"]};w.extend(tt),w.extend(Dn),w.extend(on),w.extend(Yn),w.extend(Rr),w.plugin(St),w.extend(li),w.plugin(x),w.extend(Wt),w.extend(di),w.extend(Vt),w.extend(ur);export{w as default}; +var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach((r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)})):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n=e;var r={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&(t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2])))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var i=o;const s=Object.assign({},i,n,r);s.get=s.eq;var l=s;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach((t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})})),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map((t=>t.map((t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)))));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,l);var a=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function u(t,e){if(c(e))for(const n in e)c(e[n])?(t[n]||Object.assign(t,{[n]:{}}),u(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}var h=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&u(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.exceptions[t]=e[t].pastTense),n.fromPast&&(n.fromPast.exceptions[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.exceptions[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.exceptions[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.exceptions[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.exceptions[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.exceptions[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.exceptions[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[e[t].superlative]=t))}))}(i,t.irregulars),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach((e=>r[e]=t.lib[e])),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const f=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var p=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t){return new e(r.one.tokenize.fromString(t,n))}if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(f(t)){if(f(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=function(t){return t.map((t=>t.terms.map((t=>(f(t.tags)&&(t.tags=new Set(t.tags)),t)))))}(t);return new e(n)}return o};let d=Object.assign({},t);const m=function(t,e){e&&m.addWords(e);let n=p(t,a,d);return t&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(t,e){const{compute:n}=this._world;e&&m.addWords(e);let r=p(t,a,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(t){return h(t,this._world,a,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},m.version="14.5.2";var w=m;var v=function(t){let e=t.map((t=>{let e=new Set;return t.forEach((t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach((t=>e.add(t)));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),E=(t,e,n)=>{if(n.forEach((t=>t.dirty=!0)),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},O=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},k=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},P=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?O(n):(O(n),O([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!j(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(t=>t.toUpperCase()));let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||j(o.text)&&o.text.length>1&&(o.text=(i=o.text,i.replace(/^\p{Lu}/u,(t=>t.toLowerCase()))));var i}(t,i,n),E(t,i,n)};let _=0;const S=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var A=function(t){let[e,n]=t.index||[0,0];_+=1,_=_>46655?0:_,e=e>46655?0:e,n=n>1294?0:n;let r=S(_.toString(36));r+=S(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const $=function(t){if(t.has("@hasContraction")&&"function"==typeof t.contractions){t.grow("@hasContraction").contractions().expand()}},T=t=>"[object Array]"===Object.prototype.toString.call(t),C=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]||[]:T(t)?T(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=A(t),t)))}(f),n?($(e.update([c]).firstTerm()),P(h,c,f,r)):($(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)})),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(L,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let o=this.update(n);n=n.map((t=>t.slice(0,3)));let i=(o.docs[0]||[]).map((t=>Array.from(t.tags)));if(r.insertAfter(t),o.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach(((t,e)=>{t.tagSafe(i[e])})),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),s},V.replace=function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this};var q=V;var F=function(t,e){e.forEach((e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))}));for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const G={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=F(this.document,i);return o=function(t,e){return t=t.map((t=>{let[n]=t;return e[n]?(e[n].forEach((e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)})),t):t})),t.forEach(((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0))).map((t=>(t[3]=null,t[4]=null,t)))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};G.delete=G.remove;var D=G;const B={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t})),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t})),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")}))})),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach((e=>{e.forEach((e=>{t.test(e.post)&&(e.post=" ")}))})),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this}};B.deHyphenate=B.dehyphenate,B.toQuotation=B.toQuotations;var U=B;var M={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach((t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1})),t.sort(((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0})),t}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),R=new Set(["freq","frequency","topk","repeats"]),I=new Set(["alpha","alphabetical"]);var Q={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return W.has(t)&&(t="sequential"),I.has(t)&&(t="alpha"),R.has(t)?(o=M.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof M[t]?(o=o.sort(M[t]),this.update(o.map((t=>t.pointer)))):this}};const Z=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var H={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return E(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach((e=>{e[0]+=t.document.length})),t.document=Z(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=Z(this.document,t);return this.document=e,this.all()}var o;return this}};var K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map((t=>t.slice(0,3))),this.ptrs=t),this}};const J=Object.assign({},{toLowerCase:function(){return this.termList().forEach((t=>{t.text=t.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((t=>{t.text=t.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))),n!==t.length-1&&(e.post="")}))})),this}},N,q,D,U,Q,H,K);var X=function(t){Object.assign(t.prototype,J)};const Y={id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t))),n[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const rt=/'/,ot=new Set(["what","how","when","where","why"]),it=new Set(["be","go","start","think","need"]),st=new Set(["been","gone"]);var lt=function(t,e){let n=t[e].normal.split(rt)[0];if(ot.has(n))return[n,"did"];if(t[e+1]){if(st.has(t[e+1].normal))return[n,"had"];if(it.has(t[e+1].normal))return[n,"would"]}return null};var at=function(t,e){if("ain't"===t[e].normal||"aint"===t[e].normal)return null;return[t[e].normal.replace(/n't/,""),"not"]};const ct=/'/;var ut=(t,e)=>["je",t[e].normal.split(ct)[1]],ht=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ft=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,dt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,mt=/^[0-9]{3}-[0-9]{4}$/;var gt=function(t,e){let n=t[e],r=n.text.match(pt);return null!==r?!0===n.tags.has("PhoneNumber")||mt.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(dt),null!==r?[r[1],"to",r[4]]:null)};const wt=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,vt=new Set(["st","nd","rd","th","am","pm","max"]);var yt=function(t,e){let n=t[e].text.match(wt);if(null!==n){let t=n[2].toLowerCase().trim();return vt.has(t)?null:[n[1],t]}return null};const bt=/'/,xt=/^[0-9][^-–—]*[-–—].*?[0-9]/,jt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]]},Et={t:(t,e)=>at(t,e),d:(t,e)=>lt(t,e)},Ot={j:(t,e)=>ut(t,e),l:(t,e)=>ht(t,e),d:(t,e)=>ft(t,e)},kt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===bt.test(r[l].normal)&&([a,c]=r[l].normal.split(bt));let u=kt(i,r[l],a,c);!u&&Et.hasOwnProperty(c)&&(u=Et[c](r,l,e)),!u&&Ot.hasOwnProperty(a)&&(u=Ot[a](r,l)),u?(u=Pt(u,t),nt(n,[s,l],u),jt(n[s],t,l,u.length)):xt.test(r[l].normal)?(u=gt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),jt(n[s],t,l,u.length))):(u=yt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}}))};var St={model:et,compute:{contractions:_t},hooks:["contractions"]};var At=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t)));if(t){return i([l],s[t],n,!1,"1-lexicon-alias"),!0}}if(!0===$t.test(a)){let t=a.replace($t,"");if(s.hasOwnProperty(t)&&t.length>3&&Tt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null};var zt={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}};var Lt={addWords:function(t){const e=this.world(),{methods:n,model:r}=e;if(t)if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}};var Vt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Nt}},compute:zt,lib:Lt,hooks:["lexicon"]};var qt=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map((t=>t.text.toLowerCase()))}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const Ft=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const Bt=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1),t;return t};var Ut=function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Bt(t.goNext,void 0),t.failTo=Bt(t.failTo,0),t.endAs=Bt(t.endAs,null),t};const Mt={buildTrie:function(t){const e=qt(t,this.world());return Ut(e)}};Mt.compile=Mt.buildTrie;var Wt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:qt(t,this.world));var r;let o=Dt(this,n,e);return o=o.settle(),o}},lib:Mt};const Rt=function(t,e){return e?(t.forEach((t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])})),t):t},It=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Rt(n,e),Object.keys(r).forEach((t=>{r[t]=Rt(r[t],e)})),{ptrs:n,byGroup:r}},Qt=t=>"[object Object]"===Object.prototype.toString.call(t),Zt=t=>t&&Qt(t)&&!0===t.isView,Ht=t=>t&&Qt(t)&&!0===t.isNet,Kt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Jt={matchOne:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t).eq(0);if(Ht(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t);if(Ht(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Kt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Zt(t)){return t.fullPointer.length>0}if(Ht(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.filter((e=>e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Zt(t))return this.filter((e=>!e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Kt(t,n,this.world);let i=this._cache||[],s=this.filter(((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length}));return this._cache&&(s._cache=s.ptrs.map((t=>i[t[0]]))),s}};var Xt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?1:-1))[0];e[1]>0&&o.push([e[0],0,e[1]])}));let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?-1:1))[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}})),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach(((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}})),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Yt=function(t,e){return[t[0],t[1],e[2]]},te=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},ee=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},ne={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Yt(t.match,t.after)):(i.push(t.match),i.push(t.after))})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(Yt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)}};ne.split=ne.splitAfter;var re=ne;const oe=Object.assign({},Jt,Xt,re);oe.lookBehind=oe.before,oe.lookBefore=oe.before,oe.lookAhead=oe.after,oe.lookAfter=oe.after,oe.notIf=oe.ifNo;var ie=function(t){Object.assign(t.prototype,oe)};const se=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,le=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ae=/ /g,ce=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),ue=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))};var he=function(t){let e=t.split(se),n=[];e.forEach((t=>{ce(t)?n.push(t):n=n.concat(t.split(le))})),n=ue(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ce(t)?r.push(t):r=r.concat(t.split(ae))})),r=ue(r),r};const fe=/\{([0-9]+)?(, *[0-9]*)?\}/,pe=/&&/,de=new RegExp(/^<\s*(\S+)\s*>/),me=t=>t.charAt(0).toUpperCase()+t.substring(1),ge=t=>t.charAt(t.length-1),we=t=>t.charAt(0),ve=t=>t.substring(1),ye=t=>t.substring(0,t.length-1),be=function(t){return t=ve(t),t=ye(t)},xe=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ge(t)&&(n.end=!0,t=ye(t)),"^"===we(t)&&(n.start=!0,t=ve(t)),("["===we(t)||"]"===ge(t))&&(n.group=null,"["===we(t)&&(n.groupStart=!0),"]"===ge(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===we(t))){const e=de.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ge(t)&&(n.greedy=!0,t=ye(t)),"*"!==t&&"*"===ge(t)&&"\\*"!==t&&(n.greedy=!0,t=ye(t)),"?"===ge(t)&&(n.optional=!0,t=ye(t)),"!"===we(t)&&(n.negative=!0,t=ve(t)),"~"===we(t)&&"~"===ge(t)&&t.length>2&&(t=be(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===we(t)&&")"===ge(t)){pe.test(t)?(n.choices=t.split(pe),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ve(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ye(n.choices[r]),n.choices=n.choices.map((t=>t.trim())),n.choices=n.choices.filter((t=>t)),n.choices=n.choices.map((t=>t.split(/ /g).map((t=>xe(t,e))))),t=""}if("/"===we(t)&&"/"===ge(t))return t=be(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===we(t)&&"}"===ge(t)){if(t=be(t),n.id=t,n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.num=t[2])}return n}if("<"===we(t)&&">"===ge(t))return t=be(t),n.chunk=me(t),n.greedy=!0,n;if("%"===we(t)&&"%"===ge(t))return t=be(t),n.switch=t,n}return!0===fe.test(t)&&(t=t.replace(fe,((t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===we(t)?(n.tag=ve(t),n.tag=me(n.tag),n):"@"===we(t)?(n.method=ve(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var je=xe;const Ee=/[a-z0-9][-–—][a-z]/i;var Oe=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&Ee.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter((t=>t)).reverse(),t.splice(e,1),o.forEach((n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)}))}}return t};const ke=function(t,e){let{all:n}=e.methods.two.transform.verb||{},r=t.root;return n?n(r,e.model):[]},Pe=function(t,e){let{all:n}=e.methods.two.transform.noun||{};return n?n(t.root,e.model):[t.root]},_e=function(t,e){let{all:n}=e.methods.two.transform.adjective||{};return n?n(t.root,e.model):[t.root]};var Se=function(t,e){return t=t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform){let n=[];t.pos?"Verb"===t.pos?n=n.concat(ke(t,e)):"Noun"===t.pos?n=n.concat(Pe(t,e)):"Adjective"===t.pos&&(n=n.concat(_e(t,e))):(n=n.concat(ke(t,e)),n=n.concat(Pe(t,e)),n=n.concat(_e(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t}))};var Ae=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach((e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)})),t)))}(t=t.map((t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every((t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method}))&&(t.fastOr=new Set,t.choices.forEach((e=>{t.fastOr.add(e[0].word)})),delete t.choices)}return t}))),t};var $e=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=he(t);return r=r.map((t=>je(t,e))),r=Oe(r,n),r=Se(r,n),r=Ae(r),r};const Te=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var Ce=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),Ge=(t,e)=>-1!==t.pre.indexOf(e),De={hasQuote:t=>Ne.test(t.pre)||Le.test(t.post),hasComma:t=>Fe(t,","),hasPeriod:t=>!0===Fe(t,".")&&!1===Fe(t,"..."),hasExclamation:t=>Fe(t,"!"),hasQuestionMark:t=>Fe(t,"?")||Fe(t,"¿"),hasEllipses:t=>Fe(t,"..")||Fe(t,"…")||Ge(t,"..")||Ge(t,"…"),hasSemicolon:t=>Fe(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>Ve.test(t.post)||Ve.test(t.pre),hasDash:t=>qe.test(t.post)||qe.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};De.hasQuotation=De.hasQuote;var Be=De;let Ue=function(){};Ue=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(ze(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some((t=>t===e.word)))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof Be[e.method]&&!0===Be[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.pos&&!t.tags.has(e.pos)?null:e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Ue(t,e,n,r))):e.choices.some((e=>Ue(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};var Me=Ue;const We=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max)return t.t=t.t+n.max,!0;if(!0===t.hasGroup){Re(t,t.t).length=r-t.t}return t.t=r,!0};const Qe=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Me(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every(((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Me(t.terms[r],e,r,t.phrase_length)}));return!0===r&&n.length>e&&(e=n.length),r}))&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup){Re(t,t.t).length+=r}if(!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null};var Ke=function(t,e,n){let r=0;for(let o=t.t;or)&&(t.t+=r,!0))};var Je=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,Me(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];if(n){if(Me(t.terms[t.t],n,t.start_i+t.t,t.phrase_length))t.r+=1;else if(n.optional&&e[t.r+2]){Me(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2)}}}return n.greedy?Ke(t,r,e[t.r+1]):(t.t+=1,!0)};var Xe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Me(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Me(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}};var Ye=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null};var tn=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}};var en=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;if(n.optional&&e[t.r+1]&&n.negative)return!0;if(n.optional&&e[t.r+1]&&Xe(t),r.implicit&&t.terms[t.t+1]&&tn(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Ye(t))return null}return!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Re(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0};var nn=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional)))break;return null}if(!0!==t.anything||!0!==t.greedy)if(void 0===t.choices||"or"!==t.operator)if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything)if(!0!==We(t,o))if(t.negative){if(!Je(o))return null}else if(!0!==Me(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else{if(!en(o))return null}else{if(!en(o))return null}else{if(t.negative&&t.anything)return null;if(!en(o))return null}else{if(!He(o))return null}else{if(!Ze(o))return null}else{if(!Ie(o))return null}}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach((t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]})),{pointer:i,groups:s}};var rn=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach((t=>{t.groups[e]&&n.push(t.groups[e])})):t.forEach((t=>{n.push(t.pointer),Object.keys(t.groups).forEach((e=>{r[e]=r[e]||[],r[e].push(t.groups[e])}))}))),{ptrs:n,byGroup:r}};const on=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach((n=>{t.groups[n][0]=e})),t},sn=function(t,e,n){let r=nn(t,e,0,t.length);return r?(r=on(r,n),r):null};var ln=function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter((t=>!0!==t.optional&&!0!==t.negative)).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=sn(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter((e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]}))),s=rn(s,o),s.ptrs.forEach((e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id})),s};var an={api:ie,methods:{one:{termMethods:Be,parseMatch:$e,match:ln}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const cn=/^\../,un=/^#./,hn=function(t,e){let n={},r={};return Object.keys(e).forEach((o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),cn.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach((t=>{if(t.every((t=>t.implicit)))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)}))})),{starts:n,ends:r}};var fn={html:function(t){let{starts:e,ends:n}=hn(this,t),r="";return this.docs.forEach((t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(dn,""),gn.test(o)&&(o=" "),o=o.replace(mn,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(dn,""),o="-"===o?" ":o.replace(pn,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&wn.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var bn=yn;let xn=[],jn=0;for(;jn<64;)xn[jn]=0|4294967296*Math.sin(++jn%Math.PI);function En(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(jn=s=0;jn>4]+xn[s]+~~i[jn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const On={text:!0,terms:!0};let kn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Pn=function(t,e){return Object.assign({},t,e)},_n={text:t=>vn(t,{keepPunct:!0},!1),normal:t=>vn(t,Pn(bn.normal,{keepPunct:!0}),!1),implicit:t=>vn(t,Pn(bn.implicit,{keepPunct:!0}),!1),machine:t=>vn(t,kn,!1),root:t=>vn(t,Pn(kn,{form:"root"}),!1),hash:t=>En(vn(t,{keepPunct:!0},!1)),offset:t=>{let e=_n.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map((t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e})),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some((t=>!0===t.dirty))};_n.sentences=_n.sentence,_n.clean=_n.normal,_n.reduced=_n.root;const Sn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},On,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&_n[i]&&(o[i]=_n[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};Sn.data=Sn.json;var An=Sn;var $n=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach((t=>{console.groupCollapsed(t.text());let e=t.docs[0].map((t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}}));console.table(e,["text","tags"]),console.groupEnd()}))};var Tn={green:t=>""+t+"",red:t=>""+t+"",blue:t=>""+t+"",magenta:t=>""+t+"",cyan:t=>""+t+"",yellow:t=>""+t+"",black:t=>""+t+"",dim:t=>""+t+"",i:t=>""+t+""};var Cn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(Tn.blue("\n ──────")),e.forEach((t=>{console.log(Tn.blue("\n ┌─────────")),t.forEach((t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=Tn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=Tn.blue(" │ ")+Tn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map((t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return Tn[n](t)}))),t.join(", ")}(e,n);console.log(i)}))}))};var zn=function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(Tn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(Tn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(Tn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(Tn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")}))};var Nn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),Object.keys(e).forEach((n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach(((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${Tn.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)}))};var Ln=function(t={}){let e=this;if("string"==typeof t){let e={};e[t]=!0,t=e}return"undefined"!=typeof window&&window.document?($n(e),e):(!1!==t.tags&&(Cn(e),console.log("\n")),!0===t.chunks&&(zn(e),console.log("\n")),!0===t.highlight&&(Nn(e),console.log("\n")),e)};const Vn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var qn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach((r=>{t.match(r).fullPointer.forEach((t=>{n[t[3]]={fn:e[r],end:t[2]}}))})),n}(t,e),r="";return t.docs.forEach(((e,o)=>{for(let i=0;it.reduce(((t,e)=>t+e.pre+e.text+e.post),"").trim()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.sort(((t,e)=>t.count>e.count?-1:0))}(this.json({normal:!0}).map((t=>t.normal)));if("terms"===t){let t=[];return this.docs.forEach((e=>{let n=e.terms.map((t=>t.text));n=n.filter((t=>t)),t=t.concat(n)})),t}return"tags"===t?this.docs.map((t=>t.reduce(((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t)),{}))):"debug"===t?this.debug():this.text()}};var Gn=Fn;var Dn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&bn.hasOwnProperty(t)?e=Object.assign({},bn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},Rn=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e};var In=function(t,e){let n=Rn(e),r=[];return t.forEach((t=>{let[e]=t,o=n[e]||[];if(o=o.filter((e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e))),0===o.length)return void r.push({passthrough:t});o=o.sort(((t,e)=>t[1]-e[1]));let i=t;o.forEach(((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)}))})),r};var Qn=function(t,e){let n=[];return t.forEach(((r,o)=>{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<20;r+=1){if(e[n-r]){let o=e[n-r].findIndex((e=>e.id===t));if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex((e=>e.id===t));if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex((t=>t.id===o));return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))})),n=n.filter((t=>t.length>0)),n};var Zn={one:{termList:function(t){let e=[];for(let n=0;n{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter((e=>Wn(t,e)));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach((t=>{t[1]n&&(n=t[2])})),[t[0][0],e,n]}(n);o.push(i)})),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)})),n};var Jn=function(t,e){let n=Rn(e),r=[];return t.forEach((t=>{let e=n[t[0]]||[];e=e.filter((e=>Wn(t,e))),0!==e.length&&e.forEach((e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},Yn=function(t,e){return t.map((t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t}))},tr={union:function(t){t=Xn(t,this);let e=Hn(this.fullPointer,t.fullPointer);return e=Yn(e,this.document),this.toView(e)}};tr.and=tr.union,tr.intersection=function(t){t=Xn(t,this);let e=Jn(this.fullPointer,t.fullPointer);return e=Yn(e,this.document),this.toView(e)},tr.not=function(t){t=Xn(t,this);let e=Kn(this.fullPointer,t.fullPointer);return e=Yn(e,this.document),this.toView(e)},tr.difference=tr.not,tr.complement=function(){let t=this.all(),e=Kn(t.fullPointer,this.fullPointer);return e=Yn(e,this.document),this.toView(e)},tr.settle=function(){let t=this.fullPointer;return t.forEach((e=>{t=Hn(t,[e])})),t=Yn(t,this.document),this.update(t)};var er=function(t){Object.assign(t.prototype,tr)},nr={methods:Zn,api:er};var rr=function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t}));let s=i.map((t=>t.pointer));return i=i.map((t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t))),{view:this.update(s),found:i}}};const or=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var ir=function(t,e){const n=e.methods.one.parseMatch;return t.forEach((t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach((t=>{e.push(or(t)),"and"===t.operator&&t.choices&&t.choices.forEach((t=>{t.forEach((t=>{e.push(or(t))}))}))})),e.filter((t=>t))}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach((t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach((t=>{e.push(t)})),t.choices&&t.choices.forEach((t=>{t.forEach((t=>{let n=or(t);n&&e.push(n)}))})),n+=1)})),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter((t=>!t.optional)).length})),t};var sr=function(t,e){t=ir(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=n[e]||[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=n[e]||[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>!e[t.match]&&(e[t.match]=!0,!0)))}));let r=t.filter((t=>0===t.needs.length&&0===t.wants.length));return{hooks:n,always:r}};var lr=function(t,e){return t.map(((n,r)=>{let o=[];Object.keys(e).forEach((n=>{t[r].has(n)&&(o=o.concat(e[n]))}));let i={};return o=o.filter((t=>!i[t.match]&&(i[t.match]=!0,!0))),o}))};var ar=function(t,e){return t.map(((t,n)=>{let r=e[n];return t=(t=(t=t.filter((t=>t.needs.every((t=>r.has(t)))))).filter((t=>void 0===t.ifNo||!0!==t.ifNo.some((t=>r.has(t)))))).filter((t=>{if(0===t.wants.length)return!0;return t.wants.filter((t=>r.has(t))).length>=t.minWant}))}))};var cr=function(t,e,n,r,o){let i=[];for(let n=0;n0&&(a.ptrs.forEach((t=>{t[0]=n;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),i.push(e)})),!0===o.matchOne))return[i[0]]}return i};var ur=function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=lr(o,e.hooks);return i=ar(i,o),e.always.length>0&&(i=i.map((t=>t.concat(e.always)))),i=function(t,e){return t.map(((t,n)=>{let r=e[n].length;return t=t.filter((t=>r>=t.minWords)),t}))}(i,t),cr(i,t,o,n,r)};var hr=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===hr(c,t.tag,r))return;if("-"===c[c.length-1].post)return}if(void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),"Noun"===t.tag)){let e=c[c.length-1];a(e.text)?s([e],"Plural",n,t.safe,"quick-plural"):s([e],"Singular",n,t.safe,"quick-singular")}void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach((e=>e.chunk=t.chunk))}))},pr={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:rr,methods:{one:{buildNet:sr,bulkMatch:ur,bulkTagger:fr}}};const dr=/ /,mr=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},gr=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map((t=>t.text||"["+t.implicit+"]")).join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if("string"==typeof e)if(e=e.trim(),dr.test(e))!function(t,e,n,r){let o=e.split(dr);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),gr(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nwr(t,e,n,r)))};var vr=wr;var yr=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach((t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map((t=>t.trim())).filter((t=>t)),e=e.map((t=>br({id:t}))),e}return[br({id:t})]}(t))})),n=n.filter((t=>t));let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach((n=>{e&&e(t,n),r.push(n)}))}return n},Or=t=>"[object Array]"===Object.prototype.toString.call(t),kr=t=>(t=t||"").trim(),Pr=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||xr.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:jr(t)})}));let r=function(t){let e={children:[]};return t.forEach(((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t}));let n=br({});return t.forEach((t=>{if((t=br(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)})),n}(t):(Er(e=t).forEach(br),e);var e},_r=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Er(t).forEach(((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"})),r},Sr=function(t){let e=Er(t);e.forEach((t=>{delete(t=Object.assign({},t)).children}));let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},Ar={text:_r,txt:_r,array:Sr,flat:Sr},$r=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(_r(t,!0)),null):Ar.hasOwnProperty(e)?Ar[e](t):t},Tr=t=>{Er(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},Cr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=kr(t),!Cr.test(t)){let e=this.json.children.find((e=>e.id===t));return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]));if(!r)return null;t=r}return t})(this.json,t)||br({});return new g(e)}add(t,e={}){if(Or(t))return t.forEach((t=>this.add(kr(t),e))),this;t=kr(t);let n=br({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=kr(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return Er(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=Er(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))})),n={};e.forEach((t=>{t.id&&(n[t.id]=t)})),e.forEach((t=>{t._cache.parents.forEach((e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)}))})),t._cache.children=Object.keys(n)})(this.json),this}list(){return Er(this.json)}fillDown(){var t;return t=this.json,Er(t,((t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach((n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else Or(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){Tr(this.json);let t=Er(this.json),e=t.length>1?1:0;return t.forEach((t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)})),e}out(t){return Tr(this.json),$r(this.json,t)}debug(){return Tr(this.json),$r(this.json,"debug"),this}}const zr=function(t){let e=Pr(t);return new g(e)};zr.prototype.plugin=function(t){t(this)};var Nr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Lr=function(t){if(Nr.hasOwnProperty(t.id))return Nr[t.id];if(Nr.hasOwnProperty(t.is))return Nr[t.is];let e=t._cache.parents.find((t=>Nr[t]));return Nr[e]};var Vr=function(t){const e={};return t.forEach((t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:Lr(t)}})),Object.keys(e).forEach((t=>{let n=new Set(e[t].not);e[t].not.forEach((t=>{e[t]&&e[t].children.forEach((t=>n.add(t)))})),e[t].not=Array.from(n)})),e};const qr=function(t){return t?"string"==typeof t?[t]:t:[]};var Fr=function(t,e){return t=function(t,e){return Object.keys(t).forEach((n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))})),t}(t,e),Object.keys(t).forEach((e=>{t[e].children=qr(t[e].children),t[e].not=qr(t[e].not)})),Object.keys(t).forEach((e=>{(t[e].not||[]).forEach((n=>{t[n]&&t[n].not&&t[n].not.push(e)}))})),t};var Gr=function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach((e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0})),t}(t)),t=Fr(t,e);const n=function(t){const e=Object.keys(t).map((e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}}));return zr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return Vr(n)},Dr={one:{setTag:vr,unTag:yr,addTags:Gr}};const Br=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Ur={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),Br(t)?t.forEach((t=>o.one.setTag(r,t,s,n,e))):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return Br(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach(((t,e)=>{t.forEach(((t,o)=>{n.find((e=>t.tags.has(e)))&&r.push([e,o,o+1])}))}));let o=this.update(r);return this.difference(o)}};var Mr=Ur;var Wr=function(t){Object.assign(t.prototype,Mr)};var Rr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const Ir=new Set(["Auxiliary","Possessive"]);var Qr=function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach((t=>{t.forEach((t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t=t.sort(((t,n)=>{if(Ir.has(t)||!e.hasOwnProperty(n))return 1;if(Ir.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))},Zr={model:{one:{tagSet:{}}},compute:{tagRank:Qr},methods:Dr,api:Wr,lib:Rr};const Hr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Kr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Jr=/((?:\r?\n|\r)+)/;var Xr=function(t){let e=[],n=t.split(Jr);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const ro={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},oo=RegExp("("+Object.keys(ro).join("|")+")","g"),io=RegExp("("+Object.values(ro).join("|")+")","g"),so=function(t){if(!t)return!1;let e=t.match(io);return null!==e&&1===e.length};var lo=function(t){let e=[];for(let n=0;n(t[e]=!0,t)),{});var Oo=function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(jo);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=yo(n),n=wo(n),n=n.filter((t=>t)),n};let ko=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Po=new RegExp(`^[${["%","_"].join("")}]+`,"");const _o=/[\p{Punctuation}\s]+$/u,So=/^[\p{Punctuation}\s]+/u,Ao=/['’]/,$o=/^[a-z]\.([a-z]\.)+/i,To=/^'[0-9]{2}/;var Co=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(So,(e=>{let r=e.match(ko);return r?(n=e.replace(ko,""),r):"'"===n&&To.test(t)?(n="",e):(n=e,"")}))).replace(_o,(o=>{let i=o.match(Po);return i?(r=o.replace(Po,""),i):Ao.test(o)&&/[sn]['’]$/.test(e)&&!1===Ao.test(n)?(r=r.replace(Ao,""),"'"):!0===$o.test(t)?(r=o.replace(/^\./,""),"."):(r=o,"")})))&&(e=e.replace(/ *$/,(t=>(r=t||"",""))),t=e,n=""),{str:t,pre:n,post:r}};var zo=function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach(((t,e)=>{n[t]&&(r[e]=n[t])})),r.join("")};var No=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Lo=/([A-Z]\.)+[A-Z]?,?$/,Vo=/^[A-Z]\.,?$/,qo=/[A-Z]{2,}('s|,)?$/,Fo=/([a-z]\.)+[a-z]\.?$/;var Go=function(t){return function(t){return!0===Lo.test(t)||!0===Fo.test(t)||!0===Vo.test(t)||!0===qo.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Do=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=No(r),r=n(r,e),r=Go(r),t.normal=r};var Bo=function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map(s),n.forEach((t=>{Do(t,e)})),n})),t};const Uo=/[ .][A-Z]\.? *$/i,Mo=/(?:\u2026|\.{2,}) *$/,Wo=/\p{L}/u,Ro=/^[A-Z]\. $/;var Io={one:{killUnicode:zo,tokenize:{splitSentences:po,isSentence:function(t,e){if(!1===Wo.test(t))return!1;if(!0===Uo.test(t))return!1;if(3===t.length&&Ro.test(t))return!1;if(!0===Mo.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)},splitTerms:Oo,splitWhitespace:t=>{let{str:e,pre:n,post:r}=Co(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:Bo}}};var Qo={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Zo={},Ho={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((t=>{t[0].forEach((e=>{Zo[e]=!0,Ho[e]="Abbreviation",void 0!==t[1]&&(Ho[e]=[Ho[e],t[1]])}))}));var Ko=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((t,e)=>(t[e]=!0,t)),{});let Jo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Xo={};Object.keys(Jo).forEach((function(t){Jo[t].split("").forEach((function(e){Xo[e]=t}))}));const Yo=/\//,ti=/[a-z]\.[a-z]/i,ei=/[0-9]/;var ni=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),Yo.test(n)&&!ti.test(n)&&!ei.test(n)){let e=n.split(Yo);e.length<=2&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t};const ri=/^\p{Letter}+-\p{Letter}+$/u;var oi=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),ri.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var ii=function(t){let e=t.docs,n={};for(let t=0;tci(t,ni),machine:t=>ci(t,oi),normal:t=>ci(t,Do),freq:ii,offset:si,index:li,wordCount:ai},methods:Io,model:{one:{aliases:Qo,abbreviations:Zo,prefixes:Ko,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Ho,unicode:Xo}},hooks:["alias","machine","index","id"]};var hi={typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}};const fi=function(){const t=this.docs;if(0===t.length)return this;let e=t[t.length-1]||[],n=e[e.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var pi=function(t){t.prototype.autoFill=fi};var di=function(t,e,n){let r={},o=[],i=n.prefixes||{};return t.forEach((t=>{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]})),r};const mi={safe:!0,min:3};var gi={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},mi,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=di(t,e,this.world());return Object.keys(o).forEach((t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]})),this}};var wi={model:{one:{typeahead:{}}},api:pi,lib:gi,compute:hi,hooks:["typeahead"]};w.extend(tt),w.extend(Mn),w.extend(an),w.extend(nr),w.extend(Zr),w.plugin(St),w.extend(ui),w.plugin(x),w.extend(Wt),w.extend(wi),w.extend(Vt),w.extend(pr);export{w as default}; diff --git a/builds/three/compromise-three.cjs b/builds/three/compromise-three.cjs index a8ef68e8d..80b42fe98 100644 --- a/builds/three/compromise-three.cjs +++ b/builds/three/compromise-three.cjs @@ -1 +1 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var p=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let m=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=p(e,l,m);return e&&n.compute(m.hooks),n};Object.defineProperty(f,"_world",{value:m,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=p(e,l,m);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},j=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},x=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?j(n):(j(n),j([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!k(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||k(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var T=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const G=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},C=e=>"[object Array]"===Object.prototype.toString.call(e),D=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:C(e)?C(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=T(e),e)))}(d),n?(G(t.update([u]).firstTerm()),N(h,u,d,r)):(G(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var $=z,F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=F(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const W={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};W.deHyphenate=W.dehyphenate,W.toQuotation=W.toQuotations;var M=W,J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var _={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}},Q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,H,M,U,_,Q);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(pe);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ke=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},je={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},xe=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=xe(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&je.hasOwnProperty(l)&&(c=je[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),ke(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ke(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]},Te=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Ge.test(l)){let e=l.replace(Ge,"");if(i.hasOwnProperty(e)&&e.length>3&&Ce.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Oe,lib:Be,hooks:["lexicon"]},$e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const We=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=We(e.goNext,void 0),e.failTo=We(e.failTo,0),e.endAs=We(e.endAs,null),e};const Je={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};Je.compile=Je.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Je};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Qe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Qe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Qe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,pt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){pt.test(e)?(n.choices=e.split(pt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var kt=Pt;const At=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e},xt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform&&t.methods.two.transform.verbConjugate){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform;if(!n)return[];let r=n(e.root,t.model);return delete r.FutureTense,Object.values(r).filter((e=>e))}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,r=[e.root];return n?(r.push(n(e.root,t.model)),r):r}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:a}=t.methods.two.transform,o=[e.root];return n&&r&&a?(o.push(n(e.root,t.model)),o.push(r(e.root,t.model)),o.push(a(e.root,t.model)),o):o}(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e})),e},Nt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Et=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>kt(e,t))),r=jt(r,n),r=xt(r,n),r=Nt(r),r};const It=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Tt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),zt=(e,t)=>-1!==e.pre.indexOf(t),$t={hasQuote:e=>Ct.test(e.pre)||Dt.test(e.post),hasComma:e=>Bt(e,","),hasPeriod:e=>!0===Bt(e,".")&&!1===Bt(e,"..."),hasExclamation:e=>Bt(e,"!"),hasQuestionMark:e=>Bt(e,"?")||Bt(e,"¿"),hasEllipses:e=>Bt(e,"..")||Bt(e,"…")||zt(e,"..")||zt(e,"…"),hasSemicolon:e=>Bt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ot.test(e.post)||Ot.test(e.pre),hasDash:e=>Vt.test(e.post)||Vt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};$t.hasQuotation=$t.hasQuote;var Ft=$t;let St=function(){};St=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Gt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Ft[t.method]&&!0===Ft[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>St(e,t,n,r))):t.choices.some((t=>St(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Ht=St;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Mt(e,e.t).length=r-e.t),e.t=r,!0)};const Lt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Ht(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Ht(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Mt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Ut=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Rt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Ht(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Ht(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Ht(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Ut(e,r,t[e.r+1]):(e.t+=1,!0)},_t=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Ht(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Ht(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Qt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},Zt=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&_t(e),r.implicit&&e.terms[e.t+1]&&Zt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Qt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Mt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},Xt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Wt(e,a)){if(e.negative){if(!Rt(a))return null}else if(!0!==Ht(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!Yt(a))return null}else if(!Yt(a))return null}else{if(e.negative&&e.anything)return null;if(!Yt(a))return null}else if(!Kt(a))return null}else if(!qt(a))return null}else if(!Jt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},en=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const tn=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},nn=function(e,t,n){let r=Xt(e,t,0,e.length);return r?(r=tn(r,n),r):null};var rn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=nn(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=en(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},an={api:ot,methods:{one:{termMethods:Ft,parseMatch:Et,match:rn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const on=/^\../,sn=/^#./,ln=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),on.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var un={html:function(e){let{starts:t,ends:n}=ln(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(hn,""),pn.test(a)&&(a=" "),a=a.replace(dn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(hn,""),a="-"===a?" ":a.replace(cn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&mn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},fn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};fn.clean=fn.normal,fn.reduced=fn.root;var vn=fn;let bn=[],yn=0;for(;yn<64;)bn[yn]=0|4294967296*Math.sin(++yn%Math.PI);function wn(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(yn=i=0;yn>4]+bn[i]+~~o[yn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const Pn={text:!0,terms:!0};let kn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const An=function(e,t){return Object.assign({},e,t)},jn={text:e=>gn(e,{keepPunct:!0},!1),normal:e=>gn(e,An(vn.normal,{keepPunct:!0}),!1),implicit:e=>gn(e,An(vn.implicit,{keepPunct:!0}),!1),machine:e=>gn(e,kn,!1),root:e=>gn(e,An(kn,{form:"root"}),!1),hash:e=>wn(gn(e,{keepPunct:!0},!1)),offset:e=>{let t=jn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};jn.sentences=jn.sentence,jn.clean=jn.normal,jn.reduced=jn.root;const xn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Pn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&jn[o]&&(a[o]=jn[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};xn.data=xn.json;var Nn=xn,En=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const In="";var Tn={green:e=>""+e+In,red:e=>""+e+In,blue:e=>""+e+In,magenta:e=>""+e+In,cyan:e=>""+e+In,yellow:e=>""+e+In,black:e=>""+e+In,dim:e=>""+e+In,i:e=>""+e+In},Gn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Tn.blue("\n ──────")),t.forEach((e=>{console.log(Tn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Tn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Tn.blue(" │ ")+Tn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Tn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Cn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Tn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Tn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Tn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Tn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Dn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Tn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},On=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(En(t),t):(!1!==e.tags&&(Gn(t),console.log("\n")),!0===e.chunks&&(Cn(t),console.log("\n")),!0===e.highlight&&(Dn(t),console.log("\n")),t)};const Vn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Bn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var $n=zn,Fn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&vn.hasOwnProperty(e)?t=Object.assign({},vn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Jn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Ln=function(e,t){let n=Jn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},qn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},Kn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Mn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},_n=function(e,t){let n=Jn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Mn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Zn=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},Yn={union:function(e){e=Qn(e,this);let t=Un(this.fullPointer,e.fullPointer);return t=Zn(t,this.document),this.toView(t)}};Yn.and=Yn.union,Yn.intersection=function(e){e=Qn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=Zn(t,this.document),this.toView(t)},Yn.not=function(e){e=Qn(e,this);let t=Rn(this.fullPointer,e.fullPointer);return t=Zn(t,this.document),this.toView(t)},Yn.difference=Yn.not,Yn.complement=function(){let e=this.all(),t=Rn(e.fullPointer,this.fullPointer);return t=Zn(t,this.document),this.toView(t)},Yn.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Un(e,[t])})),e=Zn(e,this.document),this.update(e)};var Xn=function(e){Object.assign(e.prototype,Yn)},er={methods:Kn,api:Xn},tr=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const nr=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var rr=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(nr(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(nr(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=nr(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},ar=function(e,t){e=rr(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},or=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},ir=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>t[n].has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},sr=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach((e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)})),!0===r.matchOne))return[a[0]]}return a},lr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=or(a,t.hooks);return o=ir(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),sr(o,e,n,r)},ur=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===ur(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},hr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:tr,methods:{one:{buildNet:ar,bulkMatch:lr,bulkTagger:cr}}};const dr=/ /,pr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},mr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),dr.test(t))!function(e,t,n,r){let a=t.split(dr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),mr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;ngr(e,t,n,r)))};var fr=gr,vr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>br({id:e}))),t}return[br({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},kr=e=>"[object Array]"===Object.prototype.toString.call(e),Ar=e=>(e=e||"").trim(),jr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||yr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:wr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=br({});return e.forEach((e=>{if((e=br(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Pr(t=e).forEach(br),t);var t},xr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Pr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Nr=function(e){let t=Pr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Er={text:xr,txt:xr,array:Nr,flat:Nr},Ir=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(xr(e,!0)),null):Er.hasOwnProperty(t)?Er[t](e):e},Tr=e=>{Pr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Gr=/\//;let Cr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Ar(e),!Gr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Cr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||br({});return new Cr(t)}add(e,t={}){if(kr(e))return e.forEach((e=>this.add(Ar(e),t))),this;e=Ar(e);let n=br({id:e,props:t});return this.json.children.push(n),new Cr(n)}remove(e){return e=Ar(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Pr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Pr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Pr(this.json)}fillDown(){var e;return e=this.json,Pr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else kr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Tr(this.json);let e=Pr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Tr(this.json),Ir(this.json,e)}debug(){return Tr(this.json),Ir(this.json,"debug"),this}};const Dr=function(e){let t=jr(e);return new Cr(t)};Dr.prototype.plugin=function(e){e(this)};var Or={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Vr=function(e){if(Or.hasOwnProperty(e.id))return Or[e.id];if(Or.hasOwnProperty(e.is))return Or[e.is];let t=e._cache.parents.find((e=>Or[e]));return Or[t]};var Br=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:Vr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const zr=function(e){return e?"string"==typeof e?[e]:e:[]};var $r=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=zr(e[t].children),e[t].not=zr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Fr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=$r(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Dr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Br(n)},Sr={one:{setTag:fr,unTag:vr,addTags:Fr}};const Hr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Wr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Hr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Hr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Mr=Wr,Jr=function(e){Object.assign(e.prototype,Mr)},Lr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const qr=new Set(["Auxiliary","Possessive"]);var Kr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(qr.has(e)||!t.hasOwnProperty(n))return 1;if(qr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Ur={model:{one:{tagSet:{}}},compute:{tagRank:Kr},methods:Sr,api:Jr,lib:Lr};const Rr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,_r=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Qr=/((?:\r?\n|\r)+)/;var Zr=function(e){let t=[],n=e.split(Qr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const na={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ra=RegExp("("+Object.keys(na).join("|")+")","g"),aa=RegExp("("+Object.values(na).join("|")+")","g"),oa=function(e){if(!e)return!1;let t=e.match(aa);return null!==t&&1===t.length};var ia=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var ka=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(wa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=va(n),n=ga(n),n=n.filter((e=>e)),n};let Aa=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),ja=new RegExp(`^[${["%","_"].join("")}]+`,"");const xa=/[\p{Punctuation}\s]+$/u,Na=/^[\p{Punctuation}\s]+/u,Ea=/['’]/,Ia=/^[a-z]\.([a-z]\.)+/i,Ta=/^'[0-9]{2}/;var Ga=function(e){let t=e,n="",r="";return e=e.replace(Na,(t=>{let r=t.match(Aa);return r?(n=t.replace(Aa,""),r):"'"===n&&Ta.test(e)?(n="",t):(n=t,"")})),e=e.replace(xa,(a=>{let o=a.match(ja);return o?(r=a.replace(ja,""),o):Ea.test(a)&&/[sn]['’]$/.test(t)&&!1===Ea.test(n)?(r=r.replace(Ea,""),"'"):!0===Ia.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}},Ca=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},Da=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Oa=/([A-Z]\.)+[A-Z]?,?$/,Va=/^[A-Z]\.,?$/,Ba=/[A-Z]{2,}('s|,)?$/,za=/([a-z]\.)+[a-z]\.?$/;var $a=function(e){return function(e){return!0===Oa.test(e)||!0===za.test(e)||!0===Va.test(e)||!0===Ba.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Fa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Da(r),r=n(r,t),r=$a(r),e.normal=r},Sa=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Fa(e,t)})),n})),e};const Ha=/[ .][A-Z]\.? *$/i,Wa=/(?:\u2026|\.{2,}) *$/,Ma=/\p{L}/u,Ja=/^[A-Z]\. $/;var La=function(e,t){if(!1===Ma.test(e))return!1;if(!0===Ha.test(e))return!1;if(3===e.length&&Ja.test(e))return!1;if(!0===Wa.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},qa={one:{killUnicode:Ca,tokenize:{splitSentences:da,isSentence:La,splitTerms:ka,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ga(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Sa}}},Ka={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ua={},Ra={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Ua[t]=!0,Ra[t]="Abbreviation",void 0!==e[1]&&(Ra[t]=[Ra[t],e[1]])}))}));var _a=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Qa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Za={};Object.keys(Qa).forEach((function(e){Qa[e].split("").forEach((function(t){Za[t]=e}))}));const Ya=/\//,Xa=/[a-z]\.[a-z]/i,eo=/[0-9]/;var to=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Ya.test(n)&&!Xa.test(n)&&!eo.test(n)){let t=n.split(Ya);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const no=/^\p{Letter}+-\p{Letter}+$/u;var ro=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),no.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ao=function(e){let t=e.docs,n={};for(let e=0;elo(e,to),machine:e=>lo(e,ro),normal:e=>lo(e,Fa),freq:ao,offset:oo,index:io,wordCount:so},methods:qa,model:{one:{aliases:Ka,abbreviations:Ua,prefixes:_a,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Ra,unicode:Za}},hooks:["alias","machine","index","id"]},co={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const ho=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var po=function(e){e.prototype.autoFill=ho},mo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const go={safe:!0,min:3};var fo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},go,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=mo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},vo={model:{one:{typeahead:{}}},api:po,lib:fo,compute:co,hooks:["typeahead"]};v.extend(ee),v.extend(Wn),v.extend(an),v.extend(er),v.extend(Ur),v.plugin(Ie),v.extend(uo),v.plugin(P),v.extend(Le),v.extend(vo),v.extend(ze),v.extend(hr);var bo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},yo={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const wo=36,Po="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ko=Po.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ao=function(e){if(void 0!==ko[e])return ko[e];let t=0,n=1,r=wo,a=1;for(;n=0;n--,a*=wo){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},jo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=No(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Eo(yo[e]);Co.test(e)?Object.keys(t).forEach((t=>{if(Oo[t]=e,"Noun|Verb"===e){let e=Go(t,Vo);Oo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Do[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Do[e]="Emoticon")),delete Do[""],delete Do.null,delete Do[" "];const Bo="Adjective";var zo={beforeTags:{Determiner:Bo,Possessive:Bo},afterTags:{Adjective:Bo},beforeWords:{seem:Bo,seemed:Bo,seems:Bo,feel:Bo,feels:Bo,felt:Bo,appear:Bo,appears:Bo,appeared:Bo,also:Bo,over:Bo,under:Bo,too:Bo,it:Bo,but:Bo,still:Bo,really:Bo,quite:Bo,well:Bo,very:Bo,deeply:Bo,profoundly:Bo,extremely:Bo,so:Bo,badly:Bo,mostly:Bo,totally:Bo,awfully:Bo,rather:Bo,nothing:Bo,something:Bo,anything:Bo,not:Bo,me:Bo},afterWords:{too:Bo,also:Bo,or:Bo}};const $o="Gerund";var Fo={beforeTags:{Adverb:$o,Preposition:$o,Conjunction:$o},afterTags:{Adverb:$o,Possessive:$o,Person:$o,Pronoun:$o,Determiner:$o,Copula:$o,Preposition:$o,Conjunction:$o,Comparative:$o},beforeWords:{been:$o,keep:$o,continue:$o,stop:$o,am:$o,be:$o,me:$o,began:$o,start:$o,starts:$o,started:$o,stops:$o,stopped:$o,help:$o,helps:$o,avoid:$o,avoids:$o,love:$o,loves:$o,loved:$o,hate:$o,hates:$o,hated:$o},afterWords:{you:$o,me:$o,her:$o,him:$o,them:$o,their:$o,it:$o,this:$o,there:$o,on:$o,about:$o,for:$o}},So={beforeTags:Object.assign({},zo.beforeTags,Fo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},zo.afterTags,Fo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},zo.beforeWords,Fo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},zo.afterWords,Fo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ho="Singular";var Wo={beforeTags:{Determiner:Ho,Possessive:Ho,Acronym:Ho,Noun:Ho,Adjective:Ho,PresentTense:Ho,Gerund:Ho,PastTense:Ho,Infinitive:Ho,Date:Ho},afterTags:{Value:Ho,Modal:Ho,Copula:Ho,PresentTense:Ho,PastTense:Ho,Demonym:Ho},beforeWords:{the:Ho,with:Ho,without:Ho,of:Ho,for:Ho,any:Ho,all:Ho,on:Ho,cut:Ho,cuts:Ho,save:Ho,saved:Ho,saves:Ho,make:Ho,makes:Ho,made:Ho,minus:Ho,plus:Ho,than:Ho,another:Ho,versus:Ho,neither:Ho,favorite:Ho,best:Ho,daily:Ho,weekly:Ho,linear:Ho,binary:Ho,mobile:Ho,lexical:Ho,technical:Ho,computer:Ho,scientific:Ho,formal:Ho},afterWords:{of:Ho,system:Ho,aid:Ho,method:Ho,utility:Ho,tool:Ho,reform:Ho,therapy:Ho,philosophy:Ho,room:Ho,authority:Ho,says:Ho,said:Ho,wants:Ho,wanted:Ho}};const Mo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Jo={beforeTags:Object.assign({},zo.beforeTags,Wo.beforeTags,Mo.beforeTags),afterTags:Object.assign({},zo.afterTags,Wo.afterTags),beforeWords:Object.assign({},zo.beforeWords,Wo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},zo.afterWords,Wo.afterWords)};const Lo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},qo={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ko={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Uo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ro={beforeTags:Object.assign({},zo.beforeTags,Lo),afterTags:Object.assign({},zo.afterTags,qo),beforeWords:Object.assign({},zo.beforeWords,Ko),afterWords:Object.assign({},zo.afterWords,Uo)};const _o="Infinitive";var Qo={beforeTags:{Modal:_o,Adverb:_o,Negative:_o,Plural:_o},afterTags:{Determiner:_o,Adverb:_o,Possessive:_o,Preposition:_o},beforeWords:{i:_o,we:_o,you:_o,they:_o,to:_o,please:_o,will:_o,have:_o,had:_o,would:_o,could:_o,should:_o,do:_o,did:_o,does:_o,can:_o,must:_o,us:_o,me:_o,he:_o,she:_o,it:_o,being:_o},afterWords:{the:_o,me:_o,you:_o,him:_o,her:_o,them:_o,it:_o,a:_o,an:_o,up:_o,down:_o,by:_o,out:_o,off:_o,under:_o,when:_o,all:_o,to:_o,because:_o,although:_o,before:_o,how:_o,otherwise:_o,together:_o,though:_o,yet:_o}};const Zo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Yo={beforeTags:Object.assign({},zo.beforeTags,Qo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},zo.afterTags,Qo.afterTags,Zo.afterTags),beforeWords:Object.assign({},zo.beforeWords,Qo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},zo.afterWords,Qo.afterWords,{to:void 0})};const Xo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ei={},ti={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ni={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ri={beforeTags:Object.assign({},Fo.beforeTags,Wo.beforeTags,Xo),afterTags:Object.assign({},Fo.afterTags,Wo.afterTags,ei),beforeWords:Object.assign({},Fo.beforeWords,Wo.beforeWords,ti),afterWords:Object.assign({},Fo.afterWords,Wo.afterWords,ni)},ai={beforeTags:Object.assign({},Qo.beforeTags,Wo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Qo.afterTags,Wo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Qo.beforeWords,Wo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Qo.afterWords,Wo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const oi="Person";var ii={beforeTags:{Honorific:oi,Person:oi,Preposition:oi},afterTags:{Person:oi,ProperNoun:oi,Verb:oi},ownTags:{ProperNoun:oi},beforeWords:{hi:oi,hey:oi,yo:oi,dear:oi,hello:oi},afterWords:{said:oi,says:oi,told:oi,tells:oi,feels:oi,felt:oi,seems:oi,thinks:oi,thought:oi,spends:oi,spendt:oi,plays:oi,played:oi,sing:oi,sang:oi,learn:oi,learned:oi,wants:oi,wanted:oi}};const si="Month",li={beforeTags:{Date:si,Value:si},afterTags:{Date:si,Value:si},beforeWords:{by:si,in:si,on:si,during:si,after:si,before:si,between:si,until:si,til:si,sometime:si,of:si,this:si,next:si,last:si,previous:si,following:si},afterWords:{sometime:si,in:si,of:si,until:si,the:si}};var ui={beforeTags:Object.assign({},ii.beforeTags,li.beforeTags),afterTags:Object.assign({},ii.afterTags,li.afterTags),beforeWords:Object.assign({},ii.beforeWords,li.beforeWords),afterWords:Object.assign({},ii.afterWords,li.afterWords)};const ci={Place:"Place"},hi={Place:"Place",Abbreviation:"Place"},di={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},pi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let mi="Unit";const gi="Honorific";let fi={first:gi,general:gi,royal:gi,vice:gi,rear:gi,major:gi};const vi={"Adj|Gerund":So,"Adj|Noun":Jo,"Adj|Past":Ro,"Adj|Present":Yo,"Noun|Verb":ai,"Noun|Gerund":ri,"Person|Noun":{beforeTags:Object.assign({},Wo.beforeTags,ii.beforeTags),afterTags:Object.assign({},Wo.afterTags,ii.afterTags),beforeWords:Object.assign({},Wo.beforeWords,ii.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Wo.afterWords,ii.afterWords)},"Person|Date":ui,"Person|Verb":{beforeTags:Object.assign({},ii.beforeTags,Qo.beforeTags),afterTags:Object.assign({},ii.afterTags,Qo.afterTags),beforeWords:Object.assign({},ii.beforeWords,Qo.beforeWords),afterWords:Object.assign({},ii.afterWords,Qo.afterWords)},"Person|Place":{beforeTags:Object.assign({},ci,ii.beforeTags),afterTags:Object.assign({},hi,ii.afterTags),beforeWords:Object.assign({},di,ii.beforeWords),afterWords:Object.assign({},pi,ii.afterWords)},"Unit|Noun":{beforeTags:{Value:mi},afterTags:{},beforeWords:{per:mi,every:mi,each:mi,square:mi,cubic:mi,sq:mi,metric:mi},afterWords:{per:mi,squared:mi,cubed:mi,long:mi}},"Honorific|Noun":{beforeTags:{Honorific:gi,ProperNoun:gi,Ordinal:gi},afterTags:{Person:gi,ProperNoun:gi},beforeWords:Object.assign({},fi,{honorable:gi,honourable:gi,worship:gi,excellency:gi,majesty:gi,right:gi}),afterWords:fi}},bi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};vi["Plural|Verb"]={beforeWords:bi(vi["Noun|Verb"].beforeWords,{}),afterWords:bi(vi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:bi(vi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:bi(vi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yi=vi;const wi="Adjective",Pi="Infinitive",ki="PresentTense",Ai="Singular",ji="PastTense",xi="Adverb",Ni="Plural",Ei="Actor",Ii="Verb",Ti="Noun",Gi="LastName",Ci="Modal",Di="Participle";var Oi=[null,null,{ea:Ai,ia:Ti,ic:wi,ly:xi,"'n":Ii,"'t":Ii},{oed:ji,ued:ji,xed:ji," so":xi,"'ll":Ci,"'re":"Copula",azy:wi,eer:Ti,end:Ii,ped:ji,ffy:wi,ify:Pi,ing:"Gerund",ize:Pi,ibe:Pi,lar:wi,mum:wi,nes:ki,nny:wi,ous:wi,que:wi,rol:Ai,sis:Ai,ogy:Ai,oid:Ai,ian:Ai,zes:ki,eld:ji,ken:Di,ven:Di,ten:Di,ect:Pi,ict:Pi,ign:Pi,ful:wi,bal:wi},{amed:ji,aped:ji,ched:ji,lked:ji,rked:ji,reed:ji,nded:ji,mned:wi,cted:ji,dged:ji,ield:Ai,akis:Gi,cede:Pi,chuk:Gi,czyk:Gi,ects:ki,ends:Ii,enko:Gi,ette:Ai,wner:Ai,fies:ki,fore:xi,gate:Pi,gone:wi,ices:Ni,ints:Ni,ruct:Pi,ines:Ni,ions:Ni,less:wi,llen:wi,made:wi,nsen:Gi,oses:ki,ould:Ci,some:wi,sson:Gi,tion:Ai,tage:Ti,ique:Ai,tive:wi,tors:Ti,vice:Ai,lier:Ai,fier:Ai,wned:ji,gent:Ai,tist:Ai,pist:Ai,rist:Ai,mist:Ai,yist:Ai,vist:Ai,lite:Ai,site:Ai,rite:Ai,mite:Ai,bite:Ai,mate:Ai,date:Ai,ndal:Ai,vent:Ai,uist:Ai,gist:Ai,note:Ai,cide:Ai,wide:wi,vide:Pi,ract:Pi,duce:Pi,pose:Pi,eive:Pi,lyze:Pi,lyse:Pi,iant:wi,nary:wi},{elist:Ai,holic:Ai,phite:Ai,tized:ji,urned:ji,eased:ji,ances:Ni,bound:wi,ettes:Ni,fully:xi,ishes:ki,ities:Ni,marek:Gi,nssen:Gi,ology:Ti,osome:Ai,tment:Ai,ports:Ni,rough:wi,tches:ki,tieth:"Ordinal",tures:Ni,wards:xi,where:xi,archy:Ti,pathy:Ti,opoly:Ti,embly:Ti,phate:Ti,ndent:Ai,scent:Ai,onist:Ai,anist:Ai,alist:Ai,olist:Ai,icist:Ai,ounce:Pi,iable:wi,borne:wi,gnant:wi,inant:wi,igent:wi,atory:wi,rient:Ai,dient:Ai},{auskas:Gi,parent:Ai,cedent:Ai,ionary:Ai,cklist:Ai,keeper:Ei,logist:Ei,teenth:"Value"},{opoulos:Gi,borough:"Place",sdottir:Gi}];const Vi="Adjective",Bi="Noun",zi="Verb";var $i=[null,null,{},{neo:Bi,bio:Bi,"de-":zi,"re-":zi,"un-":zi},{anti:Bi,auto:Bi,faux:Vi,hexa:Bi,kilo:Bi,mono:Bi,nano:Bi,octa:Bi,poly:Bi,semi:Vi,tele:Bi,"pro-":Vi,"mis-":zi,"dis-":zi,"pre-":Vi},{anglo:Bi,centi:Bi,ethno:Bi,ferro:Bi,grand:Bi,hepta:Bi,hydro:Bi,intro:Bi,macro:Bi,micro:Bi,milli:Bi,nitro:Bi,penta:Bi,quasi:Vi,radio:Bi,tetra:Bi,"omni-":Vi,"post-":Vi},{pseudo:Vi,"extra-":Vi,"hyper-":Vi,"inter-":Vi,"intra-":Vi,"deca-":Vi},{electro:Bi}];const Fi="Adjective",Si="Infinitive",Hi="PresentTense",Wi="Singular",Mi="PastTense",Ji="Adverb",Li="Expression",qi="Actor",Ki="Verb",Ui="Noun",Ri="LastName";var _i={a:[[/.[aeiou]na$/,Ui,"tuna"],[/.[oau][wvl]ska$/,Ri],[/.[^aeiou]ica$/,Wi,"harmonica"],[/^([hyj]a+)+$/,Li,"haha"]],c:[[/.[^aeiou]ic$/,Fi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Mi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Mi,"rammed"],[/.[aeiou][sg]hed$/,Mi,"gushed"],[/.[aeiou]red$/,Mi,"hired"],[/.[aeiou]r?ried$/,Mi,"hurried"],[/[^aeiou]ard$/,Wi,"steward"],[/[aeiou][^aeiou]id$/,Fi,""],[/.[vrl]id$/,Fi,"livid"],[/..led$/,Mi,"hurled"],[/.[iao]sed$/,Mi,""],[/[aeiou]n?[cs]ed$/,Mi,""],[/[aeiou][rl]?[mnf]ed$/,Mi,""],[/[aeiou][ns]?c?ked$/,Mi,"bunked"],[/[aeiou]gned$/,Mi],[/[aeiou][nl]?ged$/,Mi],[/.[tdbwxyz]ed$/,Mi],[/[^aeiou][aeiou][tvx]ed$/,Mi],[/.[cdflmnprstv]ied$/,Mi,"emptied"]],e:[[/.[lnr]ize$/,Si,"antagonize"],[/.[^aeiou]ise$/,Si,"antagonise"],[/.[aeiou]te$/,Si,"bite"],[/.[^aeiou][ai]ble$/,Fi,"fixable"],[/.[^aeiou]eable$/,Fi,"maleable"],[/.[ts]ive$/,Fi,"festive"],[/[a-z]-like$/,Fi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Fi,"cornish"],[/.v[iy]ch$/,Ri,"..ovich"],[/^ug?h+$/,Li,"ughh"],[/^uh[ -]?oh$/,Li,"uhoh"],[/[a-z]-ish$/,Fi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Ri,"polish-male"]],k:[[/^(k){2}$/,Li,"kkkk"]],l:[[/.[gl]ial$/,Fi,"familial"],[/.[^aeiou]ful$/,Fi,"fitful"],[/.[nrtumcd]al$/,Fi,"natal"],[/.[^aeiou][ei]al$/,Fi,"familial"]],m:[[/.[^aeiou]ium$/,Wi,"magnesium"],[/[^aeiou]ism$/,Wi,"schism"],[/^[hu]m+$/,Li,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Fi,"republican"],[/[^aeiou]ician$/,qi,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Li,"noooo"],[/^(yo)+$/,Li,"yoo"],[/^wo{2,}[pt]?$/,Li,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Wi],[/[^i]fer$/,Si],[/.[^aeiou][ao]pher$/,qi],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Fi],[/[aeiou].*ist$/,Fi],[/^[a-z]et$/,Ki]],s:[[/.[^aeiou]ises$/,Hi],[/.[rln]ates$/,Hi],[/.[^z]ens$/,Ki],[/.[lstrn]us$/,Wi],[/.[aeiou]sks$/,Hi],[/.[aeiou]kes$/,Hi],[/[aeiou][^aeiou]is$/,Wi],[/[a-z]'s$/,Ui],[/^yes+$/,Li]],v:[[/.[^aeiou][ai][kln]ov$/,Ri]],y:[[/.[cts]hy$/,Fi],[/.[st]ty$/,Fi],[/.[tnl]ary$/,Fi],[/.[oe]ry$/,Wi],[/[rdntkbhs]ly$/,Ji],[/.(gg|bb|zz)ly$/,Fi],[/...lly$/,Ji],[/.[gk]y$/,Fi],[/[bszmp]{2}y$/,Fi],[/.[ai]my$/,Fi],[/[ea]{2}zy$/,Fi],[/.[^aeiou]ity$/,Wi]]};const Qi="Verb",Zi="Noun";var Yi={leftTags:[["Adjective",Zi],["Possessive",Zi],["Determiner",Zi],["Adverb",Qi],["Pronoun",Qi],["Value",Zi],["Ordinal",Zi],["Modal",Qi],["Superlative",Zi],["Demonym",Zi],["Honorific","Person"]],leftWords:[["i",Qi],["first",Zi],["it",Qi],["there",Qi],["not",Qi],["because",Zi],["if",Zi],["but",Zi],["who",Qi],["this",Zi],["his",Zi],["when",Zi],["you",Qi],["very","Adjective"],["old",Zi],["never",Qi],["before",Zi],["a","Singular"],["the",Zi],["been",Qi]],rightTags:[["Copula",Zi],["PastTense",Zi],["Conjunction",Zi],["Modal",Zi]],rightWords:[["there",Qi],["me",Qi],["man","Adjective"],["only",Qi],["him",Qi],["it",Qi],["were",Zi],["took",Zi],["himself",Qi],["went",Zi],["who",Zi],["jr","Person"]]},Xi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},es={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ts={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ns={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},rs={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const as=/^.([0-9]+)/;var os=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(as);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(as,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},ss=/^([0-9]+)/,ls=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ss);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ss,"")]}(n[0],n[1])}))};var us=function(e={}){return(e=Object.assign({},e)).rules=ls(e.rules),e.rules=is(e.rules),e.rev&&(e.rev=ls(e.rev),e.rev=is(e.rev)),e.exceptions=ls(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},cs=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const hs=us({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ds=us(ns),ps=us(es),ms=us(ts),gs=cs(hs),fs=cs(ds),vs=cs(ps),bs=cs(ms),ys=us(Xi),ws=us(rs);var Ps={fromPast:hs,fromPresent:ds,fromGerund:ps,fromParticiple:ms,toPast:gs,toPresent:fs,toGerund:vs,toParticiple:bs,toComparative:ys,toSuperlative:ws,fromComparative:cs(ys),fromSuperlative:cs(ws)},ks=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),As=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],js=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(xs[t].forEach((n=>e[n]=t)),e)),{});var Ns=xs,Es=function(e){let t=e.substring(e.length-3);if(!0===Ns.hasOwnProperty(t))return Ns[t];let n=e.substring(e.length-2);return!0===Ns.hasOwnProperty(n)?Ns[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Is={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ts=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Es(e)),Is.hasOwnProperty(e))c=Is[e];else if("Participle"===n)c=os(l,i);else if("PastTense"===n)c=os(l,r);else if("PresentTense"===n)c=os(l,a);else{if("Gerund"!==n)return e;c=os(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Gs=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:os(i,n),PresentTense:os(i,r),Gerund:os(i,a),FutureTense:"will "+e},u=os(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Cs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Ds="ically",Os=new Set(["analyt"+Ds,"chem"+Ds,"class"+Ds,"clin"+Ds,"crit"+Ds,"ecolog"+Ds,"electr"+Ds,"empir"+Ds,"frant"+Ds,"grammat"+Ds,"ident"+Ds,"ideolog"+Ds,"log"+Ds,"mag"+Ds,"mathemat"+Ds,"mechan"+Ds,"med"+Ds,"method"+Ds,"method"+Ds,"mus"+Ds,"phys"+Ds,"phys"+Ds,"polit"+Ds,"pract"+Ds,"rad"+Ds,"satir"+Ds,"statist"+Ds,"techn"+Ds,"technolog"+Ds,"theoret"+Ds,"typ"+Ds,"vert"+Ds,"whims"+Ds]),Vs=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Bs=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),zs={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var $s=function(e){return e.endsWith("ly")?Os.has(e)?e.replace(/ically/,"ical"):Bs.has(e)?null:zs.hasOwnProperty(e)?zs[e]:Cs(e,Vs)||e:null};const Fs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ss={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Hs=function(e){if(Ss.hasOwnProperty(e))return Ss[e];let t=Cs(e,Fs);return t||e+"ly"};const Ws=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ms={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Js=new Set(["terrible","annoying"]),Ls=function(e,t){const n=t.two.models.toSuperlative;return os(e,n)},qs=function(e,t){const n=t.two.models.toComparative;return os(e,n)};var Ks={nounToPlural:Go,nounToSingular:js,verbToInfinitive:Ts,getTense:Es,verbConjugate:Gs,adjToSuperlative:Ls,adjToComparative:qs,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return os(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return os(e,n)},advToAdjective:$s,adjToAdverb:Hs,adjToNoun:function(e){if(Ms.hasOwnProperty(e))return Ms[e];if(Js.has(e))return null;let t=Cs(e,Ws);return t||e+"ness"}},Us={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Rs=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Us.hasOwnProperty(i)&&Us[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},_s=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Ys.find((t=>e.endsWith(t)))},el={two:{quickSplit:_s,expandLexicon:Rs,transform:Ks,looksPlural:Xs}},tl=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const nl=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var rl=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=nl(n,"Infinitive","PastTense"),Object.assign(s,l),l=nl(r,"Infinitive","Verb"),Object.assign(s,l),l=nl(a,"Infinitive","Gerund"),Object.assign(s,l),l=nl(o,"Adjective","Superlative"),Object.assign(s,l),l=nl(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let al={two:{models:Ps}};const ol={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},il=function(e,t){const n={model:t,methods:el};let{lex:r,_multi:a}=el.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},sl=function(e,t,n){let r=Gs(e,al);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},ll=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=ol[o],"Noun|Verb"!==o&&"Person|Verb"!==o||sl(a,r,!1),"Adj|Present"===o&&(sl(a,r,!0),function(e,t,n){let r=Ls(e,n);t[r]=t[r]||"Superlative";let a=qs(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ts(a,al,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ts(a,al,"PastTense");r[e]||(n[e]="Infinitive")}})),t=il(n,t)};var ul=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=il(e.one.lexicon,e)).one.lexicon,e),e=ll(e.two.switches,e),e=rl(e),e=tl(e)};let cl={one:{_multiCache:{},lexicon:Do},two:{irregularPlurals:bo,models:Ps,suffixPatterns:Oi,prefixPatterns:$i,endsWith:_i,neighbours:Yi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Oo,clues:yi,uncountable:{},orgWords:ks}};cl=ul(cl);var hl=cl;const dl=/^(under|over|mis|re|un|dis|semi)-?/;var pl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(dl.test(a.normal)){let e=a.normal.replace(dl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},ml=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const gl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var fl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(Xs(e.normal)?ml(e,"Plural","3-plural-guess"):ml(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Es(e.normal);t&&ml(e,t,"3-verb-tense-guess")}}(r)};const vl=/^\p{Lu}[\p{Ll}'’]/u,bl=/[0-9]/,yl=["Date","Month","WeekDay","Unit"],wl=/^[IVXLCDM]{2,}$/,Pl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,kl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Al=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===vl.test(o)&&!1===bl.test(o)?yl.find((e=>r.tags.has(e)))?null:(fl(e,t,n),r.tags.has("Noun")||r.tags.clear(),ml(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&wl.test(o)&&Pl.test(o)&&!kl[r.normal]?(ml(r,"RomanNumeral","2-xvii"),!0):null};const jl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var xl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=jl(r.normal,n.two.suffixPatterns);if(null!==e)return ml(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=jl(r.implicit,n.two.suffixPatterns),null!==e))return ml(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Nl=/['‘’‛‵′`´]/,El=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ml(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Gl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Cl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Gl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Dl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Ol=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Vl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Cl(a)||Cl(o))return ml(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Dl(a)||Dl(o))return ml(n,"Year","2-tagYear-close");if(Ol(e[t-2])||Ol(e[t+2]))return ml(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ml(n,"Year","2-tagYear-noun")}}}return null};const Bl=/^[A-Z]('s|,)?$/,zl=/^[A-Z-]+$/,$l=/([A-Z]\.)+[A-Z]?,?$/,Fl=/[A-Z]{2,}('s|,)?$/,Sl=/([a-z]\.)+[a-z]\.?$/,Hl={I:!0,A:!0};var Wl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===zl.test(n)||n.length>5||Hl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==$l.test(n)&&!0!==Sl.test(n)&&!0!==Bl.test(n)&&!0!==Fl.test(n))}(r,n)?(r.tags.clear(),ml(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Hl.hasOwnProperty(r.text)&&Bl.test(r.text)?(r.tags.clear(),ml(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ml(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&zl.test(r.text)&&r.text.length<=6?(ml(r,"Acronym","3-titlecase-acronym"),!0):null};const Ml=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Jl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ll=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ml(e[t-1],a),l=l||Ml(e[t+1],o),l=l||Jl(e[t-1],r),l=l||Jl(e[t+1],i),l)return ml(s,l,"3-[neighbour]"),fl(e,t,n),e[t].confidence=.2,!0}return null};const ql=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Kl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&ql(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&ql(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ul=function(e,t,n){0===e[t].tags.size&&(ml(e[t],"Noun","3-[fallback]"),fl(e,t,n),e[t].confidence=.1)};const Rl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,_l=(e,t,n)=>0!==t||e[1]?null:n,Ql={"Adj|Gerund":(e,t)=>Rl(e,t),"Adj|Noun":(e,t)=>Rl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Rl(e,t),"Adj|Present":(e,t)=>Rl(e,t),"Noun|Gerund":(e,t)=>Rl(e,t),"Noun|Verb":(e,t)=>Rl(e,t)||_l(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Rl(e,t)||_l(e,t,"PresentTense"),"Person|Noun":(e,t)=>Rl(e,t),"Person|Verb":(e,t)=>0!==t?Rl(e,t):null};var Zl=Ql;const Yl="undefined"!=typeof process&&process.env?process.env:self.env||{},Xl=/^(under|over|mis|re|un|dis|semi)-?/,eu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Yl.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},tu=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&Yl.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var nu=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Xl.test(l)&&!o[l]&&(l=l.replace(Xl,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=eu(e[t+1],n.afterWords);return o=o||eu(e[t-1],n.beforeWords),o=o||tu(e[t-1],n.beforeTags,a),o=o||tu(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Zl[o]&&(u=Zl[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),fl(e,t,r)):Yl.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},ru=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ml(o,"Verb","3-[prefix]"),ml(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ml(o,"Adjective","3-[prefix]"),ml(o,"Prefix","3-[prefix]")))};const au={tagSwitch:pl,checkSuffix:xl,checkRegex:Il,checkCase:Al,checkPrefix:Tl,checkHyphen:ru,checkYear:Vl},ou={checkAcronym:Wl,neighbours:Ll,orgWords:Kl,nounFallback:Ul,switches:nu},iu=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};var cu=function(e){const t=e.world,n=Object.keys(uu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=ku.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Pu},ju=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const xu=/'/;var Nu=function(e,t){let n=e[t].normal.split(xu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Eu=/'/;var Iu=function(e,t){let n=e[t].normal.split(Eu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Tu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Gu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Cu={in:!0,by:!0,for:!0};var Du=(e,t)=>{let n=e[t];if(Gu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Cu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Ou=/'/,Vu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Bu={d:(e,t)=>Iu(e,t),t:(e,t)=>Tu(e,t),s:(e,t,n)=>Du(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Nu(e,t)},zu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var $u={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Ou.test(r[o].normal)&&([,i]=r[o].normal.split(Ou));let s=null;Bu.hasOwnProperty(i)&&(s=Bu[i](r,o,t)),s&&(s=zu(s,e),ju(n,[a,o],s),Vu(n[a],e,o,s.length))}}))}},Fu={compute:$u,api:Au,hooks:["contractionTwo"]};const Su="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Hu=["i","we","they"];let Wu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Su} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Su} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Su}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Hu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Hu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Hu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Mu=null;var Ju={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Mu=Mu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Mu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Lu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ju,model:{two:{matches:Wu}},hooks:["postTagger"]};var qu=Lu,Ku=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},Uu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Ku(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Ru={lib:{lazy:Uu}},_u=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},Qu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?_u(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(a,t):a.has("#Adjective")?function(e,t){const{adjToComparative:n,adjToSuperlative:r}=e.methods.two.transform;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},Zu={api:function(e){e.prototype.swap=Qu}};v.plugin(bu),v.plugin(Fu),v.plugin(qu),v.plugin(Ru),v.plugin(Zu);var Yu=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter((e=>e.wordCount()>5&&e.match("#Verb+").length>=2));if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},Xu=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r},ec=function(e){e.prototype.chunks=Xu,e.prototype.clauses=Yu};const tc={this:"Noun",then:"Pivot"};var nc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},cc={chunks:function(e){const{document:t,world:n}=e;nc(t),rc(t),ic(e,t,n),lc(t),uc(t)}},hc={compute:cc,api:ec,hooks:["chunks"]};const dc=/'s$/;var pc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(dc,""),e.normal=e.normal.replace(dc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const mc=/\(/,gc=/\)/,fc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(mc,"");let t=e[e.length-1];t.post=t.post.replace(gc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const bc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},yc=RegExp("("+Object.keys(bc).join("|")+")"),wc=RegExp("("+Object.values(bc).join("|")+")"),Pc=function(e,t){const n=e[t].pre.match(yc)[0]||"";if(!n||!bc[n])return null;const r=bc[n];for(;t{e[0].pre=e[0].pre.replace(yc,"");let t=e[e.length-1];t.post=t.post.replace(wc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Ac=/\./g;var jc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Ac,""),e.normal=e.normal.replace(Ac,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Ac,""),e.normal=e.normal.replace(Ac,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},xc=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Nc=(e,t)=>"number"==typeof t?e.eq(t):e,Ec=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Ic=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Ec(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{adjToComparative:t,adjToSuperlative:n,adjToNoun:r,adjToAdverb:a}=this.methods.two.transform;return Nc(this,e).map((e=>{let o=Ec(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return Nc(this,e).map((e=>{let n=Ec(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return Nc(this,e).map((e=>{let n=Ec(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return Nc(this,e).map((e=>{let n=Ec(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return Nc(this,e).map((e=>{let n=Ec(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Nc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Nc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Nc(t,e),new Adjectives(t.document,t.pointer)}};const Tc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},Gc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let Cc=[["emojis","emoji"],["atmentions","atMentions"]];var Dc=function(e){Gc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Tc,Cc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},Oc={api:function(e){Dc(e),pc(e),vc(e),kc(e),Ic(e),xc(e),jc(e)}};const Vc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Bc={case:e=>{Vc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Vc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{Vc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{Vc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const zc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),$c="unicode|punctuation|whitespace|acronyms",Fc="|case|contractions|parentheses|quotations|emoji|honorifics",Sc={light:zc($c),medium:zc($c+Fc),heavy:zc($c+Fc+"|possessives|adverbs|nouns|verbs")};var Hc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Sc[e]),Object.keys(e).forEach((t=>{Bc.hasOwnProperty(t)&&Bc[t](this,e[t])})),this}}},Wc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Mc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Jc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},qc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Lc(e,t),isSubordinate:Jc(e),root:t}};const Kc=e=>e.text(),Uc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Rc=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var _c=function(e){let t=qc(e);return{root:Kc(t.root),number:Rc(t.number),determiner:Kc(t.determiner),adjectives:Uc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Qc={tags:!0};var Zc=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Qc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Qc),e};const Yc={tags:!0};var Xc=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Yc).tag("Singular","toPlural"),e};const eh=(e,t)=>"number"==typeof t?e.eq(t):e;var th=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return eh(this,e).map(qc)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=_c(t)),n}),[])}isPlural(e){let t=this.filter((e=>qc(e).isPlural));return eh(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=qc(e).adjectives;n.found&&(t=t.concat(n))})),eh(t,e)}toPlural(e){return eh(this,e).map((e=>Zc(e,qc(e))))}toSingular(e){return eh(this,e).map((e=>{let t=qc(e);return Xc(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Wc(this);return t=eh(t,e),new Nouns(this.document,t.pointer)}},nh={api:th},rh=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},ah=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(oh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(oh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(oh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},sh=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const uh=/^([0-9,. ]+)\/([0-9,. ]+)$/,ch={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},hh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var dh=function(e){if(!0===ch.hasOwnProperty(e))return ch[e];if("a"===e||"an"===e)return 1;const t=ah(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=mh(n),r=mh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:mh(n);let a=r.text("reduced");return ph.test(a)&&(a=a.replace(ph,""),r=r.replaceWith(a)),r=gh.hasOwnProperty(a)?gh[a]:mh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:mh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},vh=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const bh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],yh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],wh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Ph=function(e){let t=[];if(e>100)return t;for(let n=0;n=bh[n][1]&&(e-=bh[n][1],t.push(bh[n][0]));return yh[e]&&t.push(yh[e]),t};var kh=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=vh(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return wh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Ph(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=vh(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Ah=function(e){return e.numerator&&e.denominator?`${kh({num:e.numerator})} out of ${kh({num:e.denominator})}`:""};const jh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var xh=e=>{let t=kh(e).split(" "),n=t[t.length-1];return jh.hasOwnProperty(n)?t[t.length-1]=jh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Nh=function(e){if(!e.numerator||!e.denominator)return"";let t=kh({num:e.numerator}),n=xh({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Eh=(e,t)=>"number"==typeof t?e.eq(t):e;var Ih=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Eh(this,e).map(fh)}get(e){return Eh(this,e).map(fh)}json(e){return Eh(this,e).map((t=>{let n=t.toView().json(e)[0],r=fh(t);return n.fraction=r,n}),[])}toDecimal(e){return Eh(this,e).forEach((e=>{let{decimal:t}=fh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return Eh(this,e).forEach((e=>{let t=fh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return Eh(this,e).forEach((e=>{let t=fh(e),n=Nh(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return Eh(this,e).forEach((e=>{let t=fh(e),n=Ah(t);e.replaceWith(n)})),this}toPercentage(e){return Eh(this,e).forEach((e=>{let{decimal:t}=fh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=rh(this);return t=Eh(t,e),new Fractions(this.document,t.pointer)}};const Th="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Gh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Th+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Th+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Th+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Th+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Th})`),r=e.has("("+Th+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Th+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Th+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},Ch=function(e){if("string"==typeof e)return{num:dh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=fh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=dh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Dh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=vh(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Oh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Vh={"%":"percent","°":"degrees"};var Bh=function(e){let t={suffix:"",prefix:e.prefix};return Oh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Oh[e.prefix],t.prefix=""),Vh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Vh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},zh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Bh(e);return t+xh(e)+n}if("Ordinal"===t)return e.prefix+Dh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Bh(e);return t+kh(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const $h=(e,t)=>"number"==typeof t?e.eq(t):e;var Fh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return $h(this,e).map(Ch)}get(e){return $h(this,e).map(Ch).map((e=>e.num))}json(e){return $h(this,e).map((t=>{let n=t.toView().json(e)[0],r=Ch(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=Ch(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=zh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=Ch(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=zh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=Ch(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=zh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=Ch(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=zh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=Ch(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=zh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>Ch(t).num===e))}greaterThan(e){return this.filter((t=>Ch(t).num>e))}lessThan(e){return this.filter((t=>Ch(t).num{let r=Ch(n).num;return r>e&&r{let n=Ch(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=zh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=Ch(e).num);let t=this.map((t=>{let n=Ch(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=zh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Gh(this);return t=$h(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Gh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=$h(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Gh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=$h(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Sh={api:function(e){Ih(e),Fh(e)}};const Hh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Wh=function(e={}){return!1!==(e=Object.assign({},Hh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},Mh={api:function(e){e.prototype.redact=Wh}};var Jh=Mh,Lh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},qh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},Kh=function(e){let t=e.clauses(),n=qh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Uh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Rh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},_h=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},Qh=function(e){return e.verbs().toInfinitive(),e};const Zh=(e,t)=>"number"==typeof t?e.eq(t):e;var Yh=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Kh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n}),[])}toPastTense(e){return Zh(this,e).map((e=>(Kh(e),Uh(e))))}toPresentTense(e){return Zh(this,e).map((e=>(Kh(e),Rh(e))))}toFutureTense(e){return Zh(this,e).map((e=>(Kh(e),e=_h(e))))}toInfinitive(e){return Zh(this,e).map((e=>(Kh(e),Qh(e))))}toNegative(e){return Zh(this,e).map((e=>(Kh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return Zh(this,e).map((e=>(Kh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return Zh(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return Zh(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=Zh(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Lh(this);return Zh(t,e)}};Object.assign(e.prototype,t)},Xh={api:Yh},ed=function(e){return e.match("#Honorific+? #Person+")},td=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const nd="male",rd="female",ad={mr:nd,mrs:rd,miss:rd,madam:rd,king:nd,queen:rd,duke:nd,duchess:rd,baron:nd,baroness:rd,count:nd,countess:rd,prince:nd,princess:rd,sire:nd,dame:rd,lady:rd,ayatullah:nd,congressman:nd,congresswoman:rd,"first lady":rd,mx:null};var od=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return rd;if(n.has("#MaleName"))return nd;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),ad.hasOwnProperty(e))return ad[e];if(/^her /.test(e))return rd;if(/^his /.test(e))return nd}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return nd;if(n&&!t)return rd}return null};const id=(e,t)=>"number"==typeof t?e.eq(t):e;var sd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return id(this,e).map(td)}json(e){return id(this,e).map((t=>{let n=t.toView().json(e)[0],r=td(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:od(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=ed(this);return t=id(t,e),new People(this.document,t.pointer)}},ld=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},ud=function(e){e.prototype.places=function(t){let n=ld(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},cd=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const hd=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var dd=function(e){e.prototype.topics=hd},pd={api:function(e){sd(e),ud(e),cd(e),dd(e)}},md=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},gd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},fd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const vd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},bd=function(e){return e.match("#Negative")},yd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var wd=function(e){let t=e.clone();t.contractions().expand();const n=gd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:fd(t,n),auxiliary:vd(t,n),negative:bd(t),phrasal:yd(n)}};const Pd={tense:"PresentTense"},kd={conditional:!0},Ad={tense:"FutureTense"},jd={progressive:!0},xd={tense:"PastTense"},Nd={complete:!0,progressive:!1},Ed={passive:!0},Id=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Td={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Pd]],["^wanted to #Infinitive$",[xd]],["^will want to #Infinitive$",[Ad]]],"gerund-phrase":[["^#PastTense #Gerund$",[xd]],["^#PresentTense #Gerund$",[Pd]],["^#Infinitive #Gerund$",[Pd]],["^will #Infinitive #Gerund$",[Ad]],["^have #PastTense #Gerund$",[xd]],["^will have #PastTense #Gerund$",[xd]]],"simple-present":[["^#PresentTense$",[Pd]],["^#Infinitive$",[Pd]]],"simple-past":[["^#PastTense$",[xd]]],"simple-future":[["^will #Adverb? #Infinitive",[Ad]]],"present-progressive":[["^(is|are|am) #Gerund$",[Pd,jd]]],"past-progressive":[["^(was|were) #Gerund$",[xd,jd]]],"future-progressive":[["^will be #Gerund$",[Ad,jd]]],"present-perfect":[["^(has|have) #PastTense$",[xd,Nd]]],"past-perfect":[["^had #PastTense$",[xd,Nd]],["^had #PastTense to #Infinitive",[xd,Nd]]],"future-perfect":[["^will have #PastTense$",[Ad,Nd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[xd,jd]]],"past-perfect-progressive":[["^had been #Gerund$",[xd,jd]]],"future-perfect-progressive":[["^will have been #Gerund$",[Ad,jd]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[xd,Ed]],["^(was|were) being (#PastTense|#Participle)",[xd,Ed]],["^(had|have) been (#PastTense|#Participle)",[xd,Ed]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Pd,Ed]],["^(is|are|am) being (#PastTense|#Participle)",[Pd,Ed]],["^has been (#PastTense|#Participle)",[Pd,Ed]]],"passive-future":[["will have been (#PastTense|#Participle)",[Ad,Ed,kd]],["will be being? (#PastTense|#Participle)",[Ad,Ed,kd]]],"present-conditional":[["would be #PastTense",[Pd,kd]]],"past-conditional":[["would have been #PastTense",[xd,kd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Ad]]],"auxiliary-past":[["^did #Infinitive$",[xd,{plural:!1}]],["^used to #Infinitive$",[xd,Nd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Pd,Nd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[xd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Gd=[];Object.keys(Td).map((e=>{Td[e].forEach((t=>{Gd.push({name:e,match:t[0],data:Id(t[1])})}))}));var Cd=Gd,Dd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),Od(r)&&(n.remove(r),r=n.last()),Od(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Vd(t,e)}};const zd=e=>e,$d=(e,t)=>{let n=Bd(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Fd=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Bd(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Sd=function(e,t){let n=Bd(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Hd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Wd=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Hd(e)),r&&e.replace(t.root,r),e},Md=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Jd=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Ld=function(e){return e&&e.isView?e.text("normal"):""},qd=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,Hd(e))};var Kd=function(e){let t=wd(e);e=e.clone().toView();const n=Dd(e,t);return{root:t.root.text(),preAdverbs:Jd(t.adverbs.pre),postAdverbs:Jd(t.adverbs.post),auxiliary:Ld(t.auxiliary),negative:t.negative.found,prefix:Ld(t.prefix),infinitive:qd(t.root),grammar:n}};const Ud={tags:!0};var Rd=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Hd(r)),i&&e.replace(r,i,Ud).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Sd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const _d={tags:!0},Qd={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Hd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Bd(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,_d),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Qd.simple(e,t),e=Qd.noAux(e,t))},hasHad:e=>(e.replace("has","had",_d),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Hd(a)),n(o,e.model).Participle}},Zd={infinitive:Qd.simple,"simple-present":Qd.simple,"simple-past":zd,"simple-future":Qd.both,"present-progressive":e=>(e.replace("are","were",_d),e.replace("(is|are|am)","was",_d),e),"past-progressive":zd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Qd.hasHad,"past-perfect":zd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Md(e)),e.remove("have"),e),"present-perfect-progressive":Qd.hasHad,"past-perfect-progressive":zd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",_d),e),"passive-past":e=>(e.replace("have","had",_d),e),"passive-present":e=>(e.replace("(is|are)","was",_d),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",_d),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":zd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",_d),e),"auxiliary-past":zd,"auxiliary-present":e=>(e.replace("(do|does)","did",_d),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",_d):(Qd.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":zd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",_d),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Qd.simple(e,t),Md(e),e)};var Yd=function(e,t,n){return Zd.hasOwnProperty(n)?((e=Zd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Xd={tags:!0},ep=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Hd(a)),!1===$d(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Fd(e)),o&&(e=e.replace(a,o,Xd)).not("#Particle").tag("PresentTense"),e},tp=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Hd(a)),!1===$d(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Xd)).not("#Particle").tag("Gerund"),e},np={infinitive:ep,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return ep(e,t);{let t=Bd(e).subject;if($d(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Xd)}return e},"simple-past":ep,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Fd(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else ep(e,t),e=e.remove("will");return e},"present-progressive":zd,"past-progressive":(e,t)=>{let n=Fd(e);return e.replace("(were|was)",n,Xd)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(ep(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Bd(e).subject;return $d(e)||n.has("i")?((e=Wd(e,t)).remove("had"),e):(e.replace("had","has",Xd),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":zd,"past-perfect-progressive":e=>e.replace("had","has",Xd),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Fd(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Xd),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":zd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":zd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(tp(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Sd(e);return e.replace(t.auxiliary,n),e}return tp(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":zd,"modal-infinitive":zd,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Hd(r)),a&&(e=e.replace(t.root,a,Xd))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ep(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return $d(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Xd),e.remove("will"),e}};var rp=function(e,t,n){return np.hasOwnProperty(n)?((e=np[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const ap={tags:!0},op=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Hd(r)),o&&(e=e.replace(r,o,ap)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},ip=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Hd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,ap),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},sp={infinitive:op,"simple-present":op,"simple-past":op,"simple-future":zd,"present-progressive":ip,"past-progressive":ip,"future-progressive":zd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":zd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":zd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":zd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":zd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":zd,"modal-past":zd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),op(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var lp=function(e,t,n){return e.has("will")||e.has("going to")?e:sp.hasOwnProperty(n)?((e=sp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const up={tags:!0};var cp=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Hd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Fd(e)} ${s}`,e.replace(a,s,up)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const hp={tags:!0},dp=function(e,t){let n=Sd(e);return e.prepend(n+" not"),e},pp=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},mp=e=>e.has("(is|was|am|are|will|were|be)"),gp={"simple-present":(e,t)=>!0===mp(e)?pp(e):(e=Wd(e,t),e=dp(e)),"simple-past":(e,t)=>!0===mp(e)?pp(e):((e=Wd(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===mp(e)?pp(e):dp(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",hp),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=dp(e)).replace("wants","want",hp)};var fp=function(e,t,n){if(e.has("#Negative"))return e;if(gp.hasOwnProperty(n))return e=gp[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===mp(e)?pp(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const vp=(e,t)=>"number"==typeof t?e.eq(t):e;var bp=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return vp(this,e).map(wd)}json(e,t){let n=vp(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Kd(t),n}),[]);return n}subjects(e){return vp(this,e).map((e=>(wd(e),Bd(e).subject)))}adverbs(e){return vp(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return vp(this,e).filter((e=>!0!==Bd(e).plural))}isPlural(e){return vp(this,e).filter((e=>!0===Bd(e).plural))}isImperative(e){return vp(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return vp(this,e).map((e=>{let t=wd(e),n=Dd(e,t);return Rd(e,t,n.form)}))}toPresentTense(e){return vp(this,e).map((e=>{let t=wd(e),n=Dd(e,t);return rp(e,t,n.form)}))}toPastTense(e){return vp(this,e).map((e=>{let t=wd(e),n=Dd(e,t);return Yd(e,t,n.form)}))}toFutureTense(e){return vp(this,e).map((e=>{let t=wd(e),n=Dd(e,t);return lp(e,t,n.form)}))}toGerund(e){return vp(this,e).map((e=>{let t=wd(e),n=Dd(e,t);return cp(e,t,n.form)}))}conjugate(e){return vp(this,e).map((e=>{let t=wd(e),n=Dd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Rd(e.clone(),t,n.form).text("normal"),PastTense:Yd(e.clone(),t,n.form).text("normal"),PresentTense:rp(e.clone(),t,n.form).text("normal"),FutureTense:lp(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return vp(this,e).map((e=>{let t=wd(e),n=Dd(e,t);return fp(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=md(this);return t=vp(t,e),new Verbs(this.document,t.pointer)}},yp={api:bp};return v.plugin(hc),v.plugin(Oc),v.plugin(Hc),v.plugin(nh),v.plugin(Sh),v.plugin(Jh),v.plugin(Xh),v.plugin(pd),v.plugin(yp),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var p=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let m=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=p(e,l,m);return e&&n.compute(m.hooks),n};Object.defineProperty(f,"_world",{value:m,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=p(e,l,m);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},j=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},x=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?j(n):(j(n),j([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!k(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||k(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var G=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},D=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=G(e),e)))}(d),n?(T(t.update([u]).firstTerm()),N(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var $=z,F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=F(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const W={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};W.deHyphenate=W.dehyphenate,W.toQuotation=W.toQuotations;var M=W,J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var _={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}},Q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,H,M,U,_,Q);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(pe);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ke=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},je={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},xe=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=xe(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&je.hasOwnProperty(l)&&(c=je[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),ke(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ke(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]},Ge=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Oe,lib:Be,hooks:["lexicon"]},$e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const We=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=We(e.goNext,void 0),e.failTo=We(e.failTo,0),e.endAs=We(e.endAs,null),e};const Je={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};Je.compile=Je.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Je};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Qe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Qe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Qe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,pt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){pt.test(e)?(n.choices=e.split(pt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var kt=Pt;const At=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const xt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var It=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(xt(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(xt(e,t)),n=n.concat(Nt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Gt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>kt(e,t))),r=jt(r,n),r=It(r,n),r=Gt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Vt.test(e.pre)||Bt.test(e.post),hasComma:e=>Ft(e,","),hasPeriod:e=>!0===Ft(e,".")&&!1===Ft(e,"..."),hasExclamation:e=>Ft(e,"!"),hasQuestionMark:e=>Ft(e,"?")||Ft(e,"¿"),hasEllipses:e=>Ft(e,"..")||Ft(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>Ft(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Wt=Ht;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Wt[t.method]&&!0===Wt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Jt=Mt;const Lt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(qt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Jt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Jt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(qt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Qt=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Jt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Jt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Jt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Qt(e,r,t[e.r+1]):(e.t+=1,!0)},Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Jt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Jt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Xt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Lt(e,a)){if(e.negative){if(!Zt(a))return null}else if(!0!==Jt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!tn(a))return null}else if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else if(!_t(a))return null}else if(!Rt(a))return null}else if(!Kt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},ln={api:ot,methods:{one:{termMethods:Wt,parseMatch:Tt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(a)&&(a=" "),a=a.replace(gn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(pn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let Pn=[],kn=0;for(;kn<64;)Pn[kn]=0|4294967296*Math.sin(++kn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(kn=i=0;kn>4]+Pn[i]+~~o[kn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const jn={text:!0,terms:!0};let xn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},En={text:e=>bn(e,{keepPunct:!0},!1),normal:e=>bn(e,Nn(wn.normal,{keepPunct:!0}),!1),implicit:e=>bn(e,Nn(wn.implicit,{keepPunct:!0}),!1),machine:e=>bn(e,xn,!1),root:e=>bn(e,Nn(xn,{form:"root"}),!1),hash:e=>An(bn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const In={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},jn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};In.data=In.json;var Gn=In,Tn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Dn="";var Cn={green:e=>""+e+Dn,red:e=>""+e+Dn,blue:e=>""+e+Dn,magenta:e=>""+e+Dn,cyan:e=>""+e+Dn,yellow:e=>""+e+Dn,black:e=>""+e+Dn,dim:e=>""+e+Dn,i:e=>""+e+Dn},On=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Cn.blue("\n ──────")),t.forEach((e=>{console.log(Cn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Cn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Cn.blue(" │ ")+Cn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Cn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Vn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Cn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Tn(t),t):(!1!==e.tags&&(On(t),console.log("\n")),!0===e.chunks&&(Vn(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const $n=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Fn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Hn=Sn,Wn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Kn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},Rn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},_n={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>qn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Yn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>qn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},er=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},tr={union:function(e){e=Xn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)}};tr.and=tr.union,tr.intersection=function(e){e=Xn(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.not=function(e){e=Xn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.difference=tr.not,tr.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=er(t,this.document),this.toView(t)},tr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Qn(e,[t])})),e=er(e,this.document),this.update(e)};var nr=function(e){Object.assign(e.prototype,tr)},rr={methods:_n,api:nr},ar=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const or=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ir=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(or(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(or(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=or(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},sr=function(e,t){e=ir(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},lr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},ur=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},cr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},hr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=lr(a,t.hooks);return o=ur(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),cr(o,e,a,n,r)},dr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===dr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ar,methods:{one:{buildNet:sr,bulkMatch:hr,bulkTagger:pr}}};const gr=/ /,fr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},vr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),gr.test(t))!function(e,t,n,r){let a=t.split(gr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),vr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var yr=br,wr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Pr({id:e}))),t}return[Pr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},xr=e=>"[object Array]"===Object.prototype.toString.call(e),Nr=e=>(e=e||"").trim(),Er=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||kr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ar(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Pr({});return e.forEach((e=>{if((e=Pr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(jr(t=e).forEach(Pr),t);var t},Ir=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return jr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Gr=function(e){let t=jr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Tr={text:Ir,txt:Ir,array:Gr,flat:Gr},Dr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ir(e,!0)),null):Tr.hasOwnProperty(t)?Tr[t](e):e},Cr=e=>{jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Or=/\//;let Vr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Nr(e),!Or.test(e)){let t=this.json.children.find((t=>t.id===e));return new Vr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||Pr({});return new Vr(t)}add(e,t={}){if(xr(e))return e.forEach((e=>this.add(Nr(e),t))),this;e=Nr(e);let n=Pr({id:e,props:t});return this.json.children.push(n),new Vr(n)}remove(e){return e=Nr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return jr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return jr(this.json)}fillDown(){var e;return e=this.json,jr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else xr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Cr(this.json);let e=jr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Cr(this.json),Dr(this.json,e)}debug(){return Cr(this.json),Dr(this.json,"debug"),this}};const Br=function(e){let t=Er(e);return new Vr(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const $r=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Fr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:$r(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sr=function(e){return e?"string"==typeof e?[e]:e:[]};var Hr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sr(e[t].children),e[t].not=Sr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Wr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Hr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Fr(n)},Mr={one:{setTag:yr,unTag:wr,addTags:Wr}};const Jr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Lr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Jr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Jr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var qr=Lr,Kr=function(e){Object.assign(e.prototype,qr)},Ur={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Rr=new Set(["Auxiliary","Possessive"]);var _r=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Rr.has(e)||!t.hasOwnProperty(n))return 1;if(Rr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Qr={model:{one:{tagSet:{}}},compute:{tagRank:_r},methods:Mr,api:Kr,lib:Ur};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Yr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var ea=function(e){let t=[],n=e.split(Xr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const oa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ia=RegExp("("+Object.keys(oa).join("|")+")","g"),sa=RegExp("("+Object.values(oa).join("|")+")","g"),la=function(e){if(!e)return!1;let t=e.match(sa);return null!==t&&1===t.length};var ua=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var xa=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Aa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wa(n),n=ba(n),n=n.filter((e=>e)),n};let Na=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Ea=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ia=/[\p{Punctuation}\s]+$/u,Ga=/^[\p{Punctuation}\s]+/u,Ta=/['’]/,Da=/^[a-z]\.([a-z]\.)+/i,Ca=/^'[0-9]{2}/;var Oa=function(e){let t=e,n="",r="";return e=e.replace(Ga,(t=>{let r=t.match(Na);return r?(n=t.replace(Na,""),r):"'"===n&&Ca.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ia,(a=>{let o=a.match(Ea);return o?(r=a.replace(Ea,""),o):Ta.test(a)&&/[sn]['’]$/.test(t)&&!1===Ta.test(n)?(r=r.replace(Ta,""),"'"):!0===Da.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}},Va=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},Ba=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const za=/([A-Z]\.)+[A-Z]?,?$/,$a=/^[A-Z]\.,?$/,Fa=/[A-Z]{2,}('s|,)?$/,Sa=/([a-z]\.)+[a-z]\.?$/;var Ha=function(e){return function(e){return!0===za.test(e)||!0===Sa.test(e)||!0===$a.test(e)||!0===Fa.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Wa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ba(r),r=n(r,t),r=Ha(r),e.normal=r},Ma=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Wa(e,t)})),n})),e};const Ja=/[ .][A-Z]\.? *$/i,La=/(?:\u2026|\.{2,}) *$/,qa=/\p{L}/u,Ka=/^[A-Z]\. $/;var Ua=function(e,t){if(!1===qa.test(e))return!1;if(!0===Ja.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===La.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ra={one:{killUnicode:Va,tokenize:{splitSentences:ga,isSentence:Ua,splitTerms:xa,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Oa(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Ma}}},_a={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},Za={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qa[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])}))}));var Ya=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){eo[t]=e}))}));const to=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),to.test(n)&&!no.test(n)&&!ro.test(n)){let t=n.split(to);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const oo=/^\p{Letter}+-\p{Letter}+$/u;var io=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),oo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},so=function(e){let t=e.docs,n={};for(let e=0;eho(e,ao),machine:e=>ho(e,io),normal:e=>ho(e,Wa),freq:so,offset:lo,index:uo,wordCount:co},methods:Ra,model:{one:{aliases:_a,abbreviations:Qa,prefixes:Ya,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Za,unicode:eo}},hooks:["alias","machine","index","id"]},mo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var fo=function(e){e.prototype.autoFill=go},vo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const bo={safe:!0,min:3};var yo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},bo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=vo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},wo={model:{one:{typeahead:{}}},api:fo,lib:yo,compute:mo,hooks:["typeahead"]};v.extend(ee),v.extend(Ln),v.extend(ln),v.extend(rr),v.extend(Qr),v.plugin(Ie),v.extend(po),v.plugin(P),v.extend(Le),v.extend(wo),v.extend(ze),v.extend(mr);var Po={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ko={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ao=36,jo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",xo=jo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==xo[e])return xo[e];let t=0,n=1,r=Ao,a=1;for(;n=0;n--,a*=Ao){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Eo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Go(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=To(ko[e]);Vo.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Oo(t,$o);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Bo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Bo[e]="Emoticon")),delete Bo[""],delete Bo.null,delete Bo[" "];const Fo="Adjective";var So={beforeTags:{Determiner:Fo,Possessive:Fo},afterTags:{Adjective:Fo},beforeWords:{seem:Fo,seemed:Fo,seems:Fo,feel:Fo,feels:Fo,felt:Fo,appear:Fo,appears:Fo,appeared:Fo,also:Fo,over:Fo,under:Fo,too:Fo,it:Fo,but:Fo,still:Fo,really:Fo,quite:Fo,well:Fo,very:Fo,deeply:Fo,profoundly:Fo,extremely:Fo,so:Fo,badly:Fo,mostly:Fo,totally:Fo,awfully:Fo,rather:Fo,nothing:Fo,something:Fo,anything:Fo,not:Fo,me:Fo},afterWords:{too:Fo,also:Fo,or:Fo}};const Ho="Gerund";var Wo={beforeTags:{Adverb:Ho,Preposition:Ho,Conjunction:Ho},afterTags:{Adverb:Ho,Possessive:Ho,Person:Ho,Pronoun:Ho,Determiner:Ho,Copula:Ho,Preposition:Ho,Conjunction:Ho,Comparative:Ho},beforeWords:{been:Ho,keep:Ho,continue:Ho,stop:Ho,am:Ho,be:Ho,me:Ho,began:Ho,start:Ho,starts:Ho,started:Ho,stops:Ho,stopped:Ho,help:Ho,helps:Ho,avoid:Ho,avoids:Ho,love:Ho,loves:Ho,loved:Ho,hate:Ho,hates:Ho,hated:Ho},afterWords:{you:Ho,me:Ho,her:Ho,him:Ho,them:Ho,their:Ho,it:Ho,this:Ho,there:Ho,on:Ho,about:Ho,for:Ho}},Mo={beforeTags:Object.assign({},So.beforeTags,Wo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},So.afterTags,Wo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},So.beforeWords,Wo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},So.afterWords,Wo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Jo="Singular";var Lo={beforeTags:{Determiner:Jo,Possessive:Jo,Acronym:Jo,Noun:Jo,Adjective:Jo,PresentTense:Jo,Gerund:Jo,PastTense:Jo,Infinitive:Jo,Date:Jo},afterTags:{Value:Jo,Modal:Jo,Copula:Jo,PresentTense:Jo,PastTense:Jo,Demonym:Jo},beforeWords:{the:Jo,with:Jo,without:Jo,of:Jo,for:Jo,any:Jo,all:Jo,on:Jo,cut:Jo,cuts:Jo,save:Jo,saved:Jo,saves:Jo,make:Jo,makes:Jo,made:Jo,minus:Jo,plus:Jo,than:Jo,another:Jo,versus:Jo,neither:Jo,favorite:Jo,best:Jo,daily:Jo,weekly:Jo,linear:Jo,binary:Jo,mobile:Jo,lexical:Jo,technical:Jo,computer:Jo,scientific:Jo,formal:Jo},afterWords:{of:Jo,system:Jo,aid:Jo,method:Jo,utility:Jo,tool:Jo,reform:Jo,therapy:Jo,philosophy:Jo,room:Jo,authority:Jo,says:Jo,said:Jo,wants:Jo,wanted:Jo}};const qo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ko={beforeTags:Object.assign({},So.beforeTags,Lo.beforeTags,qo.beforeTags),afterTags:Object.assign({},So.afterTags,Lo.afterTags),beforeWords:Object.assign({},So.beforeWords,Lo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Lo.afterWords)};const Uo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ro={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},_o={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Qo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Zo={beforeTags:Object.assign({},So.beforeTags,Uo),afterTags:Object.assign({},So.afterTags,Ro),beforeWords:Object.assign({},So.beforeWords,_o),afterWords:Object.assign({},So.afterWords,Qo)};const Yo="Infinitive";var Xo={beforeTags:{Modal:Yo,Adverb:Yo,Negative:Yo,Plural:Yo},afterTags:{Determiner:Yo,Adverb:Yo,Possessive:Yo,Preposition:Yo},beforeWords:{i:Yo,we:Yo,you:Yo,they:Yo,to:Yo,please:Yo,will:Yo,have:Yo,had:Yo,would:Yo,could:Yo,should:Yo,do:Yo,did:Yo,does:Yo,can:Yo,must:Yo,us:Yo,me:Yo,he:Yo,she:Yo,it:Yo,being:Yo},afterWords:{the:Yo,me:Yo,you:Yo,him:Yo,her:Yo,them:Yo,it:Yo,a:Yo,an:Yo,up:Yo,down:Yo,by:Yo,out:Yo,off:Yo,under:Yo,when:Yo,all:Yo,to:Yo,because:Yo,although:Yo,before:Yo,how:Yo,otherwise:Yo,together:Yo,though:Yo,yet:Yo}};const ei={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ti={beforeTags:Object.assign({},So.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},So.afterTags,Xo.afterTags,ei.afterTags),beforeWords:Object.assign({},So.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Xo.afterWords,{to:void 0})};const ni={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ri={},ai={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oi={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ii={beforeTags:Object.assign({},Wo.beforeTags,Lo.beforeTags,ni),afterTags:Object.assign({},Wo.afterTags,Lo.afterTags,ri),beforeWords:Object.assign({},Wo.beforeWords,Lo.beforeWords,ai),afterWords:Object.assign({},Wo.afterWords,Lo.afterWords,oi)},si={beforeTags:Object.assign({},Xo.beforeTags,Lo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xo.afterTags,Lo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xo.beforeWords,Lo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xo.afterWords,Lo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const li="Person";var ui={beforeTags:{Honorific:li,Person:li,Preposition:li},afterTags:{Person:li,ProperNoun:li,Verb:li},ownTags:{ProperNoun:li},beforeWords:{hi:li,hey:li,yo:li,dear:li,hello:li},afterWords:{said:li,says:li,told:li,tells:li,feels:li,felt:li,seems:li,thinks:li,thought:li,spends:li,spendt:li,plays:li,played:li,sing:li,sang:li,learn:li,learned:li,wants:li,wanted:li}};const ci="Month",hi={beforeTags:{Date:ci,Value:ci},afterTags:{Date:ci,Value:ci},beforeWords:{by:ci,in:ci,on:ci,during:ci,after:ci,before:ci,between:ci,until:ci,til:ci,sometime:ci,of:ci,this:ci,next:ci,last:ci,previous:ci,following:ci},afterWords:{sometime:ci,in:ci,of:ci,until:ci,the:ci}};var di={beforeTags:Object.assign({},ui.beforeTags,hi.beforeTags),afterTags:Object.assign({},ui.afterTags,hi.afterTags),beforeWords:Object.assign({},ui.beforeWords,hi.beforeWords),afterWords:Object.assign({},ui.afterWords,hi.afterWords)};const pi={Place:"Place"},mi={Place:"Place",Abbreviation:"Place"},gi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},fi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let vi="Unit";const bi="Honorific";let yi={first:bi,general:bi,royal:bi,vice:bi,rear:bi,major:bi};const wi={"Adj|Gerund":Mo,"Adj|Noun":Ko,"Adj|Past":Zo,"Adj|Present":ti,"Noun|Verb":si,"Noun|Gerund":ii,"Person|Noun":{beforeTags:Object.assign({},Lo.beforeTags,ui.beforeTags),afterTags:Object.assign({},Lo.afterTags,ui.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ui.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Lo.afterWords,ui.afterWords)},"Person|Date":di,"Person|Verb":{beforeTags:Object.assign({},ui.beforeTags,Xo.beforeTags),afterTags:Object.assign({},ui.afterTags,Xo.afterTags),beforeWords:Object.assign({},ui.beforeWords,Xo.beforeWords),afterWords:Object.assign({},ui.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},pi,ui.beforeTags),afterTags:Object.assign({},mi,ui.afterTags),beforeWords:Object.assign({},gi,ui.beforeWords),afterWords:Object.assign({},fi,ui.afterWords)},"Unit|Noun":{beforeTags:{Value:vi},afterTags:{},beforeWords:{per:vi,every:vi,each:vi,square:vi,cubic:vi,sq:vi,metric:vi},afterWords:{per:vi,squared:vi,cubed:vi,long:vi}},"Honorific|Noun":{beforeTags:{Honorific:bi,ProperNoun:bi,Ordinal:bi},afterTags:{Person:bi,ProperNoun:bi},beforeWords:Object.assign({},yi,{honorable:bi,honourable:bi,worship:bi,excellency:bi,majesty:bi,right:bi}),afterWords:yi}},Pi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};wi["Plural|Verb"]={beforeWords:Pi(wi["Noun|Verb"].beforeWords,{}),afterWords:Pi(wi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:Pi(wi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Pi(wi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ki=wi;const Ai="Adjective",ji="Infinitive",xi="PresentTense",Ni="Singular",Ei="PastTense",Ii="Adverb",Gi="Plural",Ti="Actor",Di="Verb",Ci="Noun",Oi="LastName",Vi="Modal",Bi="Participle";var zi=[null,null,{ea:Ni,ia:Ci,ic:Ai,ly:Ii,"'n":Di,"'t":Di},{oed:Ei,ued:Ei,xed:Ei," so":Ii,"'ll":Vi,"'re":"Copula",azy:Ai,eer:Ci,end:Di,ped:Ei,ffy:Ai,ify:ji,ing:"Gerund",ize:ji,ibe:ji,lar:Ai,mum:Ai,nes:xi,nny:Ai,ous:Ai,que:Ai,rol:Ni,sis:Ni,ogy:Ni,oid:Ni,ian:Ni,zes:xi,eld:Ei,ken:Bi,ven:Bi,ten:Bi,ect:ji,ict:ji,ign:ji,ful:Ai,bal:Ai},{amed:Ei,aped:Ei,ched:Ei,lked:Ei,rked:Ei,reed:Ei,nded:Ei,mned:Ai,cted:Ei,dged:Ei,ield:Ni,akis:Oi,cede:ji,chuk:Oi,czyk:Oi,ects:xi,ends:Di,enko:Oi,ette:Ni,wner:Ni,fies:xi,fore:Ii,gate:ji,gone:Ai,ices:Gi,ints:Gi,ruct:ji,ines:Gi,ions:Gi,less:Ai,llen:Ai,made:Ai,nsen:Oi,oses:xi,ould:Vi,some:Ai,sson:Oi,tion:Ni,tage:Ci,ique:Ni,tive:Ai,tors:Ci,vice:Ni,lier:Ni,fier:Ni,wned:Ei,gent:Ni,tist:Ni,pist:Ni,rist:Ni,mist:Ni,yist:Ni,vist:Ni,lite:Ni,site:Ni,rite:Ni,mite:Ni,bite:Ni,mate:Ni,date:Ni,ndal:Ni,vent:Ni,uist:Ni,gist:Ni,note:Ni,cide:Ni,wide:Ai,vide:ji,ract:ji,duce:ji,pose:ji,eive:ji,lyze:ji,lyse:ji,iant:Ai,nary:Ai},{elist:Ni,holic:Ni,phite:Ni,tized:Ei,urned:Ei,eased:Ei,ances:Gi,bound:Ai,ettes:Gi,fully:Ii,ishes:xi,ities:Gi,marek:Oi,nssen:Oi,ology:Ci,osome:Ni,tment:Ni,ports:Gi,rough:Ai,tches:xi,tieth:"Ordinal",tures:Gi,wards:Ii,where:Ii,archy:Ci,pathy:Ci,opoly:Ci,embly:Ci,phate:Ci,ndent:Ni,scent:Ni,onist:Ni,anist:Ni,alist:Ni,olist:Ni,icist:Ni,ounce:ji,iable:Ai,borne:Ai,gnant:Ai,inant:Ai,igent:Ai,atory:Ai,rient:Ni,dient:Ni},{auskas:Oi,parent:Ni,cedent:Ni,ionary:Ni,cklist:Ni,keeper:Ti,logist:Ti,teenth:"Value"},{opoulos:Oi,borough:"Place",sdottir:Oi}];const $i="Adjective",Fi="Noun",Si="Verb";var Hi=[null,null,{},{neo:Fi,bio:Fi,"de-":Si,"re-":Si,"un-":Si},{anti:Fi,auto:Fi,faux:$i,hexa:Fi,kilo:Fi,mono:Fi,nano:Fi,octa:Fi,poly:Fi,semi:$i,tele:Fi,"pro-":$i,"mis-":Si,"dis-":Si,"pre-":$i},{anglo:Fi,centi:Fi,ethno:Fi,ferro:Fi,grand:Fi,hepta:Fi,hydro:Fi,intro:Fi,macro:Fi,micro:Fi,milli:Fi,nitro:Fi,penta:Fi,quasi:$i,radio:Fi,tetra:Fi,"omni-":$i,"post-":$i},{pseudo:$i,"extra-":$i,"hyper-":$i,"inter-":$i,"intra-":$i,"deca-":$i},{electro:Fi}];const Wi="Adjective",Mi="Infinitive",Ji="PresentTense",Li="Singular",qi="PastTense",Ki="Adverb",Ui="Expression",Ri="Actor",_i="Verb",Qi="Noun",Zi="LastName";var Yi={a:[[/.[aeiou]na$/,Qi,"tuna"],[/.[oau][wvl]ska$/,Zi],[/.[^aeiou]ica$/,Li,"harmonica"],[/^([hyj]a+)+$/,Ui,"haha"]],c:[[/.[^aeiou]ic$/,Wi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,qi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,qi,"rammed"],[/.[aeiou][sg]hed$/,qi,"gushed"],[/.[aeiou]red$/,qi,"hired"],[/.[aeiou]r?ried$/,qi,"hurried"],[/[^aeiou]ard$/,Li,"steward"],[/[aeiou][^aeiou]id$/,Wi,""],[/.[vrl]id$/,Wi,"livid"],[/..led$/,qi,"hurled"],[/.[iao]sed$/,qi,""],[/[aeiou]n?[cs]ed$/,qi,""],[/[aeiou][rl]?[mnf]ed$/,qi,""],[/[aeiou][ns]?c?ked$/,qi,"bunked"],[/[aeiou]gned$/,qi],[/[aeiou][nl]?ged$/,qi],[/.[tdbwxyz]ed$/,qi],[/[^aeiou][aeiou][tvx]ed$/,qi],[/.[cdflmnprstv]ied$/,qi,"emptied"]],e:[[/.[lnr]ize$/,Mi,"antagonize"],[/.[^aeiou]ise$/,Mi,"antagonise"],[/.[aeiou]te$/,Mi,"bite"],[/.[^aeiou][ai]ble$/,Wi,"fixable"],[/.[^aeiou]eable$/,Wi,"maleable"],[/.[ts]ive$/,Wi,"festive"],[/[a-z]-like$/,Wi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Wi,"cornish"],[/.v[iy]ch$/,Zi,"..ovich"],[/^ug?h+$/,Ui,"ughh"],[/^uh[ -]?oh$/,Ui,"uhoh"],[/[a-z]-ish$/,Wi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Zi,"polish-male"]],k:[[/^(k){2}$/,Ui,"kkkk"]],l:[[/.[gl]ial$/,Wi,"familial"],[/.[^aeiou]ful$/,Wi,"fitful"],[/.[nrtumcd]al$/,Wi,"natal"],[/.[^aeiou][ei]al$/,Wi,"familial"]],m:[[/.[^aeiou]ium$/,Li,"magnesium"],[/[^aeiou]ism$/,Li,"schism"],[/^[hu]m+$/,Ui,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Wi,"republican"],[/[^aeiou]ician$/,Ri,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ui,"noooo"],[/^(yo)+$/,Ui,"yoo"],[/^wo{2,}[pt]?$/,Ui,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Li],[/[^i]fer$/,Mi],[/.[^aeiou][ao]pher$/,Ri],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Wi],[/[aeiou].*ist$/,Wi],[/^[a-z]et$/,_i]],s:[[/.[^aeiou]ises$/,Ji],[/.[rln]ates$/,Ji],[/.[^z]ens$/,_i],[/.[lstrn]us$/,Li],[/.[aeiou]sks$/,Ji],[/.[aeiou]kes$/,Ji],[/[aeiou][^aeiou]is$/,Li],[/[a-z]'s$/,Qi],[/^yes+$/,Ui]],v:[[/.[^aeiou][ai][kln]ov$/,Zi]],y:[[/.[cts]hy$/,Wi],[/.[st]ty$/,Wi],[/.[tnl]ary$/,Wi],[/.[oe]ry$/,Li],[/[rdntkbhs]ly$/,Ki],[/.(gg|bb|zz)ly$/,Wi],[/...lly$/,Ki],[/.[gk]y$/,Wi],[/[bszmp]{2}y$/,Wi],[/.[ai]my$/,Wi],[/[ea]{2}zy$/,Wi],[/.[^aeiou]ity$/,Li]]};const Xi="Verb",es="Noun";var ts={leftTags:[["Adjective",es],["Possessive",es],["Determiner",es],["Adverb",Xi],["Pronoun",Xi],["Value",es],["Ordinal",es],["Modal",Xi],["Superlative",es],["Demonym",es],["Honorific","Person"]],leftWords:[["i",Xi],["first",es],["it",Xi],["there",Xi],["not",Xi],["because",es],["if",es],["but",es],["who",Xi],["this",es],["his",es],["when",es],["you",Xi],["very","Adjective"],["old",es],["never",Xi],["before",es],["a","Singular"],["the",es],["been",Xi]],rightTags:[["Copula",es],["PastTense",es],["Conjunction",es],["Modal",es]],rightWords:[["there",Xi],["me",Xi],["man","Adjective"],["only",Xi],["him",Xi],["it",Xi],["were",es],["took",es],["himself",Xi],["went",es],["who",es],["jr","Person"]]},ns={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},rs={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},as={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},os={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},is={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ss=/^.([0-9]+)/;var ls=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ss);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ss,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},cs=/^([0-9]+)/,hs=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(cs);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(cs,"")]}(n[0],n[1])}))};var ds=function(e={}){return(e=Object.assign({},e)).rules=hs(e.rules),e.rules=us(e.rules),e.rev&&(e.rev=hs(e.rev),e.rev=us(e.rev)),e.exceptions=hs(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},ps=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const ms=ds({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),gs=ds(os),fs=ds(rs),vs=ds(as),bs=ps(ms),ys=ps(gs),ws=ps(fs),Ps=ps(vs),ks=ds(ns),As=ds(is);var js={fromPast:ms,fromPresent:gs,fromGerund:fs,fromParticiple:vs,toPast:bs,toPresent:ys,toGerund:ws,toParticiple:Ps,toComparative:ks,toSuperlative:As,fromComparative:ps(ks),fromSuperlative:ps(As)},xs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ns=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Es=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Is[t].forEach((n=>e[n]=t)),e)),{});var Gs=Is,Ts=function(e){let t=e.substring(e.length-3);if(!0===Gs.hasOwnProperty(t))return Gs[t];let n=e.substring(e.length-2);return!0===Gs.hasOwnProperty(n)?Gs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ds={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Cs=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ts(e)),Ds.hasOwnProperty(e))c=Ds[e];else if("Participle"===n)c=ls(l,i);else if("PastTense"===n)c=ls(l,r);else if("PresentTense"===n)c=ls(l,a);else{if("Gerund"!==n)return e;c=ls(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};const Os=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ls(i,n),PresentTense:ls(i,r),Gerund:ls(i,a),FutureTense:"will "+e},u=ls(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Vs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Bs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],zs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var $s=function(e){if(zs.hasOwnProperty(e))return zs[e];let t=Vs(e,Bs);return t||e+"ly"};const Fs=function(e,t){const n=t.two.models.toSuperlative;return ls(e,n)},Ss=function(e,t){const n=t.two.models.toComparative;return ls(e,n)},Hs="ically",Ws=new Set(["analyt"+Hs,"chem"+Hs,"class"+Hs,"clin"+Hs,"crit"+Hs,"ecolog"+Hs,"electr"+Hs,"empir"+Hs,"frant"+Hs,"grammat"+Hs,"ident"+Hs,"ideolog"+Hs,"log"+Hs,"mag"+Hs,"mathemat"+Hs,"mechan"+Hs,"med"+Hs,"method"+Hs,"method"+Hs,"mus"+Hs,"phys"+Hs,"phys"+Hs,"polit"+Hs,"pract"+Hs,"rad"+Hs,"satir"+Hs,"statist"+Hs,"techn"+Hs,"technolog"+Hs,"theoret"+Hs,"typ"+Hs,"vert"+Hs,"whims"+Hs]),Ms=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Js=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ls={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var qs=function(e){return e.endsWith("ly")?Ws.has(e)?e.replace(/ically/,"ical"):Js.has(e)?null:Ls.hasOwnProperty(e)?Ls[e]:Vs(e,Ms)||e:null};const Ks=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Us={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Rs=new Set(["terrible","annoying"]);var _s={noun:{toPlural:Oo,toSingular:Es,all:Oo},verb:{toInfinitive:Cs,conjugate:Os,all:function(e,t){let n=Os(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},adjective:{toSuperlative:Fs,toComparative:Ss,toAdverb:$s,toNoun:function(e){if(Us.hasOwnProperty(e))return Us[e];if(Rs.has(e))return null;let t=Vs(e,Ks);return t||e+"ness"},fromAdverb:qs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ls(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ls(e,n)},all:function(e,t){let n=[e];return n.push(Fs(e,t)),n.push(Ss(e,t)),n.push($s(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}}},Qs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Zs=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Qs.hasOwnProperty(i)&&Qs[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},Ys=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!tl.find((t=>e.endsWith(t)))},rl={two:{quickSplit:Ys,expandLexicon:Zs,transform:_s,looksPlural:nl}},al=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const ol=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var il=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=ol(n,"Infinitive","PastTense"),Object.assign(s,l),l=ol(r,"Infinitive","Verb"),Object.assign(s,l),l=ol(a,"Infinitive","Gerund"),Object.assign(s,l),l=ol(o,"Adjective","Superlative"),Object.assign(s,l),l=ol(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let sl={two:{models:js}};const ll={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},ul=function(e,t){const n={model:t,methods:rl};let{lex:r,_multi:a}=rl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},cl=function(e,t,n){let r=Os(e,sl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},hl=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=ll[o],"Noun|Verb"!==o&&"Person|Verb"!==o||cl(a,r,!1),"Adj|Present"===o&&(cl(a,r,!0),function(e,t,n){let r=Fs(e,n);t[r]=t[r]||"Superlative";let a=Ss(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Cs(a,sl,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Cs(a,sl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=ul(n,t)};var dl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=ul(e.one.lexicon,e)).one.lexicon,e),e=hl(e.two.switches,e),e=il(e),e=al(e)};let pl={one:{_multiCache:{},lexicon:Bo},two:{irregularPlurals:Po,models:js,suffixPatterns:zi,prefixPatterns:Hi,endsWith:Yi,neighbours:ts,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:zo,clues:ki,uncountable:{},orgWords:xs}};pl=dl(pl);var ml=pl;const gl=/^(under|over|mis|re|un|dis|semi)-?/;var fl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(gl.test(a.normal)){let e=a.normal.replace(gl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},vl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const bl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var yl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(nl(e.normal)?vl(e,"Plural","3-plural-guess"):vl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ts(e.normal);t&&vl(e,t,"3-verb-tense-guess")}}(r)};const wl=/^\p{Lu}[\p{Ll}'’]/u,Pl=/[0-9]/,kl=["Date","Month","WeekDay","Unit"],Al=/^[IVXLCDM]{2,}$/,jl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,xl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Nl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===wl.test(o)&&!1===Pl.test(o)?kl.find((e=>r.tags.has(e)))?null:(yl(e,t,n),r.tags.has("Noun")||r.tags.clear(),vl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Al.test(o)&&jl.test(o)&&!xl[r.normal]?(vl(r,"RomanNumeral","2-xvii"),!0):null};const El=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var Il=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=El(r.normal,n.two.suffixPatterns);if(null!==e)return vl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=El(r.implicit,n.two.suffixPatterns),null!==e))return vl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Gl=/['‘’‛‵′`´]/,Tl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return vl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Ol=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Vl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Ol.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Bl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},zl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var $l=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Vl(a)||Vl(o))return vl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Bl(a)||Bl(o))return vl(n,"Year","2-tagYear-close");if(zl(e[t-2])||zl(e[t+2]))return vl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return vl(n,"Year","2-tagYear-noun")}}}return null};const Fl=/^[A-Z]('s|,)?$/,Sl=/^[A-Z-]+$/,Hl=/([A-Z]\.)+[A-Z]?,?$/,Wl=/[A-Z]{2,}('s|,)?$/,Ml=/([a-z]\.)+[a-z]\.?$/,Jl={I:!0,A:!0};var Ll=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Sl.test(n)||n.length>5||Jl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Hl.test(n)&&!0!==Ml.test(n)&&!0!==Fl.test(n)&&!0!==Wl.test(n))}(r,n)?(r.tags.clear(),vl(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Jl.hasOwnProperty(r.text)&&Fl.test(r.text)?(r.tags.clear(),vl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(vl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Sl.test(r.text)&&r.text.length<=6?(vl(r,"Acronym","3-titlecase-acronym"),!0):null};const ql=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Kl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ul=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||ql(e[t-1],a),l=l||ql(e[t+1],o),l=l||Kl(e[t-1],r),l=l||Kl(e[t+1],i),l)return vl(s,l,"3-[neighbour]"),yl(e,t,n),e[t].confidence=.2,!0}return null};const Rl=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var _l=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Rl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Rl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ql=function(e,t,n){0===e[t].tags.size&&(vl(e[t],"Noun","3-[fallback]"),yl(e,t,n),e[t].confidence=.1)};const Zl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Yl=(e,t,n)=>0!==t||e[1]?null:n,Xl={"Adj|Gerund":(e,t)=>Zl(e,t),"Adj|Noun":(e,t)=>Zl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Zl(e,t),"Adj|Present":(e,t)=>Zl(e,t),"Noun|Gerund":(e,t)=>Zl(e,t),"Noun|Verb":(e,t)=>Zl(e,t)||Yl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Zl(e,t)||Yl(e,t,"PresentTense"),"Person|Noun":(e,t)=>Zl(e,t),"Person|Verb":(e,t)=>0!==t?Zl(e,t):null};var eu=Xl;const tu="undefined"!=typeof process&&process.env?process.env:self.env||{},nu=/^(under|over|mis|re|un|dis|semi)-?/,ru=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&tu.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},au=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&tu.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var ou=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(nu.test(l)&&!o[l]&&(l=l.replace(nu,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=ru(e[t+1],n.afterWords);return o=o||ru(e[t-1],n.beforeWords),o=o||au(e[t-1],n.beforeTags,a),o=o||au(e[t+1],n.afterTags,a),o}(e,t,i[o],r);eu[o]&&(u=eu[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),yl(e,t,r)):tu.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},iu=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(vl(o,"Verb","3-[prefix]"),vl(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(vl(o,"Adjective","3-[prefix]"),vl(o,"Prefix","3-[prefix]")))};const su={tagSwitch:fl,checkSuffix:Il,checkRegex:Dl,checkCase:Nl,checkPrefix:Cl,checkHyphen:iu,checkYear:$l},lu={checkAcronym:Ll,neighbours:Ul,orgWords:_l,nounFallback:Ql,switches:ou},uu=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var pu=function(e){const t=e.world,n=Object.keys(du);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=xu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=ju},Eu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Iu=/'/;var Gu=function(e,t){let n=e[t].normal.split(Iu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Tu=/'/;var Du=function(e,t){let n=e[t].normal.split(Tu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Cu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Ou={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Vu={in:!0,by:!0,for:!0};var Bu=(e,t)=>{let n=e[t];if(Ou.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Vu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const zu=/'/,$u=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Fu={d:(e,t)=>Du(e,t),t:(e,t)=>Cu(e,t),s:(e,t,n)=>Bu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Gu(e,t)},Su=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Hu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===zu.test(r[o].normal)&&([,i]=r[o].normal.split(zu));let s=null;Fu.hasOwnProperty(i)&&(s=Fu[i](r,o,t)),s&&(s=Su(s,e),Eu(n,[a,o],s),$u(n[a],e,o,s.length))}}))}},Wu={compute:Hu,api:Nu,hooks:["contractionTwo"]};const Mu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Ju=["i","we","they"];let Lu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Mu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Mu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Mu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ju,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ju,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ju,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),qu=null;var Ku={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;qu=qu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(qu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Uu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ku,model:{two:{matches:Lu}},hooks:["postTagger"]};var Ru=Uu,_u=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},Qu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=_u(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Zu={lib:{lazy:Qu}},Yu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},Xu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Yu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},ec={api:function(e){e.prototype.swap=Xu}};v.plugin(Pu),v.plugin(Wu),v.plugin(Ru),v.plugin(Zu),v.plugin(ec);var tc=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter((e=>e.wordCount()>5&&e.match("#Verb+").length>=2));if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},nc=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r},rc=function(e){e.prototype.chunks=nc,e.prototype.clauses=tc};const ac={this:"Noun",then:"Pivot"};var oc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},pc={chunks:function(e){const{document:t,world:n}=e;oc(t),ic(t),uc(e,t,n),hc(t),dc(t)}},mc={compute:pc,api:rc,hooks:["chunks"]};const gc=/'s$/;var fc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(gc,""),e.normal=e.normal.replace(gc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const vc=/\(/,bc=/\)/,yc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(vc,"");let t=e[e.length-1];t.post=t.post.replace(bc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const Pc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},kc=RegExp("("+Object.keys(Pc).join("|")+")"),Ac=RegExp("("+Object.values(Pc).join("|")+")"),jc=function(e,t){const n=e[t].pre.match(kc)[0]||"";if(!n||!Pc[n])return null;const r=Pc[n];for(;t{e[0].pre=e[0].pre.replace(kc,"");let t=e[e.length-1];t.post=t.post.replace(Ac,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Nc=/\./g;var Ec=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Nc,""),e.normal=e.normal.replace(Nc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Nc,""),e.normal=e.normal.replace(Nc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},Ic=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Gc=(e,t)=>"number"==typeof t?e.eq(t):e,Tc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Dc=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Tc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let o=Tc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Gc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Gc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Gc(t,e),new Adjectives(t.document,t.pointer)}};const Cc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},Oc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let Vc=[["emojis","emoji"],["atmentions","atMentions"]];var Bc=function(e){Oc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Cc,Vc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},zc={api:function(e){Bc(e),fc(e),wc(e),xc(e),Dc(e),Ic(e),Ec(e)}};const $c=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Fc={case:e=>{$c(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;$c(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{$c(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{$c(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Sc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Hc="unicode|punctuation|whitespace|acronyms",Wc="|case|contractions|parentheses|quotations|emoji|honorifics",Mc={light:Sc(Hc),medium:Sc(Hc+Wc),heavy:Sc(Hc+Wc+"|possessives|adverbs|nouns|verbs")};var Jc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Mc[e]),Object.keys(e).forEach((t=>{Fc.hasOwnProperty(t)&&Fc[t](this,e[t])})),this}}},Lc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const qc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Kc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Rc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Uc(e,t),isSubordinate:Kc(e),root:t}};const _c=e=>e.text(),Qc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Zc=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Yc=function(e){let t=Rc(e);return{root:_c(t.root),number:Zc(t.number),determiner:_c(t.determiner),adjectives:Qc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Xc={tags:!0};var eh=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Xc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Xc),e};const th={tags:!0};var nh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,th).tag("Singular","toPlural"),e};const rh=(e,t)=>"number"==typeof t?e.eq(t):e;var ah=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return rh(this,e).map(Rc)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Yc(t)),n}),[])}isPlural(e){let t=this.filter((e=>Rc(e).isPlural));return rh(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Rc(e).adjectives;n.found&&(t=t.concat(n))})),rh(t,e)}toPlural(e){return rh(this,e).map((e=>eh(e,Rc(e))))}toSingular(e){return rh(this,e).map((e=>{let t=Rc(e);return nh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Lc(this);return t=rh(t,e),new Nouns(this.document,t.pointer)}},oh={api:ah},ih=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},sh=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(lh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(lh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(lh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},ch=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const dh=/^([0-9,. ]+)\/([0-9,. ]+)$/,ph={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},mh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var gh=function(e){if(!0===ph.hasOwnProperty(e))return ph[e];if("a"===e||"an"===e)return 1;const t=sh(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=vh(n),r=vh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:vh(n);let a=r.text("reduced");return fh.test(a)&&(a=a.replace(fh,""),r=r.replaceWith(a)),r=bh.hasOwnProperty(a)?bh[a]:vh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:vh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},wh=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const Ph=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],kh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Ah=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],jh=function(e){let t=[];if(e>100)return t;for(let n=0;n=Ph[n][1]&&(e-=Ph[n][1],t.push(Ph[n][0]));return kh[e]&&t.push(kh[e]),t};var xh=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=wh(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Ah.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(jh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=wh(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Nh=function(e){return e.numerator&&e.denominator?`${xh({num:e.numerator})} out of ${xh({num:e.denominator})}`:""};const Eh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Ih=e=>{let t=xh(e).split(" "),n=t[t.length-1];return Eh.hasOwnProperty(n)?t[t.length-1]=Eh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Gh=function(e){if(!e.numerator||!e.denominator)return"";let t=xh({num:e.numerator}),n=Ih({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Th=(e,t)=>"number"==typeof t?e.eq(t):e;var Dh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Th(this,e).map(yh)}get(e){return Th(this,e).map(yh)}json(e){return Th(this,e).map((t=>{let n=t.toView().json(e)[0],r=yh(t);return n.fraction=r,n}),[])}toDecimal(e){return Th(this,e).forEach((e=>{let{decimal:t}=yh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return Th(this,e).forEach((e=>{let t=yh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return Th(this,e).forEach((e=>{let t=yh(e),n=Gh(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return Th(this,e).forEach((e=>{let t=yh(e),n=Nh(t);e.replaceWith(n)})),this}toPercentage(e){return Th(this,e).forEach((e=>{let{decimal:t}=yh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=ih(this);return t=Th(t,e),new Fractions(this.document,t.pointer)}};const Ch="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Oh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Ch+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Ch+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Ch+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Ch+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Ch})`),r=e.has("("+Ch+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Ch+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Ch+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},Vh=function(e){if("string"==typeof e)return{num:gh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=yh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=gh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Bh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=wh(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const zh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},$h={"%":"percent","°":"degrees"};var Fh=function(e){let t={suffix:"",prefix:e.prefix};return zh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+zh[e.prefix],t.prefix=""),$h.hasOwnProperty(e.suffix)&&(t.suffix+=" "+$h[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},Sh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Fh(e);return t+Ih(e)+n}if("Ordinal"===t)return e.prefix+Bh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Fh(e);return t+xh(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Hh=(e,t)=>"number"==typeof t?e.eq(t):e;var Wh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Hh(this,e).map(Vh)}get(e){return Hh(this,e).map(Vh).map((e=>e.num))}json(e){return Hh(this,e).map((t=>{let n=t.toView().json(e)[0],r=Vh(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=Vh(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Sh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=Vh(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Sh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Sh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Sh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Sh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>Vh(t).num===e))}greaterThan(e){return this.filter((t=>Vh(t).num>e))}lessThan(e){return this.filter((t=>Vh(t).num{let r=Vh(n).num;return r>e&&r{let n=Vh(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Sh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=Vh(e).num);let t=this.map((t=>{let n=Vh(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Sh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Oh(this);return t=Hh(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Oh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=Hh(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Oh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=Hh(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Mh={api:function(e){Dh(e),Wh(e)}};const Jh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Lh=function(e={}){return!1!==(e=Object.assign({},Jh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},qh={api:function(e){e.prototype.redact=Lh}};var Kh=qh,Uh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},Rh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},_h=function(e){let t=e.clauses(),n=Rh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Qh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Zh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},Yh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},Xh=function(e){return e.verbs().toInfinitive(),e};const ed=(e,t)=>"number"==typeof t?e.eq(t):e;var td=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=_h(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n}),[])}toPastTense(e){return ed(this,e).map((e=>(_h(e),Qh(e))))}toPresentTense(e){return ed(this,e).map((e=>(_h(e),Zh(e))))}toFutureTense(e){return ed(this,e).map((e=>(_h(e),e=Yh(e))))}toInfinitive(e){return ed(this,e).map((e=>(_h(e),Xh(e))))}toNegative(e){return ed(this,e).map((e=>(_h(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return ed(this,e).map((e=>(_h(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return ed(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return ed(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=ed(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Uh(this);return ed(t,e)}};Object.assign(e.prototype,t)},nd={api:td},rd=function(e){return e.match("#Honorific+? #Person+")},ad=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const od="male",id="female",sd={mr:od,mrs:id,miss:id,madam:id,king:od,queen:id,duke:od,duchess:id,baron:od,baroness:id,count:od,countess:id,prince:od,princess:id,sire:od,dame:id,lady:id,ayatullah:od,congressman:od,congresswoman:id,"first lady":id,mx:null};var ld=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return id;if(n.has("#MaleName"))return od;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),sd.hasOwnProperty(e))return sd[e];if(/^her /.test(e))return id;if(/^his /.test(e))return od}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return od;if(n&&!t)return id}return null};const ud=(e,t)=>"number"==typeof t?e.eq(t):e;var cd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return ud(this,e).map(ad)}json(e){return ud(this,e).map((t=>{let n=t.toView().json(e)[0],r=ad(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:ld(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=rd(this);return t=ud(t,e),new People(this.document,t.pointer)}},hd=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},dd=function(e){e.prototype.places=function(t){let n=hd(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},pd=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const md=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var gd=function(e){e.prototype.topics=md},fd={api:function(e){cd(e),dd(e),pd(e),gd(e)}},vd=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},bd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},yd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const wd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Pd=function(e){return e.match("#Negative")},kd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Ad=function(e){let t=e.clone();t.contractions().expand();const n=bd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:yd(t,n),auxiliary:wd(t,n),negative:Pd(t),phrasal:kd(n)}};const jd={tense:"PresentTense"},xd={conditional:!0},Nd={tense:"FutureTense"},Ed={progressive:!0},Id={tense:"PastTense"},Gd={complete:!0,progressive:!1},Td={passive:!0},Dd=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Cd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[jd]],["^wanted to #Infinitive$",[Id]],["^will want to #Infinitive$",[Nd]]],"gerund-phrase":[["^#PastTense #Gerund$",[Id]],["^#PresentTense #Gerund$",[jd]],["^#Infinitive #Gerund$",[jd]],["^will #Infinitive #Gerund$",[Nd]],["^have #PastTense #Gerund$",[Id]],["^will have #PastTense #Gerund$",[Id]]],"simple-present":[["^#PresentTense$",[jd]],["^#Infinitive$",[jd]]],"simple-past":[["^#PastTense$",[Id]]],"simple-future":[["^will #Adverb? #Infinitive",[Nd]]],"present-progressive":[["^(is|are|am) #Gerund$",[jd,Ed]]],"past-progressive":[["^(was|were) #Gerund$",[Id,Ed]]],"future-progressive":[["^will be #Gerund$",[Nd,Ed]]],"present-perfect":[["^(has|have) #PastTense$",[Id,Gd]]],"past-perfect":[["^had #PastTense$",[Id,Gd]],["^had #PastTense to #Infinitive",[Id,Gd]]],"future-perfect":[["^will have #PastTense$",[Nd,Gd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Id,Ed]]],"past-perfect-progressive":[["^had been #Gerund$",[Id,Ed]]],"future-perfect-progressive":[["^will have been #Gerund$",[Nd,Ed]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Id,Td]],["^(was|were) being (#PastTense|#Participle)",[Id,Td]],["^(had|have) been (#PastTense|#Participle)",[Id,Td]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[jd,Td]],["^(is|are|am) being (#PastTense|#Participle)",[jd,Td]],["^has been (#PastTense|#Participle)",[jd,Td]]],"passive-future":[["will have been (#PastTense|#Participle)",[Nd,Td,xd]],["will be being? (#PastTense|#Participle)",[Nd,Td,xd]]],"present-conditional":[["would be #PastTense",[jd,xd]]],"past-conditional":[["would have been #PastTense",[Id,xd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Nd]]],"auxiliary-past":[["^did #Infinitive$",[Id,{plural:!1}]],["^used to #Infinitive$",[Id,Gd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[jd,Gd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Id]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Od=[];Object.keys(Cd).map((e=>{Cd[e].forEach((t=>{Od.push({name:e,match:t[0],data:Dd(t[1])})}))}));var Vd=Od,Bd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),zd(r)&&(n.remove(r),r=n.last()),zd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:$d(t,e)}};const Sd=e=>e,Hd=(e,t)=>{let n=Fd(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Wd=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Fd(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Md=function(e,t){let n=Fd(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Jd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Ld=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Jd(e)),r&&e.replace(t.root,r),e},qd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Kd=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Ud=function(e){return e&&e.isView?e.text("normal"):""},Rd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Jd(e))};var _d=function(e){let t=Ad(e);e=e.clone().toView();const n=Bd(e,t);return{root:t.root.text(),preAdverbs:Kd(t.adverbs.pre),postAdverbs:Kd(t.adverbs.post),auxiliary:Ud(t.auxiliary),negative:t.negative.found,prefix:Ud(t.prefix),infinitive:Rd(t.root),grammar:n}};const Qd={tags:!0};var Zd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Jd(r)),i&&e.replace(r,i,Qd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Md(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Yd={tags:!0},Xd={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Jd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Fd(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Yd),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Xd.simple(e,t),e=Xd.noAux(e,t))},hasHad:e=>(e.replace("has","had",Yd),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Jd(a)),n(o,e.model).Participle}},ep={infinitive:Xd.simple,"simple-present":Xd.simple,"simple-past":Sd,"simple-future":Xd.both,"present-progressive":e=>(e.replace("are","were",Yd),e.replace("(is|are|am)","was",Yd),e),"past-progressive":Sd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Xd.hasHad,"past-perfect":Sd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=qd(e)),e.remove("have"),e),"present-perfect-progressive":Xd.hasHad,"past-perfect-progressive":Sd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Yd),e),"passive-past":e=>(e.replace("have","had",Yd),e),"passive-present":e=>(e.replace("(is|are)","was",Yd),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Yd),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Sd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Yd),e),"auxiliary-past":Sd,"auxiliary-present":e=>(e.replace("(do|does)","did",Yd),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Yd):(Xd.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Sd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Yd),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Xd.simple(e,t),qd(e),e)};var tp=function(e,t,n){return ep.hasOwnProperty(n)?((e=ep[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const np={tags:!0},rp=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Jd(a)),!1===Hd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Wd(e)),o&&(e=e.replace(a,o,np)).not("#Particle").tag("PresentTense"),e},ap=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Jd(a)),!1===Hd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,np)).not("#Particle").tag("Gerund"),e},op={infinitive:rp,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return rp(e,t);{let t=Fd(e).subject;if(Hd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,np)}return e},"simple-past":rp,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Wd(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else rp(e,t),e=e.remove("will");return e},"present-progressive":Sd,"past-progressive":(e,t)=>{let n=Wd(e);return e.replace("(were|was)",n,np)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(rp(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Fd(e).subject;return Hd(e)||n.has("i")?((e=Ld(e,t)).remove("had"),e):(e.replace("had","has",np),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Sd,"past-perfect-progressive":e=>e.replace("had","has",np),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Wd(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,np),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Sd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Sd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(ap(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Md(e);return e.replace(t.auxiliary,n),e}return ap(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Sd,"modal-infinitive":Sd,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Jd(r)),a&&(e=e.replace(t.root,a,np))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),rp(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Hd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,np),e.remove("will"),e}};var ip=function(e,t,n){return op.hasOwnProperty(n)?((e=op[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const sp={tags:!0},lp=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Jd(r)),o&&(e=e.replace(r,o,sp)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},up=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Jd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,sp),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},cp={infinitive:lp,"simple-present":lp,"simple-past":lp,"simple-future":Sd,"present-progressive":up,"past-progressive":up,"future-progressive":Sd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Sd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Sd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Sd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Sd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Sd,"modal-past":Sd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),lp(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var hp=function(e,t,n){return e.has("will")||e.has("going to")?e:cp.hasOwnProperty(n)?((e=cp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const dp={tags:!0};var pp=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Jd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Wd(e)} ${s}`,e.replace(a,s,dp)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const mp={tags:!0},gp=function(e,t){let n=Md(e);return e.prepend(n+" not"),e},fp=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},vp=e=>e.has("(is|was|am|are|will|were|be)"),bp={"simple-present":(e,t)=>!0===vp(e)?fp(e):(e=Ld(e,t),e=gp(e)),"simple-past":(e,t)=>!0===vp(e)?fp(e):((e=Ld(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===vp(e)?fp(e):gp(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",mp),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=gp(e)).replace("wants","want",mp)};var yp=function(e,t,n){if(e.has("#Negative"))return e;if(bp.hasOwnProperty(n))return e=bp[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===vp(e)?fp(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const wp=(e,t)=>"number"==typeof t?e.eq(t):e;var Pp=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return wp(this,e).map(Ad)}json(e,t){let n=wp(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=_d(t),n}),[]);return n}subjects(e){return wp(this,e).map((e=>(Ad(e),Fd(e).subject)))}adverbs(e){return wp(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return wp(this,e).filter((e=>!0!==Fd(e).plural))}isPlural(e){return wp(this,e).filter((e=>!0===Fd(e).plural))}isImperative(e){return wp(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return Zd(e,t,n.form)}))}toPresentTense(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return ip(e,t,n.form)}))}toPastTense(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return tp(e,t,n.form)}))}toFutureTense(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return hp(e,t,n.form)}))}toGerund(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return pp(e,t,n.form)}))}conjugate(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Zd(e.clone(),t,n.form).text("normal"),PastTense:tp(e.clone(),t,n.form).text("normal"),PresentTense:ip(e.clone(),t,n.form).text("normal"),FutureTense:hp(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return yp(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=vd(this);return t=wp(t,e),new Verbs(this.document,t.pointer)}},kp={api:Pp};return v.plugin(mc),v.plugin(zc),v.plugin(Jc),v.plugin(oh),v.plugin(Mh),v.plugin(Kh),v.plugin(nd),v.plugin(fd),v.plugin(kp),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/three/compromise-three.mjs b/builds/three/compromise-three.mjs index 6129ed5e6..730392019 100644 --- a/builds/three/compromise-three.mjs +++ b/builds/three/compromise-three.mjs @@ -1 +1 @@ -var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var v=f;var b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},j=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},N=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},x=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?j(n):(j(n),j([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!k(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||k(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var T=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const G=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},C=e=>"[object Array]"===Object.prototype.toString.call(e),D=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:C(e)?C(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=T(e),e)))}(d),n?(G(t.update([u]).firstTerm()),x(h,u,d,r)):(G(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},z.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var $=z;var F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=F(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const W={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};W.deHyphenate=W.dehyphenate,W.toQuotation=W.toQuotations;var M=W;var J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var _={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}};var Q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,H,M,U,_,Q);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null};var le=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const me=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,pe=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(me);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(pe),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ke=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},je={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},Ne=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=Ne(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&je.hasOwnProperty(l)&&(c=je[l](r,s)),c?(c=xe(c,e),ne(n,[i,s],c),ke(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=fe(r,s),c&&(c=xe(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ke(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=xe(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]};var Te=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===Ge.test(l)){let e=l.replace(Ge,"");if(i.hasOwnProperty(e)&&e.length>3&&Ce.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}};var ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Oe,lib:Be,hooks:["lexicon"]};var $e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const We=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=We(e.goNext,void 0),e.failTo=We(e.failTo,0),e.endAs=We(e.endAs,null),e};const Je={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};Je.compile=Je.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Je};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Qe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Qe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e)){return e.fullPointer.length>0}if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Qe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,mt=/&&/,pt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=pt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){mt.test(e)?(n.choices=e.split(mt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var kt=Pt;const At=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};var Nt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform&&t.methods.two.transform.verbConjugate){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform;if(!n)return[];let r=n(e.root,t.model);return delete r.FutureTense,Object.values(r).filter((e=>e))}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,r=[e.root];return n?(r.push(n(e.root,t.model)),r):r}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:a}=t.methods.two.transform,o=[e.root];return n&&r&&a?(o.push(n(e.root,t.model)),o.push(r(e.root,t.model)),o.push(a(e.root,t.model)),o):o}(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e})),e};var xt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var Et=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>kt(e,t))),r=jt(r,n),r=Nt(r,n),r=xt(r),r};const It=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Tt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),zt=(e,t)=>-1!==e.pre.indexOf(t),$t={hasQuote:e=>Ct.test(e.pre)||Dt.test(e.post),hasComma:e=>Bt(e,","),hasPeriod:e=>!0===Bt(e,".")&&!1===Bt(e,"..."),hasExclamation:e=>Bt(e,"!"),hasQuestionMark:e=>Bt(e,"?")||Bt(e,"¿"),hasEllipses:e=>Bt(e,"..")||Bt(e,"…")||zt(e,"..")||zt(e,"…"),hasSemicolon:e=>Bt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ot.test(e.post)||Ot.test(e.pre),hasDash:e=>Vt.test(e.post)||Vt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};$t.hasQuotation=$t.hasQuote;var Ft=$t;let St=function(){};St=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Gt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Ft[t.method]&&!0===Ft[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>St(e,t,n,r))):t.choices.some((t=>St(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Ht=St;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Mt(e,e.t).length=r-e.t}return e.t=r,!0};const Lt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Ht(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Ht(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Mt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Ut=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var Rt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Ht(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Ht(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Ht(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?Ut(e,r,t[e.r+1]):(e.t+=1,!0)};var _t=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Ht(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Ht(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Qt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var Zt=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&_t(e),r.implicit&&e.terms[e.t+1]&&Zt(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Qt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Mt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var Xt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Wt(e,a))if(e.negative){if(!Rt(a))return null}else if(!0!==Ht(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!Yt(a))return null}else{if(!Yt(a))return null}else{if(e.negative&&e.anything)return null;if(!Yt(a))return null}else{if(!Kt(a))return null}else{if(!qt(a))return null}else{if(!Jt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}};var en=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const tn=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},nn=function(e,t,n){let r=Xt(e,t,0,e.length);return r?(r=tn(r,n),r):null};var rn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=nn(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=en(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i};var an={api:ot,methods:{one:{termMethods:Ft,parseMatch:Et,match:rn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const on=/^\../,sn=/^#./,ln=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),on.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var un={html:function(e){let{starts:t,ends:n}=ln(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(hn,""),mn.test(a)&&(a=" "),a=a.replace(dn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(hn,""),a="-"===a?" ":a.replace(cn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&pn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},fn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};fn.clean=fn.normal,fn.reduced=fn.root;var vn=fn;let bn=[],yn=0;for(;yn<64;)bn[yn]=0|4294967296*Math.sin(++yn%Math.PI);function wn(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(yn=i=0;yn>4]+bn[i]+~~o[yn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const Pn={text:!0,terms:!0};let kn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const An=function(e,t){return Object.assign({},e,t)},jn={text:e=>gn(e,{keepPunct:!0},!1),normal:e=>gn(e,An(vn.normal,{keepPunct:!0}),!1),implicit:e=>gn(e,An(vn.implicit,{keepPunct:!0}),!1),machine:e=>gn(e,kn,!1),root:e=>gn(e,An(kn,{form:"root"}),!1),hash:e=>wn(gn(e,{keepPunct:!0},!1)),offset:e=>{let t=jn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};jn.sentences=jn.sentence,jn.clean=jn.normal,jn.reduced=jn.root;const Nn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Pn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&jn[o]&&(a[o]=jn[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};Nn.data=Nn.json;var xn=Nn;var En=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var In={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var Tn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(In.blue("\n ──────")),t.forEach((e=>{console.log(In.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=In.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=In.blue(" │ ")+In.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return In[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))};var Gn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(In.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(In.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(In.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(In.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var Cn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${In.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))};var Dn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(En(t),t):(!1!==e.tags&&(Tn(t),console.log("\n")),!0===e.chunks&&(Gn(t),console.log("\n")),!0===e.highlight&&(Cn(t),console.log("\n")),t)};const On=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Vn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var zn=Bn;var $n={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&vn.hasOwnProperty(e)?t=Object.assign({},vn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Mn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Jn=function(e,t){let n=Mn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r};var Ln=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var qn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Wn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var Rn=function(e,t){let n=Mn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Wn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Qn=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},Zn={union:function(e){e=_n(e,this);let t=Kn(this.fullPointer,e.fullPointer);return t=Qn(t,this.document),this.toView(t)}};Zn.and=Zn.union,Zn.intersection=function(e){e=_n(e,this);let t=Rn(this.fullPointer,e.fullPointer);return t=Qn(t,this.document),this.toView(t)},Zn.not=function(e){e=_n(e,this);let t=Un(this.fullPointer,e.fullPointer);return t=Qn(t,this.document),this.toView(t)},Zn.difference=Zn.not,Zn.complement=function(){let e=this.all(),t=Un(e.fullPointer,this.fullPointer);return t=Qn(t,this.document),this.toView(t)},Zn.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Kn(e,[t])})),e=Qn(e,this.document),this.update(e)};var Yn=function(e){Object.assign(e.prototype,Zn)},Xn={methods:qn,api:Yn};var er=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const tr=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var nr=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(tr(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(tr(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=tr(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var rr=function(e,t){e=nr(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}};var ar=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))};var or=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>t[n].has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var ir=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach((e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)})),!0===r.matchOne))return[a[0]]}return a};var sr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=ar(a,t.hooks);return o=or(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),ir(o,e,n,r)};var lr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===lr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},cr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:er,methods:{one:{buildNet:rr,bulkMatch:sr,bulkTagger:ur}}};const hr=/ /,dr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},mr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),hr.test(t))!function(e,t,n,r){let a=t.split(hr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),mr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;npr(e,t,n,r)))};var gr=pr;var fr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>vr({id:e}))),t}return[vr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},Pr=e=>"[object Array]"===Object.prototype.toString.call(e),kr=e=>(e=e||"").trim(),Ar=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||br.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:yr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=vr({});return e.forEach((e=>{if((e=vr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(wr(t=e).forEach(vr),t);var t},jr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return wr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Nr=function(e){let t=wr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},xr={text:jr,txt:jr,array:Nr,flat:Nr},Er=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(jr(e,!0)),null):xr.hasOwnProperty(t)?xr[t](e):e},Ir=e=>{wr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Tr=/\//;let Gr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=kr(e),!Tr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Gr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||vr({});return new Gr(t)}add(e,t={}){if(Pr(e))return e.forEach((e=>this.add(kr(e),t))),this;e=kr(e);let n=vr({id:e,props:t});return this.json.children.push(n),new Gr(n)}remove(e){return e=kr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return wr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=wr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return wr(this.json)}fillDown(){var e;return e=this.json,wr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Pr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Ir(this.json);let e=wr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Ir(this.json),Er(this.json,e)}debug(){return Ir(this.json),Er(this.json,"debug"),this}};const Cr=function(e){let t=Ar(e);return new Gr(t)};Cr.prototype.plugin=function(e){e(this)};var Dr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Or=function(e){if(Dr.hasOwnProperty(e.id))return Dr[e.id];if(Dr.hasOwnProperty(e.is))return Dr[e.is];let t=e._cache.parents.find((e=>Dr[e]));return Dr[t]};var Vr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:Or(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Br=function(e){return e?"string"==typeof e?[e]:e:[]};var zr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Br(e[t].children),e[t].not=Br(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var $r=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=zr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Cr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Vr(n)},Fr={one:{setTag:gr,unTag:fr,addTags:$r}};const Sr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Hr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Sr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Sr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Wr=Hr;var Mr=function(e){Object.assign(e.prototype,Wr)};var Jr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Lr=new Set(["Auxiliary","Possessive"]);var qr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Lr.has(e)||!t.hasOwnProperty(n))return 1;if(Lr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Kr={model:{one:{tagSet:{}}},compute:{tagRank:qr},methods:Fr,api:Mr,lib:Jr};const Ur=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Rr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,_r=/((?:\r?\n|\r)+)/;var Qr=function(e){let t=[],n=e.split(_r);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const ta={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},na=RegExp("("+Object.keys(ta).join("|")+")","g"),ra=RegExp("("+Object.values(ta).join("|")+")","g"),aa=function(e){if(!e)return!1;let t=e.match(ra);return null!==t&&1===t.length};var oa=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Pa=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(ya);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=fa(n),n=pa(n),n=n.filter((e=>e)),n};let ka=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Aa=new RegExp(`^[${["%","_"].join("")}]+`,"");const ja=/[\p{Punctuation}\s]+$/u,Na=/^[\p{Punctuation}\s]+/u,xa=/['’]/,Ea=/^[a-z]\.([a-z]\.)+/i,Ia=/^'[0-9]{2}/;var Ta=function(e){let t=e,n="",r="";return e=e.replace(Na,(t=>{let r=t.match(ka);return r?(n=t.replace(ka,""),r):"'"===n&&Ia.test(e)?(n="",t):(n=t,"")})),e=e.replace(ja,(a=>{let o=a.match(Aa);return o?(r=a.replace(Aa,""),o):xa.test(a)&&/[sn]['’]$/.test(t)&&!1===xa.test(n)?(r=r.replace(xa,""),"'"):!0===Ea.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}};var Ga=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")};var Ca=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Da=/([A-Z]\.)+[A-Z]?,?$/,Oa=/^[A-Z]\.,?$/,Va=/[A-Z]{2,}('s|,)?$/,Ba=/([a-z]\.)+[a-z]\.?$/;var za=function(e){return function(e){return!0===Da.test(e)||!0===Ba.test(e)||!0===Oa.test(e)||!0===Va.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var $a=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ca(r),r=n(r,t),r=za(r),e.normal=r};var Fa=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{$a(e,t)})),n})),e};const Sa=/[ .][A-Z]\.? *$/i,Ha=/(?:\u2026|\.{2,}) *$/,Wa=/\p{L}/u,Ma=/^[A-Z]\. $/;var Ja=function(e,t){if(!1===Wa.test(e))return!1;if(!0===Sa.test(e))return!1;if(3===e.length&&Ma.test(e))return!1;if(!0===Ha.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},La={one:{killUnicode:Ga,tokenize:{splitSentences:ha,isSentence:Ja,splitTerms:Pa,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ta(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Fa}}};var qa={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ka={},Ua={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Ka[t]=!0,Ua[t]="Abbreviation",void 0!==e[1]&&(Ua[t]=[Ua[t],e[1]])}))}));var Ra=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let _a={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Qa={};Object.keys(_a).forEach((function(e){_a[e].split("").forEach((function(t){Qa[t]=e}))}));const Za=/\//,Ya=/[a-z]\.[a-z]/i,Xa=/[0-9]/;var eo=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Za.test(n)&&!Ya.test(n)&&!Xa.test(n)){let t=n.split(Za);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const to=/^\p{Letter}+-\p{Letter}+$/u;var no=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),to.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var ro=function(e){let t=e.docs,n={};for(let e=0;eso(e,eo),machine:e=>so(e,no),normal:e=>so(e,$a),freq:ro,offset:ao,index:oo,wordCount:io},methods:La,model:{one:{aliases:qa,abbreviations:Ka,prefixes:Ra,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Ua,unicode:Qa}},hooks:["alias","machine","index","id"]};var uo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const co=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var ho=function(e){e.prototype.autoFill=co};var mo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const po={safe:!0,min:3};var go={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},po,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=mo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}};var fo={model:{one:{typeahead:{}}},api:ho,lib:go,compute:uo,hooks:["typeahead"]};v.extend(ee),v.extend(Hn),v.extend(an),v.extend(Xn),v.extend(Kr),v.plugin(Ie),v.extend(lo),v.plugin(P),v.extend(Le),v.extend(fo),v.extend(ze),v.extend(cr);var vo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},bo={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const yo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",wo=yo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Po=function(e){if(void 0!==wo[e])return wo[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var ko=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=jo(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=No(bo[e]);To.test(e)?Object.keys(t).forEach((t=>{if(Co[t]=e,"Noun|Verb"===e){let e=Io(t,Do);Co[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Go[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Go[e]="Emoticon")),delete Go[""],delete Go.null,delete Go[" "];const Oo="Adjective";var Vo={beforeTags:{Determiner:Oo,Possessive:Oo},afterTags:{Adjective:Oo},beforeWords:{seem:Oo,seemed:Oo,seems:Oo,feel:Oo,feels:Oo,felt:Oo,appear:Oo,appears:Oo,appeared:Oo,also:Oo,over:Oo,under:Oo,too:Oo,it:Oo,but:Oo,still:Oo,really:Oo,quite:Oo,well:Oo,very:Oo,deeply:Oo,profoundly:Oo,extremely:Oo,so:Oo,badly:Oo,mostly:Oo,totally:Oo,awfully:Oo,rather:Oo,nothing:Oo,something:Oo,anything:Oo,not:Oo,me:Oo},afterWords:{too:Oo,also:Oo,or:Oo}};const Bo="Gerund";var zo={beforeTags:{Adverb:Bo,Preposition:Bo,Conjunction:Bo},afterTags:{Adverb:Bo,Possessive:Bo,Person:Bo,Pronoun:Bo,Determiner:Bo,Copula:Bo,Preposition:Bo,Conjunction:Bo,Comparative:Bo},beforeWords:{been:Bo,keep:Bo,continue:Bo,stop:Bo,am:Bo,be:Bo,me:Bo,began:Bo,start:Bo,starts:Bo,started:Bo,stops:Bo,stopped:Bo,help:Bo,helps:Bo,avoid:Bo,avoids:Bo,love:Bo,loves:Bo,loved:Bo,hate:Bo,hates:Bo,hated:Bo},afterWords:{you:Bo,me:Bo,her:Bo,him:Bo,them:Bo,their:Bo,it:Bo,this:Bo,there:Bo,on:Bo,about:Bo,for:Bo}};var $o={beforeTags:Object.assign({},Vo.beforeTags,zo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Vo.afterTags,zo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Vo.beforeWords,zo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Vo.afterWords,zo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Fo="Singular";var So={beforeTags:{Determiner:Fo,Possessive:Fo,Acronym:Fo,Noun:Fo,Adjective:Fo,PresentTense:Fo,Gerund:Fo,PastTense:Fo,Infinitive:Fo,Date:Fo},afterTags:{Value:Fo,Modal:Fo,Copula:Fo,PresentTense:Fo,PastTense:Fo,Demonym:Fo},beforeWords:{the:Fo,with:Fo,without:Fo,of:Fo,for:Fo,any:Fo,all:Fo,on:Fo,cut:Fo,cuts:Fo,save:Fo,saved:Fo,saves:Fo,make:Fo,makes:Fo,made:Fo,minus:Fo,plus:Fo,than:Fo,another:Fo,versus:Fo,neither:Fo,favorite:Fo,best:Fo,daily:Fo,weekly:Fo,linear:Fo,binary:Fo,mobile:Fo,lexical:Fo,technical:Fo,computer:Fo,scientific:Fo,formal:Fo},afterWords:{of:Fo,system:Fo,aid:Fo,method:Fo,utility:Fo,tool:Fo,reform:Fo,therapy:Fo,philosophy:Fo,room:Fo,authority:Fo,says:Fo,said:Fo,wants:Fo,wanted:Fo}};const Ho={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Wo={beforeTags:Object.assign({},Vo.beforeTags,So.beforeTags,Ho.beforeTags),afterTags:Object.assign({},Vo.afterTags,So.afterTags),beforeWords:Object.assign({},Vo.beforeWords,So.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vo.afterWords,So.afterWords)};const Mo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Jo={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Lo={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},qo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ko={beforeTags:Object.assign({},Vo.beforeTags,Mo),afterTags:Object.assign({},Vo.afterTags,Jo),beforeWords:Object.assign({},Vo.beforeWords,Lo),afterWords:Object.assign({},Vo.afterWords,qo)};const Uo="Infinitive";var Ro={beforeTags:{Modal:Uo,Adverb:Uo,Negative:Uo,Plural:Uo},afterTags:{Determiner:Uo,Adverb:Uo,Possessive:Uo,Preposition:Uo},beforeWords:{i:Uo,we:Uo,you:Uo,they:Uo,to:Uo,please:Uo,will:Uo,have:Uo,had:Uo,would:Uo,could:Uo,should:Uo,do:Uo,did:Uo,does:Uo,can:Uo,must:Uo,us:Uo,me:Uo,he:Uo,she:Uo,it:Uo,being:Uo},afterWords:{the:Uo,me:Uo,you:Uo,him:Uo,her:Uo,them:Uo,it:Uo,a:Uo,an:Uo,up:Uo,down:Uo,by:Uo,out:Uo,off:Uo,under:Uo,when:Uo,all:Uo,to:Uo,because:Uo,although:Uo,before:Uo,how:Uo,otherwise:Uo,together:Uo,though:Uo,yet:Uo}};const _o={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Qo={beforeTags:Object.assign({},Vo.beforeTags,Ro.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Vo.afterTags,Ro.afterTags,_o.afterTags),beforeWords:Object.assign({},Vo.beforeWords,Ro.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vo.afterWords,Ro.afterWords,{to:void 0})};const Zo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Yo={},Xo={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ei={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ti={beforeTags:Object.assign({},zo.beforeTags,So.beforeTags,Zo),afterTags:Object.assign({},zo.afterTags,So.afterTags,Yo),beforeWords:Object.assign({},zo.beforeWords,So.beforeWords,Xo),afterWords:Object.assign({},zo.afterWords,So.afterWords,ei)};var ni={beforeTags:Object.assign({},Ro.beforeTags,So.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Ro.afterTags,So.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Ro.beforeWords,So.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Ro.afterWords,So.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ri="Person";var ai={beforeTags:{Honorific:ri,Person:ri,Preposition:ri},afterTags:{Person:ri,ProperNoun:ri,Verb:ri},ownTags:{ProperNoun:ri},beforeWords:{hi:ri,hey:ri,yo:ri,dear:ri,hello:ri},afterWords:{said:ri,says:ri,told:ri,tells:ri,feels:ri,felt:ri,seems:ri,thinks:ri,thought:ri,spends:ri,spendt:ri,plays:ri,played:ri,sing:ri,sang:ri,learn:ri,learned:ri,wants:ri,wanted:ri}};const oi="Month",ii={beforeTags:{Date:oi,Value:oi},afterTags:{Date:oi,Value:oi},beforeWords:{by:oi,in:oi,on:oi,during:oi,after:oi,before:oi,between:oi,until:oi,til:oi,sometime:oi,of:oi,this:oi,next:oi,last:oi,previous:oi,following:oi},afterWords:{sometime:oi,in:oi,of:oi,until:oi,the:oi}};var si={beforeTags:Object.assign({},ai.beforeTags,ii.beforeTags),afterTags:Object.assign({},ai.afterTags,ii.afterTags),beforeWords:Object.assign({},ai.beforeWords,ii.beforeWords),afterWords:Object.assign({},ai.afterWords,ii.afterWords)};const li={Place:"Place"},ui={Place:"Place",Abbreviation:"Place"},ci={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},hi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let di="Unit";const mi="Honorific";let pi={first:mi,general:mi,royal:mi,vice:mi,rear:mi,major:mi};const gi={"Adj|Gerund":$o,"Adj|Noun":Wo,"Adj|Past":Ko,"Adj|Present":Qo,"Noun|Verb":ni,"Noun|Gerund":ti,"Person|Noun":{beforeTags:Object.assign({},So.beforeTags,ai.beforeTags),afterTags:Object.assign({},So.afterTags,ai.afterTags),beforeWords:Object.assign({},So.beforeWords,ai.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},So.afterWords,ai.afterWords)},"Person|Date":si,"Person|Verb":{beforeTags:Object.assign({},ai.beforeTags,Ro.beforeTags),afterTags:Object.assign({},ai.afterTags,Ro.afterTags),beforeWords:Object.assign({},ai.beforeWords,Ro.beforeWords),afterWords:Object.assign({},ai.afterWords,Ro.afterWords)},"Person|Place":{beforeTags:Object.assign({},li,ai.beforeTags),afterTags:Object.assign({},ui,ai.afterTags),beforeWords:Object.assign({},ci,ai.beforeWords),afterWords:Object.assign({},hi,ai.afterWords)},"Unit|Noun":{beforeTags:{Value:di},afterTags:{},beforeWords:{per:di,every:di,each:di,square:di,cubic:di,sq:di,metric:di},afterWords:{per:di,squared:di,cubed:di,long:di}},"Honorific|Noun":{beforeTags:{Honorific:mi,ProperNoun:mi,Ordinal:mi},afterTags:{Person:mi,ProperNoun:mi},beforeWords:Object.assign({},pi,{honorable:mi,honourable:mi,worship:mi,excellency:mi,majesty:mi,right:mi}),afterWords:pi}},fi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};gi["Plural|Verb"]={beforeWords:fi(gi["Noun|Verb"].beforeWords,{}),afterWords:fi(gi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:fi(gi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:fi(gi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var vi=gi;const bi="Adjective",yi="Infinitive",wi="PresentTense",Pi="Singular",ki="PastTense",Ai="Adverb",ji="Plural",Ni="Verb",xi="LastName",Ei="Participle";var Ii=[null,null,{ea:Pi,ia:"Noun",ic:bi,ly:Ai,"'n":Ni,"'t":Ni},{oed:ki,ued:ki,xed:ki," so":Ai,"'ll":"Modal","'re":"Copula",azy:bi,eer:"Noun",end:Ni,ped:ki,ffy:bi,ify:yi,ing:"Gerund",ize:yi,ibe:yi,lar:bi,mum:bi,nes:wi,nny:bi,ous:bi,que:bi,rol:Pi,sis:Pi,ogy:Pi,oid:Pi,ian:Pi,zes:wi,eld:ki,ken:Ei,ven:Ei,ten:Ei,ect:yi,ict:yi,ign:yi,ful:bi,bal:bi},{amed:ki,aped:ki,ched:ki,lked:ki,rked:ki,reed:ki,nded:ki,mned:bi,cted:ki,dged:ki,ield:Pi,akis:xi,cede:yi,chuk:xi,czyk:xi,ects:wi,ends:Ni,enko:xi,ette:Pi,wner:Pi,fies:wi,fore:Ai,gate:yi,gone:bi,ices:ji,ints:ji,ruct:yi,ines:ji,ions:ji,less:bi,llen:bi,made:bi,nsen:xi,oses:wi,ould:"Modal",some:bi,sson:xi,tion:Pi,tage:"Noun",ique:Pi,tive:bi,tors:"Noun",vice:Pi,lier:Pi,fier:Pi,wned:ki,gent:Pi,tist:Pi,pist:Pi,rist:Pi,mist:Pi,yist:Pi,vist:Pi,lite:Pi,site:Pi,rite:Pi,mite:Pi,bite:Pi,mate:Pi,date:Pi,ndal:Pi,vent:Pi,uist:Pi,gist:Pi,note:Pi,cide:Pi,wide:bi,vide:yi,ract:yi,duce:yi,pose:yi,eive:yi,lyze:yi,lyse:yi,iant:bi,nary:bi},{elist:Pi,holic:Pi,phite:Pi,tized:ki,urned:ki,eased:ki,ances:ji,bound:bi,ettes:ji,fully:Ai,ishes:wi,ities:ji,marek:xi,nssen:xi,ology:"Noun",osome:Pi,tment:Pi,ports:ji,rough:bi,tches:wi,tieth:"Ordinal",tures:ji,wards:Ai,where:Ai,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Pi,scent:Pi,onist:Pi,anist:Pi,alist:Pi,olist:Pi,icist:Pi,ounce:yi,iable:bi,borne:bi,gnant:bi,inant:bi,igent:bi,atory:bi,rient:Pi,dient:Pi},{auskas:xi,parent:Pi,cedent:Pi,ionary:Pi,cklist:Pi,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:xi,borough:"Place",sdottir:xi}];const Ti="Adjective";var Gi=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Ti,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Ti,tele:"Noun","pro-":Ti,"mis-":"Verb","dis-":"Verb","pre-":Ti},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Ti,radio:"Noun",tetra:"Noun","omni-":Ti,"post-":Ti},{pseudo:Ti,"extra-":Ti,"hyper-":Ti,"inter-":Ti,"intra-":Ti,"deca-":Ti},{electro:"Noun"}];const Ci="Adjective",Di="Infinitive",Oi="PresentTense",Vi="Singular",Bi="PastTense",zi="Expression",$i="LastName";var Fi={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,$i],[/.[^aeiou]ica$/,Vi,"harmonica"],[/^([hyj]a+)+$/,zi,"haha"]],c:[[/.[^aeiou]ic$/,Ci]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Bi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Bi,"rammed"],[/.[aeiou][sg]hed$/,Bi,"gushed"],[/.[aeiou]red$/,Bi,"hired"],[/.[aeiou]r?ried$/,Bi,"hurried"],[/[^aeiou]ard$/,Vi,"steward"],[/[aeiou][^aeiou]id$/,Ci,""],[/.[vrl]id$/,Ci,"livid"],[/..led$/,Bi,"hurled"],[/.[iao]sed$/,Bi,""],[/[aeiou]n?[cs]ed$/,Bi,""],[/[aeiou][rl]?[mnf]ed$/,Bi,""],[/[aeiou][ns]?c?ked$/,Bi,"bunked"],[/[aeiou]gned$/,Bi],[/[aeiou][nl]?ged$/,Bi],[/.[tdbwxyz]ed$/,Bi],[/[^aeiou][aeiou][tvx]ed$/,Bi],[/.[cdflmnprstv]ied$/,Bi,"emptied"]],e:[[/.[lnr]ize$/,Di,"antagonize"],[/.[^aeiou]ise$/,Di,"antagonise"],[/.[aeiou]te$/,Di,"bite"],[/.[^aeiou][ai]ble$/,Ci,"fixable"],[/.[^aeiou]eable$/,Ci,"maleable"],[/.[ts]ive$/,Ci,"festive"],[/[a-z]-like$/,Ci,"woman-like"]],h:[[/.[^aeiouf]ish$/,Ci,"cornish"],[/.v[iy]ch$/,$i,"..ovich"],[/^ug?h+$/,zi,"ughh"],[/^uh[ -]?oh$/,zi,"uhoh"],[/[a-z]-ish$/,Ci,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,$i,"polish-male"]],k:[[/^(k){2}$/,zi,"kkkk"]],l:[[/.[gl]ial$/,Ci,"familial"],[/.[^aeiou]ful$/,Ci,"fitful"],[/.[nrtumcd]al$/,Ci,"natal"],[/.[^aeiou][ei]al$/,Ci,"familial"]],m:[[/.[^aeiou]ium$/,Vi,"magnesium"],[/[^aeiou]ism$/,Vi,"schism"],[/^[hu]m+$/,zi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Ci,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,zi,"noooo"],[/^(yo)+$/,zi,"yoo"],[/^wo{2,}[pt]?$/,zi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Vi],[/[^i]fer$/,Di],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Ci],[/[aeiou].*ist$/,Ci],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Oi],[/.[rln]ates$/,Oi],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Vi],[/.[aeiou]sks$/,Oi],[/.[aeiou]kes$/,Oi],[/[aeiou][^aeiou]is$/,Vi],[/[a-z]'s$/,"Noun"],[/^yes+$/,zi]],v:[[/.[^aeiou][ai][kln]ov$/,$i]],y:[[/.[cts]hy$/,Ci],[/.[st]ty$/,Ci],[/.[tnl]ary$/,Ci],[/.[oe]ry$/,Vi],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Ci],[/...lly$/,"Adverb"],[/.[gk]y$/,Ci],[/[bszmp]{2}y$/,Ci],[/.[ai]my$/,Ci],[/[ea]{2}zy$/,Ci],[/.[^aeiou]ity$/,Vi]]};const Si="Verb",Hi="Noun";var Wi={leftTags:[["Adjective",Hi],["Possessive",Hi],["Determiner",Hi],["Adverb",Si],["Pronoun",Si],["Value",Hi],["Ordinal",Hi],["Modal",Si],["Superlative",Hi],["Demonym",Hi],["Honorific","Person"]],leftWords:[["i",Si],["first",Hi],["it",Si],["there",Si],["not",Si],["because",Hi],["if",Hi],["but",Hi],["who",Si],["this",Hi],["his",Hi],["when",Hi],["you",Si],["very","Adjective"],["old",Hi],["never",Si],["before",Hi],["a","Singular"],["the",Hi],["been",Si]],rightTags:[["Copula",Hi],["PastTense",Hi],["Conjunction",Hi],["Modal",Hi]],rightWords:[["there",Si],["me",Si],["man","Adjective"],["only",Si],["him",Si],["it",Si],["were",Hi],["took",Hi],["himself",Si],["went",Hi],["who",Hi],["jr","Person"]]},Mi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ji={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Li={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},qi={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Ki={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Ui=/^.([0-9]+)/;var Ri=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Ui);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Ui,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},Qi=/^([0-9]+)/,Zi=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Qi);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Qi,"")]}(n[0],n[1])}))};var Yi=function(e={}){return(e=Object.assign({},e)).rules=Zi(e.rules),e.rules=_i(e.rules),e.rev&&(e.rev=Zi(e.rev),e.rev=_i(e.rev)),e.exceptions=Zi(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e};var Xi=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const es=Yi({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ts=Yi(qi),ns=Yi(Ji),rs=Yi(Li),as=Xi(es),os=Xi(ts),is=Xi(ns),ss=Xi(rs),ls=Yi(Mi),us=Yi(Ki);var cs={fromPast:es,fromPresent:ts,fromGerund:ns,fromParticiple:rs,toPast:as,toPresent:os,toGerund:is,toParticiple:ss,toComparative:ls,toSuperlative:us,fromComparative:Xi(ls),fromSuperlative:Xi(us)},hs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),ds=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var ms=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(ps[t].forEach((n=>e[n]=t)),e)),{});var gs=ps;var fs=function(e){let t=e.substring(e.length-3);if(!0===gs.hasOwnProperty(t))return gs[t];let n=e.substring(e.length-2);return!0===gs.hasOwnProperty(n)?gs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const vs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var bs=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=fs(e)),vs.hasOwnProperty(e))c=vs[e];else if("Participle"===n)c=Ri(l,i);else if("PastTense"===n)c=Ri(l,r);else if("PresentTense"===n)c=Ri(l,a);else{if("Gerund"!==n)return e;c=Ri(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var ys=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Ri(i,n),PresentTense:Ri(i,r),Gerund:Ri(i,a),FutureTense:"will "+e},u=Ri(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var ws=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const Ps="ically",ks=new Set(["analyt"+Ps,"chem"+Ps,"class"+Ps,"clin"+Ps,"crit"+Ps,"ecolog"+Ps,"electr"+Ps,"empir"+Ps,"frant"+Ps,"grammat"+Ps,"ident"+Ps,"ideolog"+Ps,"log"+Ps,"mag"+Ps,"mathemat"+Ps,"mechan"+Ps,"med"+Ps,"method"+Ps,"method"+Ps,"mus"+Ps,"phys"+Ps,"phys"+Ps,"polit"+Ps,"pract"+Ps,"rad"+Ps,"satir"+Ps,"statist"+Ps,"techn"+Ps,"technolog"+Ps,"theoret"+Ps,"typ"+Ps,"vert"+Ps,"whims"+Ps]),As=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],js=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ns={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var xs=function(e){return e.endsWith("ly")?ks.has(e)?e.replace(/ically/,"ical"):js.has(e)?null:Ns.hasOwnProperty(e)?Ns[e]:ws(e,As)||e:null};const Es=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Is={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ts=function(e){if(Is.hasOwnProperty(e))return Is[e];let t=ws(e,Es);return t||e+"ly"};const Gs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Cs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Ds=new Set(["terrible","annoying"]);const Os=function(e,t){const n=t.two.models.toSuperlative;return Ri(e,n)},Vs=function(e,t){const n=t.two.models.toComparative;return Ri(e,n)};var Bs={nounToPlural:Io,nounToSingular:ms,verbToInfinitive:bs,getTense:fs,verbConjugate:ys,adjToSuperlative:Os,adjToComparative:Vs,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Ri(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Ri(e,n)},advToAdjective:xs,adjToAdverb:Ts,adjToNoun:function(e){if(Cs.hasOwnProperty(e))return Cs[e];if(Ds.has(e))return null;let t=ws(e,Gs);return t||e+"ness"}},zs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var $s=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===zs.hasOwnProperty(i)&&zs[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var Fs=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Ws.find((t=>e.endsWith(t)))},Js={two:{quickSplit:Fs,expandLexicon:$s,transform:Bs,looksPlural:Ms}};var Ls=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const qs=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var Ks=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=qs(n,"Infinitive","PastTense"),Object.assign(s,l),l=qs(r,"Infinitive","Verb"),Object.assign(s,l),l=qs(a,"Infinitive","Gerund"),Object.assign(s,l),l=qs(o,"Adjective","Superlative"),Object.assign(s,l),l=qs(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Us={two:{models:cs}};const Rs={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},_s=function(e,t){const n={model:t,methods:Js};let{lex:r,_multi:a}=Js.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Qs=function(e,t,n){let r=ys(e,Us);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Zs=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=Rs[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Qs(a,r,!1),"Adj|Present"===o&&(Qs(a,r,!0),function(e,t,n){let r=Os(e,n);t[r]=t[r]||"Superlative";let a=Vs(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=bs(a,Us,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=bs(a,Us,"PastTense");r[e]||(n[e]="Infinitive")}})),t=_s(n,t)};var Ys=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=_s(e.one.lexicon,e)).one.lexicon,e),e=Zs(e.two.switches,e),e=Ks(e),e=Ls(e)};let Xs={one:{_multiCache:{},lexicon:Go},two:{irregularPlurals:vo,models:cs,suffixPatterns:Ii,prefixPatterns:Gi,endsWith:Fi,neighbours:Wi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Co,clues:vi,uncountable:{},orgWords:hs}};Xs=Ys(Xs);var el=Xs;const tl=/^(under|over|mis|re|un|dis|semi)-?/;var nl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(tl.test(a.normal)){let e=a.normal.replace(tl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var rl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const al=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ol=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(Ms(e.normal)?rl(e,"Plural","3-plural-guess"):rl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=fs(e.normal);t&&rl(e,t,"3-verb-tense-guess")}}(r)};const il=/^\p{Lu}[\p{Ll}'’]/u,sl=/[0-9]/,ll=["Date","Month","WeekDay","Unit"],ul=/^[IVXLCDM]{2,}$/,cl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,hl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var dl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===il.test(o)&&!1===sl.test(o)?ll.find((e=>r.tags.has(e)))?null:(ol(e,t,n),r.tags.has("Noun")||r.tags.clear(),rl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&ul.test(o)&&cl.test(o)&&!hl[r.normal]?(rl(r,"RomanNumeral","2-xvii"),!0):null};const ml=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var pl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=ml(r.normal,n.two.suffixPatterns);if(null!==e)return rl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=ml(r.implicit,n.two.suffixPatterns),null!==e))return rl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const gl=/['‘’‛‵′`´]/,fl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return rl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const yl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),wl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!yl.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},Pl=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},kl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Al=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(wl(a)||wl(o))return rl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Pl(a)||Pl(o))return rl(n,"Year","2-tagYear-close");if(kl(e[t-2])||kl(e[t+2]))return rl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return rl(n,"Year","2-tagYear-noun")}}}return null};const jl=/^[A-Z]('s|,)?$/,Nl=/^[A-Z-]+$/,xl=/([A-Z]\.)+[A-Z]?,?$/,El=/[A-Z]{2,}('s|,)?$/,Il=/([a-z]\.)+[a-z]\.?$/,Tl={I:!0,A:!0};var Gl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Nl.test(n)||n.length>5||Tl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==xl.test(n)&&!0!==Il.test(n)&&!0!==jl.test(n)&&!0!==El.test(n))}(r,n)?(r.tags.clear(),rl(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Tl.hasOwnProperty(r.text)&&jl.test(r.text)?(r.tags.clear(),rl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(rl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Nl.test(r.text)&&r.text.length<=6?(rl(r,"Acronym","3-titlecase-acronym"),!0):null};const Cl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Dl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ol=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Cl(e[t-1],a),l=l||Cl(e[t+1],o),l=l||Dl(e[t-1],r),l=l||Dl(e[t+1],i),l)return rl(s,l,"3-[neighbour]"),ol(e,t,n),e[t].confidence=.2,!0}return null};const Vl=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Bl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Vl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Vl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var zl=function(e,t,n){0===e[t].tags.size&&(rl(e[t],"Noun","3-[fallback]"),ol(e,t,n),e[t].confidence=.1)};const $l=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Fl=(e,t,n)=>0!==t||e[1]?null:n,Sl={"Adj|Gerund":(e,t)=>$l(e,t),"Adj|Noun":(e,t)=>$l(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>$l(e,t),"Adj|Present":(e,t)=>$l(e,t),"Noun|Gerund":(e,t)=>$l(e,t),"Noun|Verb":(e,t)=>$l(e,t)||Fl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>$l(e,t)||Fl(e,t,"PresentTense"),"Person|Noun":(e,t)=>$l(e,t),"Person|Verb":(e,t)=>0!==t?$l(e,t):null};var Hl=Sl;const Wl="undefined"!=typeof process&&process.env?process.env:self.env||{},Ml=/^(under|over|mis|re|un|dis|semi)-?/,Jl=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Wl.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ll=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&Wl.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var ql=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Ml.test(l)&&!o[l]&&(l=l.replace(Ml,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Jl(e[t+1],n.afterWords);return o=o||Jl(e[t-1],n.beforeWords),o=o||Ll(e[t-1],n.beforeTags,a),o=o||Ll(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Hl[o]&&(u=Hl[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),ol(e,t,r)):Wl.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};var Kl=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(rl(o,"Verb","3-[prefix]"),rl(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(rl(o,"Adjective","3-[prefix]"),rl(o,"Prefix","3-[prefix]")))};const Ul={tagSwitch:nl,checkSuffix:pl,checkRegex:vl,checkCase:dl,checkPrefix:bl,checkHyphen:Kl,checkYear:Al},Rl={checkAcronym:Gl,neighbours:Ol,orgWords:Bl,nounFallback:zl,switches:ql},_l=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};var Xl=function(e){const t=e.world,n=Object.keys(Yl);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=hu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=cu};var mu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const pu=/'/;var gu=function(e,t){let n=e[t].normal.split(pu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const fu=/'/;var vu=function(e,t){let n=e[t].normal.split(fu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var bu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const yu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},wu={in:!0,by:!0,for:!0};var Pu=(e,t)=>{let n=e[t];if(yu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===wu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const ku=/'/,Au=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},ju={d:(e,t)=>vu(e,t),t:(e,t)=>bu(e,t),s:(e,t,n)=>Pu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):gu(e,t)},Nu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var xu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===ku.test(r[o].normal)&&([,i]=r[o].normal.split(ku));let s=null;ju.hasOwnProperty(i)&&(s=ju[i](r,o,t)),s&&(s=Nu(s,e),mu(n,[a,o],s),Au(n[a],e,o,s.length))}}))}},Eu={compute:xu,api:du,hooks:["contractionTwo"]};const Iu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const Tu=["i","we","they"];let Gu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Iu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Iu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Iu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Tu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Tu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Tu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let Cu=null;var Du={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Cu=Cu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Cu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Ou={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Du,model:{two:{matches:Gu}},hooks:["postTagger"]};var Vu=Ou;var Bu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var zu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Bu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},$u={lib:{lazy:zu}};var Fu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var Su=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Fu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(a,t):a.has("#Adjective")?function(e,t){const{adjToComparative:n,adjToSuperlative:r}=e.methods.two.transform;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Hu={api:function(e){e.prototype.swap=Su}};v.plugin(su),v.plugin(Eu),v.plugin(Vu),v.plugin($u),v.plugin(Hu);var Wu=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter((e=>e.wordCount()>5&&e.match("#Verb+").length>=2));if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n};var Mu=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r};var Ju=function(e){e.prototype.chunks=Mu,e.prototype.clauses=Wu};const Lu={this:"Noun",then:"Pivot"};var qu=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))};var Xu={chunks:function(e){const{document:t,world:n}=e;qu(t),Ku(t),_u(e,t,n),Zu(t),Yu(t)}},ec={compute:Xu,api:Ju,hooks:["chunks"]};const tc=/'s$/;var nc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(tc,""),e.normal=e.normal.replace(tc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const rc=/\(/,ac=/\)/,oc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(rc,"");let t=e[e.length-1];t.post=t.post.replace(ac,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const sc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},lc=RegExp("("+Object.keys(sc).join("|")+")"),uc=RegExp("("+Object.values(sc).join("|")+")"),cc=function(e,t){const n=e[t].pre.match(lc)[0]||"";if(!n||!sc[n])return null;const r=sc[n];for(;t{e[0].pre=e[0].pre.replace(lc,"");let t=e[e.length-1];t.post=t.post.replace(uc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const dc=/\./g;var mc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(dc,""),e.normal=e.normal.replace(dc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(dc,""),e.normal=e.normal.replace(dc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}};var pc=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.advToAdjective;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const gc=(e,t)=>"number"==typeof t?e.eq(t):e,fc=function(e){const{adjFromComparative:t,adjFromSuperlative:n}=e.methods.two.transform;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var vc=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{adjToAdverb:t,adjToNoun:n,adjToSuperlative:r,adjToComparative:a}=this.methods.two.transform;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=fc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{adjToComparative:t,adjToSuperlative:n,adjToNoun:r,adjToAdverb:a}=this.methods.two.transform;return gc(this,e).map((e=>{let o=fc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{adjToComparative:t}=this.methods.two.transform;return gc(this,e).map((e=>{let n=fc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{adjToSuperlative:t}=this.methods.two.transform;return gc(this,e).map((e=>{let n=fc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{adjToAdverb:t}=this.methods.two.transform;return gc(this,e).map((e=>{let n=fc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{adjToNoun:t}=this.methods.two.transform;return gc(this,e).map((e=>{let n=fc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=gc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=gc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=gc(t,e),new Adjectives(t.document,t.pointer)}};const bc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},yc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let wc=[["emojis","emoji"],["atmentions","atMentions"]];var Pc=function(e){yc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=bc,wc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},kc={api:function(e){Pc(e),nc(e),ic(e),hc(e),vc(e),pc(e),mc(e)}};const Ac=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var jc={case:e=>{Ac(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Ac(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{Ac(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{Ac(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Nc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),xc="unicode|punctuation|whitespace|acronyms",Ec="|case|contractions|parentheses|quotations|emoji|honorifics",Ic={light:Nc(xc),medium:Nc(xc+Ec),heavy:Nc(xc+Ec+"|possessives|adverbs|nouns|verbs")};var Tc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Ic[e]),Object.keys(e).forEach((t=>{jc.hasOwnProperty(t)&&jc[t](this,e[t])})),this}}};var Gc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Cc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Dc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")};var Vc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Oc(e,t),isSubordinate:Dc(e),root:t}};const Bc=e=>e.text(),zc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),$c=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var Fc=function(e){let t=Vc(e);return{root:Bc(t.root),number:$c(t.number),determiner:Bc(t.determiner),adjectives:zc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Sc={tags:!0};var Hc=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{nounToPlural:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Sc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Sc),e};const Wc={tags:!0};var Mc=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{nounToSingular:a}=n.two.transform;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Wc).tag("Singular","toPlural"),e};const Jc=(e,t)=>"number"==typeof t?e.eq(t):e;var Lc=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Jc(this,e).map(Vc)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Fc(t)),n}),[])}isPlural(e){let t=this.filter((e=>Vc(e).isPlural));return Jc(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Vc(e).adjectives;n.found&&(t=t.concat(n))})),Jc(t,e)}toPlural(e){return Jc(this,e).map((e=>Hc(e,Vc(e))))}toSingular(e){return Jc(this,e).map((e=>{let t=Vc(e);return Mc(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Gc(this);return t=Jc(t,e),new Nouns(this.document,t.pointer)}},qc={api:Lc};var Kc=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n};var Uc=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Rc.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Rc.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Rc.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var Qc=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const Yc=/^([0-9,. ]+)\/([0-9,. ]+)$/,Xc={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},eh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var th=function(e){if(!0===Xc.hasOwnProperty(e))return Xc[e];if("a"===e||"an"===e)return 1;const t=Uc(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=rh(n),r=rh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:rh(n);let a=r.text("reduced");return nh.test(a)&&(a=a.replace(nh,""),r=r.replaceWith(a)),r=ah.hasOwnProperty(a)?ah[a]:rh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:rh(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t};var ih=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const sh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],lh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],uh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],ch=function(e){let t=[];if(e>100)return t;for(let n=0;n=sh[n][1]&&(e-=sh[n][1],t.push(sh[n][0]));return lh[e]&&t.push(lh[e]),t};var hh=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=ih(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return uh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(ch(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=ih(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")};var dh=function(e){if(!e.numerator||!e.denominator)return"";return`${hh({num:e.numerator})} out of ${hh({num:e.denominator})}`};const mh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var ph=e=>{let t=hh(e).split(" "),n=t[t.length-1];return mh.hasOwnProperty(n)?t[t.length-1]=mh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var gh=function(e){if(!e.numerator||!e.denominator)return"";let t=hh({num:e.numerator}),n=ph({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const fh=(e,t)=>"number"==typeof t?e.eq(t):e;var vh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return fh(this,e).map(oh)}get(e){return fh(this,e).map(oh)}json(e){return fh(this,e).map((t=>{let n=t.toView().json(e)[0],r=oh(t);return n.fraction=r,n}),[])}toDecimal(e){return fh(this,e).forEach((e=>{let{decimal:t}=oh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return fh(this,e).forEach((e=>{let t=oh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return fh(this,e).forEach((e=>{let t=oh(e),n=gh(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return fh(this,e).forEach((e=>{let t=oh(e),n=dh(t);e.replaceWith(n)})),this}toPercentage(e){return fh(this,e).forEach((e=>{let{decimal:t}=oh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=Kc(this);return t=fh(t,e),new Fractions(this.document,t.pointer)}};const bh="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var yh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+bh+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+bh+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+bh+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+bh+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${bh})`),r=e.has("("+bh+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+bh+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+bh+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var wh=function(e){if("string"==typeof e)return{num:th(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=oh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=th(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}};var Ph=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=ih(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const kh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Ah={"%":"percent","°":"degrees"};var jh=function(e){let t={suffix:"",prefix:e.prefix};return kh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+kh[e.prefix],t.prefix=""),Ah.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Ah[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var Nh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=jh(e);return t+ph(e)+n}if("Ordinal"===t)return e.prefix+Ph(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=jh(e);return t+hh(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const xh=(e,t)=>"number"==typeof t?e.eq(t):e;var Eh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return xh(this,e).map(wh)}get(e){return xh(this,e).map(wh).map((e=>e.num))}json(e){return xh(this,e).map((t=>{let n=t.toView().json(e)[0],r=wh(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=wh(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Nh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=wh(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Nh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=wh(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Nh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=wh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Nh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=wh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Nh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>wh(t).num===e))}greaterThan(e){return this.filter((t=>wh(t).num>e))}lessThan(e){return this.filter((t=>wh(t).num{let r=wh(n).num;return r>e&&r{let n=wh(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Nh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=wh(e).num);let t=this.map((t=>{let n=wh(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Nh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=yh(this);return t=xh(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=yh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=xh(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=yh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=xh(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var Ih={api:function(e){vh(e),Eh(e)}};const Th={people:!0,emails:!0,phoneNumbers:!0,places:!0},Gh=function(e={}){return!1!==(e=Object.assign({},Th,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},Ch={api:function(e){e.prototype.redact=Gh}};var Dh=Ch;var Oh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))};var Vh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};var Bh=function(e){let t=e.clauses(),n=Vh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}};var zh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e};var $h=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e};var Fh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!e.lookBehind("to$").found&&(!!e.has("#Copula #Gerund")||!e.has("#Gerund")&&(!!e.has("#Copula")||!(e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found)))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e};var Sh=function(e){return e.verbs().toInfinitive(),e};const Hh=(e,t)=>"number"==typeof t?e.eq(t):e;var Wh=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Bh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n}),[])}toPastTense(e){return Hh(this,e).map((e=>(Bh(e),zh(e))))}toPresentTense(e){return Hh(this,e).map((e=>(Bh(e),$h(e))))}toFutureTense(e){return Hh(this,e).map((e=>(Bh(e),e=Fh(e))))}toInfinitive(e){return Hh(this,e).map((e=>(Bh(e),Sh(e))))}toNegative(e){return Hh(this,e).map((e=>(Bh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return Hh(this,e).map((e=>(Bh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return Hh(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return Hh(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=Hh(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Oh(this);return Hh(t,e)}};Object.assign(e.prototype,t)},Mh={api:Wh};var Jh=function(e){return e.match("#Honorific+? #Person+")};var Lh=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const qh="male",Kh="female",Uh={mr:qh,mrs:Kh,miss:Kh,madam:Kh,king:qh,queen:Kh,duke:qh,duchess:Kh,baron:qh,baroness:Kh,count:qh,countess:Kh,prince:qh,princess:Kh,sire:qh,dame:Kh,lady:Kh,ayatullah:qh,congressman:qh,congresswoman:Kh,"first lady":Kh,mx:null};var Rh=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Kh;if(n.has("#MaleName"))return qh;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Uh.hasOwnProperty(e))return Uh[e];if(/^her /.test(e))return Kh;if(/^his /.test(e))return qh}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return qh;if(n&&!t)return Kh}return null};const _h=(e,t)=>"number"==typeof t?e.eq(t):e;var Qh=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return _h(this,e).map(Lh)}json(e){return _h(this,e).map((t=>{let n=t.toView().json(e)[0],r=Lh(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Rh(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Jh(this);return t=_h(t,e),new People(this.document,t.pointer)}};var Zh=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||(!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found))),t=t.splitAfter(n),t};var Yh=function(e){e.prototype.places=function(t){let n=Zh(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var Xh=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const ed=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var td=function(e){e.prototype.topics=ed};var nd={api:function(e){Qh(e),Yh(e),Xh(e),td(e)}};var rd=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t};var ad=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t};var od=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const id=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},sd=function(e){return e.match("#Negative")},ld=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var ud=function(e){let t=e.clone();t.contractions().expand();const n=ad(t);return{root:n,prefix:t.match("#Prefix"),adverbs:od(t,n),auxiliary:id(t,n),negative:sd(t),phrasal:ld(n)}};const cd={tense:"PresentTense"},hd={conditional:!0},dd={tense:"FutureTense"},md={progressive:!0},pd={tense:"PastTense"},gd={complete:!0,progressive:!1},fd={passive:!0},vd=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},bd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[cd]],["^wanted to #Infinitive$",[pd]],["^will want to #Infinitive$",[dd]]],"gerund-phrase":[["^#PastTense #Gerund$",[pd]],["^#PresentTense #Gerund$",[cd]],["^#Infinitive #Gerund$",[cd]],["^will #Infinitive #Gerund$",[dd]],["^have #PastTense #Gerund$",[pd]],["^will have #PastTense #Gerund$",[pd]]],"simple-present":[["^#PresentTense$",[cd]],["^#Infinitive$",[cd]]],"simple-past":[["^#PastTense$",[pd]]],"simple-future":[["^will #Adverb? #Infinitive",[dd]]],"present-progressive":[["^(is|are|am) #Gerund$",[cd,md]]],"past-progressive":[["^(was|were) #Gerund$",[pd,md]]],"future-progressive":[["^will be #Gerund$",[dd,md]]],"present-perfect":[["^(has|have) #PastTense$",[pd,gd]]],"past-perfect":[["^had #PastTense$",[pd,gd]],["^had #PastTense to #Infinitive",[pd,gd]]],"future-perfect":[["^will have #PastTense$",[dd,gd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[pd,md]]],"past-perfect-progressive":[["^had been #Gerund$",[pd,md]]],"future-perfect-progressive":[["^will have been #Gerund$",[dd,md]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[pd,fd]],["^(was|were) being (#PastTense|#Participle)",[pd,fd]],["^(had|have) been (#PastTense|#Participle)",[pd,fd]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[cd,fd]],["^(is|are|am) being (#PastTense|#Participle)",[cd,fd]],["^has been (#PastTense|#Participle)",[cd,fd]]],"passive-future":[["will have been (#PastTense|#Participle)",[dd,fd,hd]],["will be being? (#PastTense|#Participle)",[dd,fd,hd]]],"present-conditional":[["would be #PastTense",[cd,hd]]],"past-conditional":[["would have been #PastTense",[pd,hd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[dd]]],"auxiliary-past":[["^did #Infinitive$",[pd,{plural:!1}]],["^used to #Infinitive$",[pd,gd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[cd,gd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[pd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let yd=[];Object.keys(bd).map((e=>{bd[e].forEach((t=>{yd.push({name:e,match:t[0],data:vd(t[1])})}))}));var wd=yd;var Pd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),kd(r)&&(n.remove(r),r=n.last()),kd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Ad(t,e)}};const Nd=e=>e,xd=(e,t)=>{let n=jd(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Ed=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=jd(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Id=function(e,t){let n=jd(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Td=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Gd=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Td(e)),r&&e.replace(t.root,r),e},Cd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Dd=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal))},Od=function(e){return e&&e.isView?e.text("normal"):""},Vd=function(e){const{verbToInfinitive:t}=e.methods.two.transform;return t(e.text("normal"),e.model,Td(e))};var Bd=function(e){let t=ud(e);e=e.clone().toView();const n=Pd(e,t);return{root:t.root.text(),preAdverbs:Dd(t.adverbs.pre),postAdverbs:Dd(t.adverbs.post),auxiliary:Od(t.auxiliary),negative:t.negative.found,prefix:Od(t.prefix),infinitive:Vd(t.root),grammar:n}};const zd={tags:!0};var $d=function(e,t){const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Td(r)),i&&e.replace(r,i,zd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Id(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Fd={tags:!0},Sd={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Td(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=jd(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Fd),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Sd.simple(e,t),e=Sd.noAux(e,t))},hasHad:e=>(e.replace("has","had",Fd),e),hasParticiple:(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Td(a)),n(o,e.model).Participle}},Hd={infinitive:Sd.simple,"simple-present":Sd.simple,"simple-past":Nd,"simple-future":Sd.both,"present-progressive":e=>(e.replace("are","were",Fd),e.replace("(is|are|am)","was",Fd),e),"past-progressive":Nd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Sd.hasHad,"past-perfect":Nd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Cd(e)),e.remove("have"),e),"present-perfect-progressive":Sd.hasHad,"past-perfect-progressive":Nd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Fd),e),"passive-past":e=>(e.replace("have","had",Fd),e),"passive-present":e=>(e.replace("(is|are)","was",Fd),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Fd),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Nd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Fd),e),"auxiliary-past":Nd,"auxiliary-present":e=>(e.replace("(do|does)","did",Fd),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Fd):(Sd.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Nd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Fd),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Sd.simple(e,t),Cd(e),e)};var Wd=function(e,t,n){return Hd.hasOwnProperty(n)?((e=Hd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Md={tags:!0},Jd=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Td(a)),!1===xd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Ed(e)),o&&(e=e.replace(a,o,Md)).not("#Particle").tag("PresentTense"),e},Ld=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,a=t.root;let o=a.text("normal");return o=r(o,e.model,Td(a)),!1===xd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Md)).not("#Particle").tag("Gerund"),e},qd={infinitive:Jd,"simple-present":(e,t)=>{const{verbConjugate:n}=e.methods.two.transform;let{root:r}=t;if(!r.has("#Infinitive"))return Jd(e,t);{let t=jd(e).subject;if(xd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Md)}return e},"simple-past":Jd,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Ed(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Jd(e,t),e=e.remove("will");return e},"present-progressive":Nd,"past-progressive":(e,t)=>{let n=Ed(e);return e.replace("(were|was)",n,Md)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Jd(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=jd(e).subject;return xd(e)||n.has("i")?((e=Gd(e,t)).remove("had"),e):(e.replace("had","has",Md),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Nd,"past-perfect-progressive":e=>e.replace("had","has",Md),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Ed(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Md),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Nd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Nd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Ld(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Id(e);return e.replace(t.auxiliary,n),e}return Ld(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Nd,"modal-infinitive":Nd,"modal-past":(e,t)=>(((e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Td(r)),a&&(e=e.replace(t.root,a,Md))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Jd(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return xd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Md),e.remove("will"),e}};var Kd=function(e,t,n){return qd.hasOwnProperty(n)?((e=qd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Ud={tags:!0},Rd=(e,t)=>{const{verbToInfinitive:n}=e.methods.two.transform,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Td(r)),o&&(e=e.replace(r,o,Ud)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},_d=(e,t)=>{const{verbConjugate:n,verbToInfinitive:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Td(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Ud),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Qd={infinitive:Rd,"simple-present":Rd,"simple-past":Rd,"simple-future":Nd,"present-progressive":_d,"past-progressive":_d,"future-progressive":Nd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Nd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Nd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Nd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Nd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Nd,"modal-past":Nd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Rd(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var Zd=function(e,t,n){return e.has("will")||e.has("going to")?e:Qd.hasOwnProperty(n)?((e=Qd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Yd={tags:!0};var Xd=function(e,t){const{verbToInfinitive:n,verbConjugate:r}=e.methods.two.transform,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Td(a));let s=r(i,e.model).Gerund;return s&&(s=`${Ed(e)} ${s}`,e.replace(a,s,Yd)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const em={tags:!0},tm=function(e,t){let n=Id(e);return e.prepend(n+" not"),e},nm=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},rm=e=>e.has("(is|was|am|are|will|were|be)"),am={"simple-present":(e,t)=>!0===rm(e)?nm(e):(e=Gd(e,t),e=tm(e)),"simple-past":(e,t)=>!0===rm(e)?nm(e):((e=Gd(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===rm(e)?nm(e):tm(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",em),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=tm(e)).replace("wants","want",em)};var om=function(e,t,n){if(e.has("#Negative"))return e;if(am.hasOwnProperty(n))return e=am[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===rm(e)?nm(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const im=(e,t)=>"number"==typeof t?e.eq(t):e;var sm=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return im(this,e).map(ud)}json(e,t){let n=im(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Bd(t),n}),[]);return n}subjects(e){return im(this,e).map((e=>(ud(e),jd(e).subject)))}adverbs(e){return im(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return im(this,e).filter((e=>!0!==jd(e).plural))}isPlural(e){return im(this,e).filter((e=>!0===jd(e).plural))}isImperative(e){return im(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return im(this,e).map((e=>{let t=ud(e),n=Pd(e,t);return $d(e,t,n.form)}))}toPresentTense(e){return im(this,e).map((e=>{let t=ud(e),n=Pd(e,t);return Kd(e,t,n.form)}))}toPastTense(e){return im(this,e).map((e=>{let t=ud(e),n=Pd(e,t);return Wd(e,t,n.form)}))}toFutureTense(e){return im(this,e).map((e=>{let t=ud(e),n=Pd(e,t);return Zd(e,t,n.form)}))}toGerund(e){return im(this,e).map((e=>{let t=ud(e),n=Pd(e,t);return Xd(e,t,n.form)}))}conjugate(e){return im(this,e).map((e=>{let t=ud(e),n=Pd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:$d(e.clone(),t,n.form).text("normal"),PastTense:Wd(e.clone(),t,n.form).text("normal"),PresentTense:Kd(e.clone(),t,n.form).text("normal"),FutureTense:Zd(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return im(this,e).map((e=>{let t=ud(e),n=Pd(e,t);return om(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=rd(this);return t=im(t,e),new Verbs(this.document,t.pointer)}},lm={api:sm};v.plugin(ec),v.plugin(kc),v.plugin(Tc),v.plugin(qc),v.plugin(Ih),v.plugin(Dh),v.plugin(Mh),v.plugin(nd),v.plugin(lm);export{v as default}; +var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var v=f;var b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},N=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},x=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?N(n):(N(n),N([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!k(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||k(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var G=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},D=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=G(e),e)))}(d),n?(T(t.update([u]).firstTerm()),x(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},z.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var $=z;var F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=F(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const W={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};W.deHyphenate=W.dehyphenate,W.toQuotation=W.toQuotations;var M=W;var J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var _={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}};var Q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,H,M,U,_,Q);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null};var le=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const me=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,pe=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(me);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(pe),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ke=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ne={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=je(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ne.hasOwnProperty(l)&&(c=Ne[l](r,s)),c?(c=xe(c,e),ne(n,[i,s],c),ke(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=fe(r,s),c&&(c=xe(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ke(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=xe(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]};var Ge=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}};var ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Oe,lib:Be,hooks:["lexicon"]};var $e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const We=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=We(e.goNext,void 0),e.failTo=We(e.failTo,0),e.endAs=We(e.endAs,null),e};const Je={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};Je.compile=Je.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Je};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Qe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Qe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e)){return e.fullPointer.length>0}if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Qe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,mt=/&&/,pt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=pt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){mt.test(e)?(n.choices=e.split(mt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var kt=Pt;const At=/[a-z0-9][-–—][a-z]/i;var Nt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},xt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var It=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(xt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(jt(e,t)),n=n.concat(xt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var Gt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>kt(e,t))),r=Nt(r,n),r=It(r,n),r=Gt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Vt.test(e.pre)||Bt.test(e.post),hasComma:e=>Ft(e,","),hasPeriod:e=>!0===Ft(e,".")&&!1===Ft(e,"..."),hasExclamation:e=>Ft(e,"!"),hasQuestionMark:e=>Ft(e,"?")||Ft(e,"¿"),hasEllipses:e=>Ft(e,"..")||Ft(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>Ft(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Wt=Ht;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Wt[t.method]&&!0===Wt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Jt=Mt;const Lt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){qt(e,e.t).length=r-e.t}return e.t=r,!0};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Jt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Jt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){qt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Qt=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Jt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Jt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Jt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?Qt(e,r,t[e.r+1]):(e.t+=1,!0)};var Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Jt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Jt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Xt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Lt(e,a))if(e.negative){if(!Zt(a))return null}else if(!0!==Jt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!tn(a))return null}else{if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else{if(!_t(a))return null}else{if(!Rt(a))return null}else{if(!Kt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}};var rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i};var ln={api:ot,methods:{one:{termMethods:Wt,parseMatch:Tt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(pn,""),fn.test(a)&&(a=" "),a=a.replace(gn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(pn,""),a="-"===a?" ":a.replace(mn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let Pn=[],kn=0;for(;kn<64;)Pn[kn]=0|4294967296*Math.sin(++kn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(kn=i=0;kn>4]+Pn[i]+~~o[kn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const Nn={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const xn=function(e,t){return Object.assign({},e,t)},En={text:e=>bn(e,{keepPunct:!0},!1),normal:e=>bn(e,xn(wn.normal,{keepPunct:!0}),!1),implicit:e=>bn(e,xn(wn.implicit,{keepPunct:!0}),!1),machine:e=>bn(e,jn,!1),root:e=>bn(e,xn(jn,{form:"root"}),!1),hash:e=>An(bn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const In={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Nn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};In.data=In.json;var Gn=In;var Tn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var Dn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var Cn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Dn.blue("\n ──────")),t.forEach((e=>{console.log(Dn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Dn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Dn.blue(" │ ")+Dn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Dn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))};var On=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Dn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Dn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Dn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Dn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var Vn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Dn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))};var Bn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Tn(t),t):(!1!==e.tags&&(Cn(t),console.log("\n")),!0===e.chunks&&(On(t),console.log("\n")),!0===e.highlight&&(Vn(t),console.log("\n")),t)};const zn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var $n=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Sn=Fn;var Hn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},qn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Kn=function(e,t){let n=qn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r};var Un=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var Rn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Ln(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var Zn=function(e,t){let n=qn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Ln(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Xn=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},er={union:function(e){e=Yn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=Xn(t,this.document),this.toView(t)}};er.and=er.union,er.intersection=function(e){e=Yn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=Xn(t,this.document),this.toView(t)},er.not=function(e){e=Yn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=Xn(t,this.document),this.toView(t)},er.difference=er.not,er.complement=function(){let e=this.all(),t=Qn(e.fullPointer,this.fullPointer);return t=Xn(t,this.document),this.toView(t)},er.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=_n(e,[t])})),e=Xn(e,this.document),this.update(e)};var tr=function(e){Object.assign(e.prototype,er)},nr={methods:Rn,api:tr};var rr=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const ar=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var or=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(ar(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(ar(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=ar(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var ir=function(e,t){e=or(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}};var sr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))};var lr=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var ur=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o};var cr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=sr(a,t.hooks);return o=lr(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),ur(o,e,a,n,r)};var hr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===hr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:rr,methods:{one:{buildNet:ir,bulkMatch:cr,bulkTagger:dr}}};const pr=/ /,gr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},fr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),pr.test(t))!function(e,t,n,r){let a=t.split(pr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),fr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nvr(e,t,n,r)))};var br=vr;var yr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>wr({id:e}))),t}return[wr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},Nr=e=>"[object Array]"===Object.prototype.toString.call(e),jr=e=>(e=e||"").trim(),xr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Pr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:kr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=wr({});return e.forEach((e=>{if((e=wr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ar(t=e).forEach(wr),t);var t},Er=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Ar(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Ir=function(e){let t=Ar(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Gr={text:Er,txt:Er,array:Ir,flat:Ir},Tr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Er(e,!0)),null):Gr.hasOwnProperty(t)?Gr[t](e):e},Dr=e=>{Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Cr=/\//;let Or=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=jr(e),!Cr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Or(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||wr({});return new Or(t)}add(e,t={}){if(Nr(e))return e.forEach((e=>this.add(jr(e),t))),this;e=jr(e);let n=wr({id:e,props:t});return this.json.children.push(n),new Or(n)}remove(e){return e=jr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ar(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ar(this.json)}fillDown(){var e;return e=this.json,Ar(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Nr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Dr(this.json);let e=Ar(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Dr(this.json),Tr(this.json,e)}debug(){return Dr(this.json),Tr(this.json,"debug"),this}};const Vr=function(e){let t=xr(e);return new Or(t)};Vr.prototype.plugin=function(e){e(this)};var Br={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const zr=function(e){if(Br.hasOwnProperty(e.id))return Br[e.id];if(Br.hasOwnProperty(e.is))return Br[e.is];let t=e._cache.parents.find((e=>Br[e]));return Br[t]};var $r=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:zr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Fr=function(e){return e?"string"==typeof e?[e]:e:[]};var Sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Fr(e[t].children),e[t].not=Fr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var Hr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Sr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Vr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return $r(n)},Wr={one:{setTag:br,unTag:yr,addTags:Hr}};const Mr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Jr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Mr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Mr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Lr=Jr;var qr=function(e){Object.assign(e.prototype,Lr)};var Kr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Ur=new Set(["Auxiliary","Possessive"]);var Rr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Ur.has(e)||!t.hasOwnProperty(n))return 1;if(Ur.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},_r={model:{one:{tagSet:{}}},compute:{tagRank:Rr},methods:Wr,api:qr,lib:Kr};const Qr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Zr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Yr=/((?:\r?\n|\r)+)/;var Xr=function(e){let t=[],n=e.split(Yr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const aa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},oa=RegExp("("+Object.keys(aa).join("|")+")","g"),ia=RegExp("("+Object.values(aa).join("|")+")","g"),sa=function(e){if(!e)return!1;let t=e.match(ia);return null!==t&&1===t.length};var la=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Na=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(ka);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=ya(n),n=va(n),n=n.filter((e=>e)),n};let ja=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),xa=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ea=/[\p{Punctuation}\s]+$/u,Ia=/^[\p{Punctuation}\s]+/u,Ga=/['’]/,Ta=/^[a-z]\.([a-z]\.)+/i,Da=/^'[0-9]{2}/;var Ca=function(e){let t=e,n="",r="";return e=e.replace(Ia,(t=>{let r=t.match(ja);return r?(n=t.replace(ja,""),r):"'"===n&&Da.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ea,(a=>{let o=a.match(xa);return o?(r=a.replace(xa,""),o):Ga.test(a)&&/[sn]['’]$/.test(t)&&!1===Ga.test(n)?(r=r.replace(Ga,""),"'"):!0===Ta.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}};var Oa=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")};var Va=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Ba=/([A-Z]\.)+[A-Z]?,?$/,za=/^[A-Z]\.,?$/,$a=/[A-Z]{2,}('s|,)?$/,Fa=/([a-z]\.)+[a-z]\.?$/;var Sa=function(e){return function(e){return!0===Ba.test(e)||!0===Fa.test(e)||!0===za.test(e)||!0===$a.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ha=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Va(r),r=n(r,t),r=Sa(r),e.normal=r};var Wa=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Ha(e,t)})),n})),e};const Ma=/[ .][A-Z]\.? *$/i,Ja=/(?:\u2026|\.{2,}) *$/,La=/\p{L}/u,qa=/^[A-Z]\. $/;var Ka=function(e,t){if(!1===La.test(e))return!1;if(!0===Ma.test(e))return!1;if(3===e.length&&qa.test(e))return!1;if(!0===Ja.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ua={one:{killUnicode:Oa,tokenize:{splitSentences:pa,isSentence:Ka,splitTerms:Na,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ca(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Wa}}};var Ra={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let _a={},Qa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{_a[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])}))}));var Za=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Ya={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Xa={};Object.keys(Ya).forEach((function(e){Ya[e].split("").forEach((function(t){Xa[t]=e}))}));const eo=/\//,to=/[a-z]\.[a-z]/i,no=/[0-9]/;var ro=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),eo.test(n)&&!to.test(n)&&!no.test(n)){let t=n.split(eo);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ao=/^\p{Letter}+-\p{Letter}+$/u;var oo=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ao.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var io=function(e){let t=e.docs,n={};for(let e=0;eco(e,ro),machine:e=>co(e,oo),normal:e=>co(e,Ha),freq:io,offset:so,index:lo,wordCount:uo},methods:Ua,model:{one:{aliases:Ra,abbreviations:_a,prefixes:Za,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Qa,unicode:Xa}},hooks:["alias","machine","index","id"]};var mo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const po=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var go=function(e){e.prototype.autoFill=po};var fo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const vo={safe:!0,min:3};var bo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},vo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=fo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}};var yo={model:{one:{typeahead:{}}},api:go,lib:bo,compute:mo,hooks:["typeahead"]};v.extend(ee),v.extend(Jn),v.extend(ln),v.extend(nr),v.extend(_r),v.plugin(Ie),v.extend(ho),v.plugin(P),v.extend(Le),v.extend(yo),v.extend(ze),v.extend(mr);var wo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Po={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const ko="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Ao=ko.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==Ao[e])return Ao[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var jo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Eo(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Io(Po[e]);Co.test(e)?Object.keys(t).forEach((t=>{if(Vo[t]=e,"Noun|Verb"===e){let e=Do(t,Bo);Vo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Oo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Oo[e]="Emoticon")),delete Oo[""],delete Oo.null,delete Oo[" "];const zo="Adjective";var $o={beforeTags:{Determiner:zo,Possessive:zo},afterTags:{Adjective:zo},beforeWords:{seem:zo,seemed:zo,seems:zo,feel:zo,feels:zo,felt:zo,appear:zo,appears:zo,appeared:zo,also:zo,over:zo,under:zo,too:zo,it:zo,but:zo,still:zo,really:zo,quite:zo,well:zo,very:zo,deeply:zo,profoundly:zo,extremely:zo,so:zo,badly:zo,mostly:zo,totally:zo,awfully:zo,rather:zo,nothing:zo,something:zo,anything:zo,not:zo,me:zo},afterWords:{too:zo,also:zo,or:zo}};const Fo="Gerund";var So={beforeTags:{Adverb:Fo,Preposition:Fo,Conjunction:Fo},afterTags:{Adverb:Fo,Possessive:Fo,Person:Fo,Pronoun:Fo,Determiner:Fo,Copula:Fo,Preposition:Fo,Conjunction:Fo,Comparative:Fo},beforeWords:{been:Fo,keep:Fo,continue:Fo,stop:Fo,am:Fo,be:Fo,me:Fo,began:Fo,start:Fo,starts:Fo,started:Fo,stops:Fo,stopped:Fo,help:Fo,helps:Fo,avoid:Fo,avoids:Fo,love:Fo,loves:Fo,loved:Fo,hate:Fo,hates:Fo,hated:Fo},afterWords:{you:Fo,me:Fo,her:Fo,him:Fo,them:Fo,their:Fo,it:Fo,this:Fo,there:Fo,on:Fo,about:Fo,for:Fo}};var Ho={beforeTags:Object.assign({},$o.beforeTags,So.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},$o.afterTags,So.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},$o.beforeWords,So.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},$o.afterWords,So.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Wo="Singular";var Mo={beforeTags:{Determiner:Wo,Possessive:Wo,Acronym:Wo,Noun:Wo,Adjective:Wo,PresentTense:Wo,Gerund:Wo,PastTense:Wo,Infinitive:Wo,Date:Wo},afterTags:{Value:Wo,Modal:Wo,Copula:Wo,PresentTense:Wo,PastTense:Wo,Demonym:Wo},beforeWords:{the:Wo,with:Wo,without:Wo,of:Wo,for:Wo,any:Wo,all:Wo,on:Wo,cut:Wo,cuts:Wo,save:Wo,saved:Wo,saves:Wo,make:Wo,makes:Wo,made:Wo,minus:Wo,plus:Wo,than:Wo,another:Wo,versus:Wo,neither:Wo,favorite:Wo,best:Wo,daily:Wo,weekly:Wo,linear:Wo,binary:Wo,mobile:Wo,lexical:Wo,technical:Wo,computer:Wo,scientific:Wo,formal:Wo},afterWords:{of:Wo,system:Wo,aid:Wo,method:Wo,utility:Wo,tool:Wo,reform:Wo,therapy:Wo,philosophy:Wo,room:Wo,authority:Wo,says:Wo,said:Wo,wants:Wo,wanted:Wo}};const Jo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Lo={beforeTags:Object.assign({},$o.beforeTags,Mo.beforeTags,Jo.beforeTags),afterTags:Object.assign({},$o.afterTags,Mo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Mo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Mo.afterWords)};const qo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ko={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Uo={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ro={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var _o={beforeTags:Object.assign({},$o.beforeTags,qo),afterTags:Object.assign({},$o.afterTags,Ko),beforeWords:Object.assign({},$o.beforeWords,Uo),afterWords:Object.assign({},$o.afterWords,Ro)};const Qo="Infinitive";var Zo={beforeTags:{Modal:Qo,Adverb:Qo,Negative:Qo,Plural:Qo},afterTags:{Determiner:Qo,Adverb:Qo,Possessive:Qo,Preposition:Qo},beforeWords:{i:Qo,we:Qo,you:Qo,they:Qo,to:Qo,please:Qo,will:Qo,have:Qo,had:Qo,would:Qo,could:Qo,should:Qo,do:Qo,did:Qo,does:Qo,can:Qo,must:Qo,us:Qo,me:Qo,he:Qo,she:Qo,it:Qo,being:Qo},afterWords:{the:Qo,me:Qo,you:Qo,him:Qo,her:Qo,them:Qo,it:Qo,a:Qo,an:Qo,up:Qo,down:Qo,by:Qo,out:Qo,off:Qo,under:Qo,when:Qo,all:Qo,to:Qo,because:Qo,although:Qo,before:Qo,how:Qo,otherwise:Qo,together:Qo,though:Qo,yet:Qo}};const Yo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xo={beforeTags:Object.assign({},$o.beforeTags,Zo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},$o.afterTags,Zo.afterTags,Yo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Zo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Zo.afterWords,{to:void 0})};const ei={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ti={},ni={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ri={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ai={beforeTags:Object.assign({},So.beforeTags,Mo.beforeTags,ei),afterTags:Object.assign({},So.afterTags,Mo.afterTags,ti),beforeWords:Object.assign({},So.beforeWords,Mo.beforeWords,ni),afterWords:Object.assign({},So.afterWords,Mo.afterWords,ri)};var oi={beforeTags:Object.assign({},Zo.beforeTags,Mo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Zo.afterTags,Mo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Zo.beforeWords,Mo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Zo.afterWords,Mo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ii="Person";var si={beforeTags:{Honorific:ii,Person:ii,Preposition:ii},afterTags:{Person:ii,ProperNoun:ii,Verb:ii},ownTags:{ProperNoun:ii},beforeWords:{hi:ii,hey:ii,yo:ii,dear:ii,hello:ii},afterWords:{said:ii,says:ii,told:ii,tells:ii,feels:ii,felt:ii,seems:ii,thinks:ii,thought:ii,spends:ii,spendt:ii,plays:ii,played:ii,sing:ii,sang:ii,learn:ii,learned:ii,wants:ii,wanted:ii}};const li="Month",ui={beforeTags:{Date:li,Value:li},afterTags:{Date:li,Value:li},beforeWords:{by:li,in:li,on:li,during:li,after:li,before:li,between:li,until:li,til:li,sometime:li,of:li,this:li,next:li,last:li,previous:li,following:li},afterWords:{sometime:li,in:li,of:li,until:li,the:li}};var ci={beforeTags:Object.assign({},si.beforeTags,ui.beforeTags),afterTags:Object.assign({},si.afterTags,ui.afterTags),beforeWords:Object.assign({},si.beforeWords,ui.beforeWords),afterWords:Object.assign({},si.afterWords,ui.afterWords)};const hi={Place:"Place"},di={Place:"Place",Abbreviation:"Place"},mi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},pi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let gi="Unit";const fi="Honorific";let vi={first:fi,general:fi,royal:fi,vice:fi,rear:fi,major:fi};const bi={"Adj|Gerund":Ho,"Adj|Noun":Lo,"Adj|Past":_o,"Adj|Present":Xo,"Noun|Verb":oi,"Noun|Gerund":ai,"Person|Noun":{beforeTags:Object.assign({},Mo.beforeTags,si.beforeTags),afterTags:Object.assign({},Mo.afterTags,si.afterTags),beforeWords:Object.assign({},Mo.beforeWords,si.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Mo.afterWords,si.afterWords)},"Person|Date":ci,"Person|Verb":{beforeTags:Object.assign({},si.beforeTags,Zo.beforeTags),afterTags:Object.assign({},si.afterTags,Zo.afterTags),beforeWords:Object.assign({},si.beforeWords,Zo.beforeWords),afterWords:Object.assign({},si.afterWords,Zo.afterWords)},"Person|Place":{beforeTags:Object.assign({},hi,si.beforeTags),afterTags:Object.assign({},di,si.afterTags),beforeWords:Object.assign({},mi,si.beforeWords),afterWords:Object.assign({},pi,si.afterWords)},"Unit|Noun":{beforeTags:{Value:gi},afterTags:{},beforeWords:{per:gi,every:gi,each:gi,square:gi,cubic:gi,sq:gi,metric:gi},afterWords:{per:gi,squared:gi,cubed:gi,long:gi}},"Honorific|Noun":{beforeTags:{Honorific:fi,ProperNoun:fi,Ordinal:fi},afterTags:{Person:fi,ProperNoun:fi},beforeWords:Object.assign({},vi,{honorable:fi,honourable:fi,worship:fi,excellency:fi,majesty:fi,right:fi}),afterWords:vi}},yi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};bi["Plural|Verb"]={beforeWords:yi(bi["Noun|Verb"].beforeWords,{}),afterWords:yi(bi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:yi(bi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:yi(bi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var wi=bi;const Pi="Adjective",ki="Infinitive",Ai="PresentTense",Ni="Singular",ji="PastTense",xi="Adverb",Ei="Plural",Ii="Verb",Gi="LastName",Ti="Participle";var Di=[null,null,{ea:Ni,ia:"Noun",ic:Pi,ly:xi,"'n":Ii,"'t":Ii},{oed:ji,ued:ji,xed:ji," so":xi,"'ll":"Modal","'re":"Copula",azy:Pi,eer:"Noun",end:Ii,ped:ji,ffy:Pi,ify:ki,ing:"Gerund",ize:ki,ibe:ki,lar:Pi,mum:Pi,nes:Ai,nny:Pi,ous:Pi,que:Pi,rol:Ni,sis:Ni,ogy:Ni,oid:Ni,ian:Ni,zes:Ai,eld:ji,ken:Ti,ven:Ti,ten:Ti,ect:ki,ict:ki,ign:ki,ful:Pi,bal:Pi},{amed:ji,aped:ji,ched:ji,lked:ji,rked:ji,reed:ji,nded:ji,mned:Pi,cted:ji,dged:ji,ield:Ni,akis:Gi,cede:ki,chuk:Gi,czyk:Gi,ects:Ai,ends:Ii,enko:Gi,ette:Ni,wner:Ni,fies:Ai,fore:xi,gate:ki,gone:Pi,ices:Ei,ints:Ei,ruct:ki,ines:Ei,ions:Ei,less:Pi,llen:Pi,made:Pi,nsen:Gi,oses:Ai,ould:"Modal",some:Pi,sson:Gi,tion:Ni,tage:"Noun",ique:Ni,tive:Pi,tors:"Noun",vice:Ni,lier:Ni,fier:Ni,wned:ji,gent:Ni,tist:Ni,pist:Ni,rist:Ni,mist:Ni,yist:Ni,vist:Ni,lite:Ni,site:Ni,rite:Ni,mite:Ni,bite:Ni,mate:Ni,date:Ni,ndal:Ni,vent:Ni,uist:Ni,gist:Ni,note:Ni,cide:Ni,wide:Pi,vide:ki,ract:ki,duce:ki,pose:ki,eive:ki,lyze:ki,lyse:ki,iant:Pi,nary:Pi},{elist:Ni,holic:Ni,phite:Ni,tized:ji,urned:ji,eased:ji,ances:Ei,bound:Pi,ettes:Ei,fully:xi,ishes:Ai,ities:Ei,marek:Gi,nssen:Gi,ology:"Noun",osome:Ni,tment:Ni,ports:Ei,rough:Pi,tches:Ai,tieth:"Ordinal",tures:Ei,wards:xi,where:xi,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Ni,scent:Ni,onist:Ni,anist:Ni,alist:Ni,olist:Ni,icist:Ni,ounce:ki,iable:Pi,borne:Pi,gnant:Pi,inant:Pi,igent:Pi,atory:Pi,rient:Ni,dient:Ni},{auskas:Gi,parent:Ni,cedent:Ni,ionary:Ni,cklist:Ni,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Gi,borough:"Place",sdottir:Gi}];const Ci="Adjective";var Oi=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Ci,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Ci,tele:"Noun","pro-":Ci,"mis-":"Verb","dis-":"Verb","pre-":Ci},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Ci,radio:"Noun",tetra:"Noun","omni-":Ci,"post-":Ci},{pseudo:Ci,"extra-":Ci,"hyper-":Ci,"inter-":Ci,"intra-":Ci,"deca-":Ci},{electro:"Noun"}];const Vi="Adjective",Bi="Infinitive",zi="PresentTense",$i="Singular",Fi="PastTense",Si="Expression",Hi="LastName";var Wi={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Hi],[/.[^aeiou]ica$/,$i,"harmonica"],[/^([hyj]a+)+$/,Si,"haha"]],c:[[/.[^aeiou]ic$/,Vi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Fi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Fi,"rammed"],[/.[aeiou][sg]hed$/,Fi,"gushed"],[/.[aeiou]red$/,Fi,"hired"],[/.[aeiou]r?ried$/,Fi,"hurried"],[/[^aeiou]ard$/,$i,"steward"],[/[aeiou][^aeiou]id$/,Vi,""],[/.[vrl]id$/,Vi,"livid"],[/..led$/,Fi,"hurled"],[/.[iao]sed$/,Fi,""],[/[aeiou]n?[cs]ed$/,Fi,""],[/[aeiou][rl]?[mnf]ed$/,Fi,""],[/[aeiou][ns]?c?ked$/,Fi,"bunked"],[/[aeiou]gned$/,Fi],[/[aeiou][nl]?ged$/,Fi],[/.[tdbwxyz]ed$/,Fi],[/[^aeiou][aeiou][tvx]ed$/,Fi],[/.[cdflmnprstv]ied$/,Fi,"emptied"]],e:[[/.[lnr]ize$/,Bi,"antagonize"],[/.[^aeiou]ise$/,Bi,"antagonise"],[/.[aeiou]te$/,Bi,"bite"],[/.[^aeiou][ai]ble$/,Vi,"fixable"],[/.[^aeiou]eable$/,Vi,"maleable"],[/.[ts]ive$/,Vi,"festive"],[/[a-z]-like$/,Vi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Vi,"cornish"],[/.v[iy]ch$/,Hi,"..ovich"],[/^ug?h+$/,Si,"ughh"],[/^uh[ -]?oh$/,Si,"uhoh"],[/[a-z]-ish$/,Vi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Hi,"polish-male"]],k:[[/^(k){2}$/,Si,"kkkk"]],l:[[/.[gl]ial$/,Vi,"familial"],[/.[^aeiou]ful$/,Vi,"fitful"],[/.[nrtumcd]al$/,Vi,"natal"],[/.[^aeiou][ei]al$/,Vi,"familial"]],m:[[/.[^aeiou]ium$/,$i,"magnesium"],[/[^aeiou]ism$/,$i,"schism"],[/^[hu]m+$/,Si,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Vi,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Si,"noooo"],[/^(yo)+$/,Si,"yoo"],[/^wo{2,}[pt]?$/,Si,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,$i],[/[^i]fer$/,Bi],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Vi],[/[aeiou].*ist$/,Vi],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,zi],[/.[rln]ates$/,zi],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,$i],[/.[aeiou]sks$/,zi],[/.[aeiou]kes$/,zi],[/[aeiou][^aeiou]is$/,$i],[/[a-z]'s$/,"Noun"],[/^yes+$/,Si]],v:[[/.[^aeiou][ai][kln]ov$/,Hi]],y:[[/.[cts]hy$/,Vi],[/.[st]ty$/,Vi],[/.[tnl]ary$/,Vi],[/.[oe]ry$/,$i],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Vi],[/...lly$/,"Adverb"],[/.[gk]y$/,Vi],[/[bszmp]{2}y$/,Vi],[/.[ai]my$/,Vi],[/[ea]{2}zy$/,Vi],[/.[^aeiou]ity$/,$i]]};const Mi="Verb",Ji="Noun";var Li={leftTags:[["Adjective",Ji],["Possessive",Ji],["Determiner",Ji],["Adverb",Mi],["Pronoun",Mi],["Value",Ji],["Ordinal",Ji],["Modal",Mi],["Superlative",Ji],["Demonym",Ji],["Honorific","Person"]],leftWords:[["i",Mi],["first",Ji],["it",Mi],["there",Mi],["not",Mi],["because",Ji],["if",Ji],["but",Ji],["who",Mi],["this",Ji],["his",Ji],["when",Ji],["you",Mi],["very","Adjective"],["old",Ji],["never",Mi],["before",Ji],["a","Singular"],["the",Ji],["been",Mi]],rightTags:[["Copula",Ji],["PastTense",Ji],["Conjunction",Ji],["Modal",Ji]],rightWords:[["there",Mi],["me",Mi],["man","Adjective"],["only",Mi],["him",Mi],["it",Mi],["were",Ji],["took",Ji],["himself",Mi],["went",Ji],["who",Ji],["jr","Person"]]},qi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ki={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Ui={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Ri={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},_i={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Qi=/^.([0-9]+)/;var Zi=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Qi);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Qi,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},Xi=/^([0-9]+)/,es=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Xi);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Xi,"")]}(n[0],n[1])}))};var ts=function(e={}){return(e=Object.assign({},e)).rules=es(e.rules),e.rules=Yi(e.rules),e.rev&&(e.rev=es(e.rev),e.rev=Yi(e.rev)),e.exceptions=es(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e};var ns=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const rs=ts({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),as=ts(Ri),os=ts(Ki),is=ts(Ui),ss=ns(rs),ls=ns(as),us=ns(os),cs=ns(is),hs=ts(qi),ds=ts(_i);var ms={fromPast:rs,fromPresent:as,fromGerund:os,fromParticiple:is,toPast:ss,toPresent:ls,toGerund:us,toParticiple:cs,toComparative:hs,toSuperlative:ds,fromComparative:ns(hs),fromSuperlative:ns(ds)},ps=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),gs=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var fs=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(vs[t].forEach((n=>e[n]=t)),e)),{});var bs=vs;var ys=function(e){let t=e.substring(e.length-3);if(!0===bs.hasOwnProperty(t))return bs[t];let n=e.substring(e.length-2);return!0===bs.hasOwnProperty(n)?bs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ws={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ps=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=ys(e)),ws.hasOwnProperty(e))c=ws[e];else if("Participle"===n)c=Zi(l,i);else if("PastTense"===n)c=Zi(l,r);else if("PresentTense"===n)c=Zi(l,a);else{if("Gerund"!==n)return e;c=Zi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};const ks=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Zi(i,n),PresentTense:Zi(i,r),Gerund:Zi(i,a),FutureTense:"will "+e},u=Zi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var As=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const Ns=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],js={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var xs=function(e){if(js.hasOwnProperty(e))return js[e];let t=As(e,Ns);return t||e+"ly"};const Es=function(e,t){const n=t.two.models.toSuperlative;return Zi(e,n)},Is=function(e,t){const n=t.two.models.toComparative;return Zi(e,n)},Gs="ically",Ts=new Set(["analyt"+Gs,"chem"+Gs,"class"+Gs,"clin"+Gs,"crit"+Gs,"ecolog"+Gs,"electr"+Gs,"empir"+Gs,"frant"+Gs,"grammat"+Gs,"ident"+Gs,"ideolog"+Gs,"log"+Gs,"mag"+Gs,"mathemat"+Gs,"mechan"+Gs,"med"+Gs,"method"+Gs,"method"+Gs,"mus"+Gs,"phys"+Gs,"phys"+Gs,"polit"+Gs,"pract"+Gs,"rad"+Gs,"satir"+Gs,"statist"+Gs,"techn"+Gs,"technolog"+Gs,"theoret"+Gs,"typ"+Gs,"vert"+Gs,"whims"+Gs]),Ds=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Cs=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Os={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Vs=function(e){return e.endsWith("ly")?Ts.has(e)?e.replace(/ically/,"ical"):Cs.has(e)?null:Os.hasOwnProperty(e)?Os[e]:As(e,Ds)||e:null};const Bs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],zs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},$s=new Set(["terrible","annoying"]);var Fs={noun:{toPlural:Do,toSingular:fs,all:Do},verb:{toInfinitive:Ps,conjugate:ks,all:function(e,t){let n=ks(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},adjective:{toSuperlative:Es,toComparative:Is,toAdverb:xs,toNoun:function(e){if(zs.hasOwnProperty(e))return zs[e];if($s.has(e))return null;let t=As(e,Bs);return t||e+"ness"},fromAdverb:Vs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Zi(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Zi(e,n)},all:function(e,t){let n=[e];return n.push(Es(e,t)),n.push(Is(e,t)),n.push(xs(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}}},Ss={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Hs=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Ss.hasOwnProperty(i)&&Ss[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var Ws=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Ls.find((t=>e.endsWith(t)))},Ks={two:{quickSplit:Ws,expandLexicon:Hs,transform:Fs,looksPlural:qs}};var Us=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const Rs=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var _s=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Rs(n,"Infinitive","PastTense"),Object.assign(s,l),l=Rs(r,"Infinitive","Verb"),Object.assign(s,l),l=Rs(a,"Infinitive","Gerund"),Object.assign(s,l),l=Rs(o,"Adjective","Superlative"),Object.assign(s,l),l=Rs(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Qs={two:{models:ms}};const Zs={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},Ys=function(e,t){const n={model:t,methods:Ks};let{lex:r,_multi:a}=Ks.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Xs=function(e,t,n){let r=ks(e,Qs);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},el=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=Zs[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Xs(a,r,!1),"Adj|Present"===o&&(Xs(a,r,!0),function(e,t,n){let r=Es(e,n);t[r]=t[r]||"Superlative";let a=Is(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ps(a,Qs,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ps(a,Qs,"PastTense");r[e]||(n[e]="Infinitive")}})),t=Ys(n,t)};var tl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=Ys(e.one.lexicon,e)).one.lexicon,e),e=el(e.two.switches,e),e=_s(e),e=Us(e)};let nl={one:{_multiCache:{},lexicon:Oo},two:{irregularPlurals:wo,models:ms,suffixPatterns:Di,prefixPatterns:Oi,endsWith:Wi,neighbours:Li,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Vo,clues:wi,uncountable:{},orgWords:ps}};nl=tl(nl);var rl=nl;const al=/^(under|over|mis|re|un|dis|semi)-?/;var ol=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(al.test(a.normal)){let e=a.normal.replace(al,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var il=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const sl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ll=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(qs(e.normal)?il(e,"Plural","3-plural-guess"):il(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ys(e.normal);t&&il(e,t,"3-verb-tense-guess")}}(r)};const ul=/^\p{Lu}[\p{Ll}'’]/u,cl=/[0-9]/,hl=["Date","Month","WeekDay","Unit"],dl=/^[IVXLCDM]{2,}$/,ml=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,pl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var gl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===ul.test(o)&&!1===cl.test(o)?hl.find((e=>r.tags.has(e)))?null:(ll(e,t,n),r.tags.has("Noun")||r.tags.clear(),il(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&dl.test(o)&&ml.test(o)&&!pl[r.normal]?(il(r,"RomanNumeral","2-xvii"),!0):null};const fl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var vl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=fl(r.normal,n.two.suffixPatterns);if(null!==e)return il(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=fl(r.implicit,n.two.suffixPatterns),null!==e))return il(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const bl=/['‘’‛‵′`´]/,yl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return il(r,e,"2-prefix"),r.confidence=.5,!0}return null};const kl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Al=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!kl.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},Nl=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},jl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var xl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Al(a)||Al(o))return il(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Nl(a)||Nl(o))return il(n,"Year","2-tagYear-close");if(jl(e[t-2])||jl(e[t+2]))return il(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return il(n,"Year","2-tagYear-noun")}}}return null};const El=/^[A-Z]('s|,)?$/,Il=/^[A-Z-]+$/,Gl=/([A-Z]\.)+[A-Z]?,?$/,Tl=/[A-Z]{2,}('s|,)?$/,Dl=/([a-z]\.)+[a-z]\.?$/,Cl={I:!0,A:!0};var Ol=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Il.test(n)||n.length>5||Cl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Gl.test(n)&&!0!==Dl.test(n)&&!0!==El.test(n)&&!0!==Tl.test(n))}(r,n)?(r.tags.clear(),il(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Cl.hasOwnProperty(r.text)&&El.test(r.text)?(r.tags.clear(),il(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(il(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Il.test(r.text)&&r.text.length<=6?(il(r,"Acronym","3-titlecase-acronym"),!0):null};const Vl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Bl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var zl=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Vl(e[t-1],a),l=l||Vl(e[t+1],o),l=l||Bl(e[t-1],r),l=l||Bl(e[t+1],i),l)return il(s,l,"3-[neighbour]"),ll(e,t,n),e[t].confidence=.2,!0}return null};const $l=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Fl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&$l(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&$l(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Sl=function(e,t,n){0===e[t].tags.size&&(il(e[t],"Noun","3-[fallback]"),ll(e,t,n),e[t].confidence=.1)};const Hl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Wl=(e,t,n)=>0!==t||e[1]?null:n,Ml={"Adj|Gerund":(e,t)=>Hl(e,t),"Adj|Noun":(e,t)=>Hl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Hl(e,t),"Adj|Present":(e,t)=>Hl(e,t),"Noun|Gerund":(e,t)=>Hl(e,t),"Noun|Verb":(e,t)=>Hl(e,t)||Wl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Hl(e,t)||Wl(e,t,"PresentTense"),"Person|Noun":(e,t)=>Hl(e,t),"Person|Verb":(e,t)=>0!==t?Hl(e,t):null};var Jl=Ml;const Ll="undefined"!=typeof process&&process.env?process.env:self.env||{},ql=/^(under|over|mis|re|un|dis|semi)-?/,Kl=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Ll.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ul=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&Ll.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var Rl=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(ql.test(l)&&!o[l]&&(l=l.replace(ql,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Kl(e[t+1],n.afterWords);return o=o||Kl(e[t-1],n.beforeWords),o=o||Ul(e[t-1],n.beforeTags,a),o=o||Ul(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Jl[o]&&(u=Jl[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),ll(e,t,r)):Ll.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};var _l=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(il(o,"Verb","3-[prefix]"),il(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(il(o,"Adjective","3-[prefix]"),il(o,"Prefix","3-[prefix]")))};const Ql={tagSwitch:ol,checkSuffix:vl,checkRegex:wl,checkCase:gl,checkPrefix:Pl,checkHyphen:_l,checkYear:xl},Zl={checkAcronym:Ol,neighbours:zl,orgWords:Fl,nounFallback:Sl,switches:Rl},Yl=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var nu=function(e){const t=e.world,n=Object.keys(tu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=pu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=mu};var fu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const vu=/'/;var bu=function(e,t){let n=e[t].normal.split(vu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const yu=/'/;var wu=function(e,t){let n=e[t].normal.split(yu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var Pu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const ku={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Au={in:!0,by:!0,for:!0};var Nu=(e,t)=>{let n=e[t];if(ku.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===Au[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const ju=/'/,xu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Eu={d:(e,t)=>wu(e,t),t:(e,t)=>Pu(e,t),s:(e,t,n)=>Nu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):bu(e,t)},Iu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Gu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===ju.test(r[o].normal)&&([,i]=r[o].normal.split(ju));let s=null;Eu.hasOwnProperty(i)&&(s=Eu[i](r,o,t)),s&&(s=Iu(s,e),fu(n,[a,o],s),xu(n[a],e,o,s.length))}}))}},Tu={compute:Gu,api:gu,hooks:["contractionTwo"]};const Du="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const Cu=["i","we","they"];let Ou=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Du} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Du} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Du}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Cu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Cu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Cu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let Vu=null;var Bu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Vu=Vu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Vu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const zu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Bu,model:{two:{matches:Ou}},hooks:["postTagger"]};var $u=zu;var Fu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var Su=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Fu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Hu={lib:{lazy:Su}};var Wu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var Mu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Wu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Ju={api:function(e){e.prototype.swap=Mu}};v.plugin(cu),v.plugin(Tu),v.plugin($u),v.plugin(Hu),v.plugin(Ju);var Lu=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter((e=>e.wordCount()>5&&e.match("#Verb+").length>=2));if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n};var qu=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r};var Ku=function(e){e.prototype.chunks=qu,e.prototype.clauses=Lu};const Uu={this:"Noun",then:"Pivot"};var Ru=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))};var nc={chunks:function(e){const{document:t,world:n}=e;Ru(t),_u(t),Yu(e,t,n),ec(t),tc(t)}},rc={compute:nc,api:Ku,hooks:["chunks"]};const ac=/'s$/;var oc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(ac,""),e.normal=e.normal.replace(ac,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const ic=/\(/,sc=/\)/,lc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(ic,"");let t=e[e.length-1];t.post=t.post.replace(sc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const cc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},hc=RegExp("("+Object.keys(cc).join("|")+")"),dc=RegExp("("+Object.values(cc).join("|")+")"),mc=function(e,t){const n=e[t].pre.match(hc)[0]||"";if(!n||!cc[n])return null;const r=cc[n];for(;t{e[0].pre=e[0].pre.replace(hc,"");let t=e[e.length-1];t.post=t.post.replace(dc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const gc=/\./g;var fc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(gc,""),e.normal=e.normal.replace(gc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(gc,""),e.normal=e.normal.replace(gc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}};var vc=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const bc=(e,t)=>"number"==typeof t?e.eq(t):e,yc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var wc=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=yc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return bc(this,e).map((e=>{let o=yc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return bc(this,e).map((e=>{let n=yc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return bc(this,e).map((e=>{let n=yc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return bc(this,e).map((e=>{let n=yc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return bc(this,e).map((e=>{let n=yc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=bc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=bc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=bc(t,e),new Adjectives(t.document,t.pointer)}};const Pc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},kc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let Ac=[["emojis","emoji"],["atmentions","atMentions"]];var Nc=function(e){kc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Pc,Ac.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},jc={api:function(e){Nc(e),oc(e),uc(e),pc(e),wc(e),vc(e),fc(e)}};const xc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Ec={case:e=>{xc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;xc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{xc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{xc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Ic=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Gc="unicode|punctuation|whitespace|acronyms",Tc="|case|contractions|parentheses|quotations|emoji|honorifics",Dc={light:Ic(Gc),medium:Ic(Gc+Tc),heavy:Ic(Gc+Tc+"|possessives|adverbs|nouns|verbs")};var Cc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Dc[e]),Object.keys(e).forEach((t=>{Ec.hasOwnProperty(t)&&Ec[t](this,e[t])})),this}}};var Oc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Vc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Bc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")};var $c=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:zc(e,t),isSubordinate:Bc(e),root:t}};const Fc=e=>e.text(),Sc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Hc=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var Wc=function(e){let t=$c(e);return{root:Fc(t.root),number:Hc(t.number),determiner:Fc(t.determiner),adjectives:Sc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Mc={tags:!0};var Jc=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Mc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Mc),e};const Lc={tags:!0};var qc=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Lc).tag("Singular","toPlural"),e};const Kc=(e,t)=>"number"==typeof t?e.eq(t):e;var Uc=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Kc(this,e).map($c)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Wc(t)),n}),[])}isPlural(e){let t=this.filter((e=>$c(e).isPlural));return Kc(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=$c(e).adjectives;n.found&&(t=t.concat(n))})),Kc(t,e)}toPlural(e){return Kc(this,e).map((e=>Jc(e,$c(e))))}toSingular(e){return Kc(this,e).map((e=>{let t=$c(e);return qc(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Oc(this);return t=Kc(t,e),new Nouns(this.document,t.pointer)}},Rc={api:Uc};var _c=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n};var Qc=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Zc.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Zc.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Zc.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var Xc=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const th=/^([0-9,. ]+)\/([0-9,. ]+)$/,nh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},rh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var ah=function(e){if(!0===nh.hasOwnProperty(e))return nh[e];if("a"===e||"an"===e)return 1;const t=Qc(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=ih(n),r=ih(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:ih(n);let a=r.text("reduced");return oh.test(a)&&(a=a.replace(oh,""),r=r.replaceWith(a)),r=sh.hasOwnProperty(a)?sh[a]:ih(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:ih(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t};var uh=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const ch=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],hh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],dh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],mh=function(e){let t=[];if(e>100)return t;for(let n=0;n=ch[n][1]&&(e-=ch[n][1],t.push(ch[n][0]));return hh[e]&&t.push(hh[e]),t};var ph=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=uh(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return dh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(mh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=uh(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")};var gh=function(e){if(!e.numerator||!e.denominator)return"";return`${ph({num:e.numerator})} out of ${ph({num:e.denominator})}`};const fh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var vh=e=>{let t=ph(e).split(" "),n=t[t.length-1];return fh.hasOwnProperty(n)?t[t.length-1]=fh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var bh=function(e){if(!e.numerator||!e.denominator)return"";let t=ph({num:e.numerator}),n=vh({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const yh=(e,t)=>"number"==typeof t?e.eq(t):e;var wh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return yh(this,e).map(lh)}get(e){return yh(this,e).map(lh)}json(e){return yh(this,e).map((t=>{let n=t.toView().json(e)[0],r=lh(t);return n.fraction=r,n}),[])}toDecimal(e){return yh(this,e).forEach((e=>{let{decimal:t}=lh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return yh(this,e).forEach((e=>{let t=lh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return yh(this,e).forEach((e=>{let t=lh(e),n=bh(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return yh(this,e).forEach((e=>{let t=lh(e),n=gh(t);e.replaceWith(n)})),this}toPercentage(e){return yh(this,e).forEach((e=>{let{decimal:t}=lh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=_c(this);return t=yh(t,e),new Fractions(this.document,t.pointer)}};const Ph="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var kh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Ph+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Ph+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Ph+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Ph+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Ph})`),r=e.has("("+Ph+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Ph+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Ph+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var Ah=function(e){if("string"==typeof e)return{num:ah(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=lh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=ah(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}};var Nh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=uh(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const jh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},xh={"%":"percent","°":"degrees"};var Eh=function(e){let t={suffix:"",prefix:e.prefix};return jh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+jh[e.prefix],t.prefix=""),xh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+xh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var Ih=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Eh(e);return t+vh(e)+n}if("Ordinal"===t)return e.prefix+Nh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Eh(e);return t+ph(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Gh=(e,t)=>"number"==typeof t?e.eq(t):e;var Th=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Gh(this,e).map(Ah)}get(e){return Gh(this,e).map(Ah).map((e=>e.num))}json(e){return Gh(this,e).map((t=>{let n=t.toView().json(e)[0],r=Ah(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=Ah(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Ih(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=Ah(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Ih(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=Ah(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Ih(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=Ah(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Ih(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=Ah(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Ih(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>Ah(t).num===e))}greaterThan(e){return this.filter((t=>Ah(t).num>e))}lessThan(e){return this.filter((t=>Ah(t).num{let r=Ah(n).num;return r>e&&r{let n=Ah(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Ih(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=Ah(e).num);let t=this.map((t=>{let n=Ah(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Ih(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=kh(this);return t=Gh(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=kh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=Gh(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=kh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=Gh(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var Dh={api:function(e){wh(e),Th(e)}};const Ch={people:!0,emails:!0,phoneNumbers:!0,places:!0},Oh=function(e={}){return!1!==(e=Object.assign({},Ch,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},Vh={api:function(e){e.prototype.redact=Oh}};var Bh=Vh;var zh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))};var $h=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};var Fh=function(e){let t=e.clauses(),n=$h(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}};var Sh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e};var Hh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e};var Wh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!e.lookBehind("to$").found&&(!!e.has("#Copula #Gerund")||!e.has("#Gerund")&&(!!e.has("#Copula")||!(e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found)))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e};var Mh=function(e){return e.verbs().toInfinitive(),e};const Jh=(e,t)=>"number"==typeof t?e.eq(t):e;var Lh=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Fh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n}),[])}toPastTense(e){return Jh(this,e).map((e=>(Fh(e),Sh(e))))}toPresentTense(e){return Jh(this,e).map((e=>(Fh(e),Hh(e))))}toFutureTense(e){return Jh(this,e).map((e=>(Fh(e),e=Wh(e))))}toInfinitive(e){return Jh(this,e).map((e=>(Fh(e),Mh(e))))}toNegative(e){return Jh(this,e).map((e=>(Fh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return Jh(this,e).map((e=>(Fh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return Jh(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return Jh(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=Jh(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=zh(this);return Jh(t,e)}};Object.assign(e.prototype,t)},qh={api:Lh};var Kh=function(e){return e.match("#Honorific+? #Person+")};var Uh=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Rh="male",_h="female",Qh={mr:Rh,mrs:_h,miss:_h,madam:_h,king:Rh,queen:_h,duke:Rh,duchess:_h,baron:Rh,baroness:_h,count:Rh,countess:_h,prince:Rh,princess:_h,sire:Rh,dame:_h,lady:_h,ayatullah:Rh,congressman:Rh,congresswoman:_h,"first lady":_h,mx:null};var Zh=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return _h;if(n.has("#MaleName"))return Rh;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Qh.hasOwnProperty(e))return Qh[e];if(/^her /.test(e))return _h;if(/^his /.test(e))return Rh}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Rh;if(n&&!t)return _h}return null};const Yh=(e,t)=>"number"==typeof t?e.eq(t):e;var Xh=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Yh(this,e).map(Uh)}json(e){return Yh(this,e).map((t=>{let n=t.toView().json(e)[0],r=Uh(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Zh(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Kh(this);return t=Yh(t,e),new People(this.document,t.pointer)}};var ed=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||(!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found))),t=t.splitAfter(n),t};var td=function(e){e.prototype.places=function(t){let n=ed(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var nd=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const rd=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var ad=function(e){e.prototype.topics=rd};var od={api:function(e){Xh(e),td(e),nd(e),ad(e)}};var id=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t};var sd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t};var ld=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const ud=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},cd=function(e){return e.match("#Negative")},hd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var dd=function(e){let t=e.clone();t.contractions().expand();const n=sd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:ld(t,n),auxiliary:ud(t,n),negative:cd(t),phrasal:hd(n)}};const md={tense:"PresentTense"},pd={conditional:!0},gd={tense:"FutureTense"},fd={progressive:!0},vd={tense:"PastTense"},bd={complete:!0,progressive:!1},yd={passive:!0},wd=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Pd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[md]],["^wanted to #Infinitive$",[vd]],["^will want to #Infinitive$",[gd]]],"gerund-phrase":[["^#PastTense #Gerund$",[vd]],["^#PresentTense #Gerund$",[md]],["^#Infinitive #Gerund$",[md]],["^will #Infinitive #Gerund$",[gd]],["^have #PastTense #Gerund$",[vd]],["^will have #PastTense #Gerund$",[vd]]],"simple-present":[["^#PresentTense$",[md]],["^#Infinitive$",[md]]],"simple-past":[["^#PastTense$",[vd]]],"simple-future":[["^will #Adverb? #Infinitive",[gd]]],"present-progressive":[["^(is|are|am) #Gerund$",[md,fd]]],"past-progressive":[["^(was|were) #Gerund$",[vd,fd]]],"future-progressive":[["^will be #Gerund$",[gd,fd]]],"present-perfect":[["^(has|have) #PastTense$",[vd,bd]]],"past-perfect":[["^had #PastTense$",[vd,bd]],["^had #PastTense to #Infinitive",[vd,bd]]],"future-perfect":[["^will have #PastTense$",[gd,bd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[vd,fd]]],"past-perfect-progressive":[["^had been #Gerund$",[vd,fd]]],"future-perfect-progressive":[["^will have been #Gerund$",[gd,fd]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[vd,yd]],["^(was|were) being (#PastTense|#Participle)",[vd,yd]],["^(had|have) been (#PastTense|#Participle)",[vd,yd]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[md,yd]],["^(is|are|am) being (#PastTense|#Participle)",[md,yd]],["^has been (#PastTense|#Participle)",[md,yd]]],"passive-future":[["will have been (#PastTense|#Participle)",[gd,yd,pd]],["will be being? (#PastTense|#Participle)",[gd,yd,pd]]],"present-conditional":[["would be #PastTense",[md,pd]]],"past-conditional":[["would have been #PastTense",[vd,pd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[gd]]],"auxiliary-past":[["^did #Infinitive$",[vd,{plural:!1}]],["^used to #Infinitive$",[vd,bd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[md,bd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[vd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let kd=[];Object.keys(Pd).map((e=>{Pd[e].forEach((t=>{kd.push({name:e,match:t[0],data:wd(t[1])})}))}));var Ad=kd;var Nd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),jd(r)&&(n.remove(r),r=n.last()),jd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:xd(t,e)}};const Id=e=>e,Gd=(e,t)=>{let n=Ed(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Td=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Ed(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Dd=function(e,t){let n=Ed(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Cd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Od=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Cd(e)),r&&e.replace(t.root,r),e},Vd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Bd=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal))},zd=function(e){return e&&e.isView?e.text("normal"):""},$d=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Cd(e))};var Fd=function(e){let t=dd(e);e=e.clone().toView();const n=Nd(e,t);return{root:t.root.text(),preAdverbs:Bd(t.adverbs.pre),postAdverbs:Bd(t.adverbs.post),auxiliary:zd(t.auxiliary),negative:t.negative.found,prefix:zd(t.prefix),infinitive:$d(t.root),grammar:n}};const Sd={tags:!0};var Hd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Cd(r)),i&&e.replace(r,i,Sd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Dd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Wd={tags:!0},Md={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Cd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Ed(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Wd),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Md.simple(e,t),e=Md.noAux(e,t))},hasHad:e=>(e.replace("has","had",Wd),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Cd(a)),n(o,e.model).Participle}},Jd={infinitive:Md.simple,"simple-present":Md.simple,"simple-past":Id,"simple-future":Md.both,"present-progressive":e=>(e.replace("are","were",Wd),e.replace("(is|are|am)","was",Wd),e),"past-progressive":Id,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Md.hasHad,"past-perfect":Id,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Vd(e)),e.remove("have"),e),"present-perfect-progressive":Md.hasHad,"past-perfect-progressive":Id,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Wd),e),"passive-past":e=>(e.replace("have","had",Wd),e),"passive-present":e=>(e.replace("(is|are)","was",Wd),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Wd),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Id,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Wd),e),"auxiliary-past":Id,"auxiliary-present":e=>(e.replace("(do|does)","did",Wd),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Wd):(Md.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Id,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Wd),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Md.simple(e,t),Vd(e),e)};var Ld=function(e,t,n){return Jd.hasOwnProperty(n)?((e=Jd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const qd={tags:!0},Kd=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Cd(a)),!1===Gd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Td(e)),o&&(e=e.replace(a,o,qd)).not("#Particle").tag("PresentTense"),e},Ud=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Cd(a)),!1===Gd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,qd)).not("#Particle").tag("Gerund"),e},Rd={infinitive:Kd,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return Kd(e,t);{let t=Ed(e).subject;if(Gd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,qd)}return e},"simple-past":Kd,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Td(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Kd(e,t),e=e.remove("will");return e},"present-progressive":Id,"past-progressive":(e,t)=>{let n=Td(e);return e.replace("(were|was)",n,qd)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Kd(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Ed(e).subject;return Gd(e)||n.has("i")?((e=Od(e,t)).remove("had"),e):(e.replace("had","has",qd),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Id,"past-perfect-progressive":e=>e.replace("had","has",qd),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Td(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,qd),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Id,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Id,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Ud(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Dd(e);return e.replace(t.auxiliary,n),e}return Ud(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Id,"modal-infinitive":Id,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Cd(r)),a&&(e=e.replace(t.root,a,qd))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Kd(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Gd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,qd),e.remove("will"),e}};var _d=function(e,t,n){return Rd.hasOwnProperty(n)?((e=Rd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Qd={tags:!0},Zd=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Cd(r)),o&&(e=e.replace(r,o,Qd)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Yd=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Cd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Qd),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Xd={infinitive:Zd,"simple-present":Zd,"simple-past":Zd,"simple-future":Id,"present-progressive":Yd,"past-progressive":Yd,"future-progressive":Id,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Id,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Id,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Id,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Id,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Id,"modal-past":Id,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Zd(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var em=function(e,t,n){return e.has("will")||e.has("going to")?e:Xd.hasOwnProperty(n)?((e=Xd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const tm={tags:!0};var nm=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Cd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Td(e)} ${s}`,e.replace(a,s,tm)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const rm={tags:!0},am=function(e,t){let n=Dd(e);return e.prepend(n+" not"),e},om=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},im=e=>e.has("(is|was|am|are|will|were|be)"),sm={"simple-present":(e,t)=>!0===im(e)?om(e):(e=Od(e,t),e=am(e)),"simple-past":(e,t)=>!0===im(e)?om(e):((e=Od(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===im(e)?om(e):am(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",rm),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=am(e)).replace("wants","want",rm)};var lm=function(e,t,n){if(e.has("#Negative"))return e;if(sm.hasOwnProperty(n))return e=sm[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===im(e)?om(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const um=(e,t)=>"number"==typeof t?e.eq(t):e;var cm=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return um(this,e).map(dd)}json(e,t){let n=um(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Fd(t),n}),[]);return n}subjects(e){return um(this,e).map((e=>(dd(e),Ed(e).subject)))}adverbs(e){return um(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return um(this,e).filter((e=>!0!==Ed(e).plural))}isPlural(e){return um(this,e).filter((e=>!0===Ed(e).plural))}isImperative(e){return um(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return um(this,e).map((e=>{let t=dd(e),n=Nd(e,t);return Hd(e,t,n.form)}))}toPresentTense(e){return um(this,e).map((e=>{let t=dd(e),n=Nd(e,t);return _d(e,t,n.form)}))}toPastTense(e){return um(this,e).map((e=>{let t=dd(e),n=Nd(e,t);return Ld(e,t,n.form)}))}toFutureTense(e){return um(this,e).map((e=>{let t=dd(e),n=Nd(e,t);return em(e,t,n.form)}))}toGerund(e){return um(this,e).map((e=>{let t=dd(e),n=Nd(e,t);return nm(e,t,n.form)}))}conjugate(e){return um(this,e).map((e=>{let t=dd(e),n=Nd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Hd(e.clone(),t,n.form).text("normal"),PastTense:Ld(e.clone(),t,n.form).text("normal"),PresentTense:_d(e.clone(),t,n.form).text("normal"),FutureTense:em(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return um(this,e).map((e=>{let t=dd(e),n=Nd(e,t);return lm(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=id(this);return t=um(t,e),new Verbs(this.document,t.pointer)}},hm={api:cm};v.plugin(rc),v.plugin(jc),v.plugin(Cc),v.plugin(Rc),v.plugin(Dh),v.plugin(Bh),v.plugin(qh),v.plugin(od),v.plugin(hm);export{v as default}; diff --git a/builds/two/compromise-two.cjs b/builds/two/compromise-two.cjs index e2a999ca5..38786c39d 100644 --- a/builds/two/compromise-two.cjs +++ b/builds/two/compromise-two.cjs @@ -1 +1 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,a={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let a=this.update([t]);e(a,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach((e=>{a=a.concat(e.fullPointer)})),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let a=this.update([t]);return e(a,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let a=this.update([t]);return e(a,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let a=this.update([t]);return e(a,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,n,a);i.get=i.eq;var s=i;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,a=t||e.map(((e,t)=>[t]));return a.map((e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>a[t]=e.lib[t])),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:a}=n;let r=new t([]);if(r.world=n,"number"==typeof e&&(e=String(e)),!e)return r;if("string"==typeof e)return new t(a.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return r};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let a=m(e,l,p);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var b=f,y=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},E=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},I=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?E(n):(E(n),E([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!P(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||P(r.text)&&r.text.length>1&&(r.text=r.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let G=0;const N=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var D=function(e){let[t,n]=e.index||[0,0];G+=1,G=G>46655?0:G,t=t>46655?0:t,n=n>1294?0:n;let a=N(G.toString(36));a+=N(t.toString(36));let r=n.toString(36);return r=r.length<2?"0"+r:r,a+=r,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},T=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:T(e)?T(e[0])?e[0]:e:[]}(e,r);0!==d.length&&(d=function(e){return e.map((e=>(e.id=D(e),e)))}(d),n?(x(t.update([u]).firstTerm()),I(h,u,d,a)):(x(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(z,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,a);let r=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(r.docs[0]||[]).map((e=>Array.from(e.tags)));a.insertAfter(e),r.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction+").contractions().expand(),a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this}};var F=V,$=function(e,t){t.forEach((t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let r=n.fullPointer,o=a.fullPointer.reverse(),i=$(this.document,o);return r=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var L=J,M={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a)))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map(((e,t)=>[t])),r=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:a[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(r=M.byFreq(r),this.update(r.map((e=>e.pointer)))):"function"==typeof M[e]?(r=r.sort(M[e]),this.update(r.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var Q={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=R(this.document,e);return this.document=t,this.all()}var r;return this}},Z={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const _=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},B,F,H,L,U,Q,Z);var X=function(e){Object.assign(e.prototype,_)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const ae=/'/,re=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(ae)[0];if(re.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,pe=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],a=n.text.match(ge);return null!==a?!0===n.tags.has("PhoneNumber")||pe.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(me),null!==a?[a[1],"to",a[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,ye=new Set(["st","nd","rd","th","am","pm","max"]);var ve=function(e,t){let n=e[t].text.match(be);if(null!==n){let e=n[2].toLowerCase().trim();return ye.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ee={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];new Set(a.one.units||[]),n.forEach(((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(a[s].normal)&&([l,u]=a[s].normal.split(we));let c=je(o,a[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](a,s,t)),!c&&Ee.hasOwnProperty(l)&&(c=Ee[l](a,s)),c?(c=Ie(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(a[s].normal)?(c=fe(a,s),c&&(c=Ie(c,e),ne(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ve(a,s),c&&(c=Ie(c,e),ne(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ne={model:te,compute:{contractions:Ge},hooks:["contractions"]},De=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===xe.test(l)){let e=l.replace(xe,"");if(i.hasOwnProperty(e)&&e.length>3&&Te.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let r=e[a],o=(a=(a=a.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},ze={addWords:function(e){const t=this.world(),{methods:n,model:a}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},Ve={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Be}},compute:Oe,lib:ze,hooks:["lexicon"]},Fe=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const $e=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Le=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const Me={buildTrie:function(e){const t=Fe(e,this.world());return Le(t)}};Me.compile=Me.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Fe(e,this.world));var a;let r=He(this,n,t);return r=r.settle(),r}},lib:Me};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},qe=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Ke(n,t),Object.keys(a).forEach((e=>{a[e]=Ke(a[e],t)})),{ptrs:n,byGroup:a}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,Ze=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e};var _e={matchOne:function(e,t,n){const a=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=Ze(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=Ze(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ze(e,n,this.world);let o=this._cache||[],i=this.filter(((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Xe={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&r.push([t[0],0,t[1]])}));let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}})),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach(((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}})),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Ye=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},tt=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Ye(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Ye(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var at=nt;const rt=Object.assign({},_e,Xe,at);rt.lookBehind=rt.before,rt.lookBefore=rt.before,rt.lookAhead=rt.after,rt.lookAfter=rt.after,rt.notIf=rt.ifNo;var ot=function(e){Object.assign(e.prototype,rt)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let a=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?a.push(e):a=a.concat(e.split(lt))})),a=ct(a),a};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),pt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),yt=e=>e.substring(1),vt=e=>e.substring(0,e.length-1),wt=function(e){return e=yt(e),e=vt(e)},kt=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===ft(e)&&(n.end=!0,e=vt(e)),"^"===bt(e)&&(n.start=!0,e=yt(e)),("["===bt(e)||"]"===ft(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=vt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=vt(e)),"?"===ft(e)&&(n.optional=!0,e=vt(e)),"!"===bt(e)&&(n.negative=!0,e=yt(e)),"~"===bt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===bt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=yt(n.choices[0]);let a=n.choices.length-1;n.choices[a]=vt(n.choices[a]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===bt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===bt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===bt(e)&&">"===ft(e))return e=wt(e),n.chunk=pt(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===bt(e)?(n.tag=yt(e),n.tag=pt(n.tag),n):"@"===bt(e)?(n.method=yt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var Et=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&At.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter((e=>e)).reverse(),e.splice(t,1),r.forEach((n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)}))}}return e},jt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform&&t.methods.two.transform.verbConjugate){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform;if(!n)return[];let a=n(e.root,t.model);return delete a.FutureTense,Object.values(a).filter((e=>e))}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,a=[e.root];return n?(a.push(n(e.root,t.model)),a):a}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:a,adjToAdverb:r}=t.methods.two.transform,o=[e.root];return n&&a&&r?(o.push(n(e.root,t.model)),o.push(a(e.root,t.model)),o.push(r(e.root,t.model)),o):o}(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e})),e},It=function(e){return e=function(e){let t=0,n=null;for(let a=0;a(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Gt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=ht(e);return a=a.map((e=>Pt(e,t))),a=Et(a,n),a=jt(a,n),a=It(a),a};const Nt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Dt=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),Vt=(e,t)=>-1!==e.pre.indexOf(t),Ft={hasQuote:e=>Tt.test(e.pre)||Ct.test(e.post),hasComma:e=>zt(e,","),hasPeriod:e=>!0===zt(e,".")&&!1===zt(e,"..."),hasExclamation:e=>zt(e,"!"),hasQuestionMark:e=>zt(e,"?")||zt(e,"¿"),hasEllipses:e=>zt(e,"..")||zt(e,"…")||Vt(e,"..")||Vt(e,"…"),hasSemicolon:e=>zt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ot.test(e.post)||Ot.test(e.pre),hasDash:e=>Bt.test(e.post)||Bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ft.hasQuotation=Ft.hasQuote;var $t=Ft;let St=function(){};St=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(xt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof $t[t.method]&&!0===$t[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>St(e,t,n,a))):t.choices.some((t=>St(e,t,n,a))))}(e,t,n,a);return!0===t.negative?!r:r};var Ht=St;const Jt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Lt(e,e.t).length=a-e.t),e.t=a,!0)};const Wt=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Ht(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every(((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Ht(e.terms[a],t,a,e.phrase_length)}));return!0===a&&n.length>t&&(t=n.length),a}))&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Lt(e,e.t).length+=a),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null},Ut=function(e,t,n){let a=0;for(let r=e.t;ra||(e.t+=a,0))},Rt=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);if(a.negative=!1,Ht(e.terms[e.t],a,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Ht(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Ht(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Ut(e,a,t[e.r+1]):(e.t+=1,!0)},Qt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Ht(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Ht(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Zt=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null},_t=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},Xt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Qt(e),a.implicit&&e.terms[e.t+1]&&_t(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Zt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=Lt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0):null)},Yt=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Jt(e,r)){if(e.negative){if(!Rt(r))return null}else if(!0!==Ht(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(!0!==e.optional)return null}else if(!Xt(r))return null}else if(!Xt(r))return null}else{if(e.negative&&e.anything)return null;if(!Xt(r))return null}else if(!qt(r))return null}else if(!Kt(r))return null}else if(!Mt(r))return null}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach((e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]})),{pointer:o,groups:i}},en=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{a[t]=a[t]||[],a[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:a}};const tn=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},nn=function(e,t,n){let a=Yt(e,t,0,e.length);return a?(a=tn(a,n),a):null};var an=function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=nn(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=en(i,r),i.ptrs.forEach((t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id})),i},rn={api:ot,methods:{one:{termMethods:$t,parseMatch:Gt,match:an}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const on=/^\../,sn=/^#./,ln=function(e,t){let n={},a={};return Object.keys(t).forEach((r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),on.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)}))})),{starts:n,ends:a}};var un={html:function(e){let{starts:t,ends:n}=ln(this,e),a="";return this.docs.forEach((e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(hn,""),gn.test(r)&&(r=" "),r=r.replace(dn,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(hn,""),r="-"===r?" ":r.replace(cn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&mn.test(r)||(r+=" "),a+=n+o+r})),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},fn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};fn.clean=fn.normal,fn.reduced=fn.root;var bn=fn;let yn=[],vn=0;for(;vn<64;)yn[vn]=0|4294967296*Math.sin(++vn%Math.PI);function wn(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(vn=i=0;vn>4]+yn[i]+~~o[vn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const kn={text:!0,terms:!0};let Pn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const An=function(e,t){return Object.assign({},e,t)},En={text:e=>pn(e,{keepPunct:!0},!1),normal:e=>pn(e,An(bn.normal,{keepPunct:!0}),!1),implicit:e=>pn(e,An(bn.implicit,{keepPunct:!0}),!1),machine:e=>pn(e,Pn,!1),root:e=>pn(e,An(Pn,{form:"root"}),!1),hash:e=>wn(pn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const jn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},kn,a)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let r={};return Object.keys(a).forEach((o=>{a[o]&&En[o]&&(r[o]=En[o](e,n,t))})),r})));var n,a;return"number"==typeof e?t[e]:t}};jn.data=jn.json;var In=jn,Gn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Nn="";var Dn={green:e=>""+e+Nn,red:e=>""+e+Nn,blue:e=>""+e+Nn,magenta:e=>""+e+Nn,cyan:e=>""+e+Nn,yellow:e=>""+e+Nn,black:e=>""+e+Nn,dim:e=>""+e+Nn,i:e=>""+e+Nn},xn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Dn.blue("\n ──────")),t.forEach((e=>{console.log(Dn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=Dn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=Dn.blue(" │ ")+Dn.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Dn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Tn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Dn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Dn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Dn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Dn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Cn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${Dn.blue(a[1])}${a[2]}`}(a,e.offset,t)})),console.log(a)}))},On=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Gn(t),t):(!1!==e.tags&&(xn(t),console.log("\n")),!0===e.chunks&&(Tn(t),console.log("\n")),!0===e.highlight&&(Cn(t),console.log("\n")),t)};const Bn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var zn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((a=>{e.match(a).fullPointer.forEach((e=>{n[e[3]]={fn:t[a],end:e[2]}}))})),n}(e,t),a="";return e.docs.forEach(((t,r)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Fn=Vn,$n={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&bn.hasOwnProperty(e)?t=Object.assign({},bn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},Mn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Wn=function(e,t){let n=Mn(t),a=[];return e.forEach((e=>{let[t]=e,r=n[t]||[];if(r=r.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===r.length)return void a.push({passthrough:e});r=r.sort(((e,t)=>e[1]-t[1]));let o=e;r.forEach(((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)}))})),a},Kn=function(e,t){let n=[];return e.forEach(((a,r)=>{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<20;a+=1){if(t[n-a]){let r=t[n-a].findIndex((t=>t.id===e));if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex((t=>t.id===e));if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex((e=>e.id===r));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},qn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter((t=>Ln(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);r.push(o)})),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Qn=function(e,t){let n=Mn(t),a=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Ln(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},_n=function(e,t){return e.map((e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e}))},Xn={union:function(e){e=Zn(e,this);let t=Un(this.fullPointer,e.fullPointer);return t=_n(t,this.document),this.toView(t)}};Xn.and=Xn.union,Xn.intersection=function(e){e=Zn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=_n(t,this.document),this.toView(t)},Xn.not=function(e){e=Zn(e,this);let t=Rn(this.fullPointer,e.fullPointer);return t=_n(t,this.document),this.toView(t)},Xn.difference=Xn.not,Xn.complement=function(){let e=this.all(),t=Rn(e.fullPointer,this.fullPointer);return t=_n(t,this.document),this.toView(t)},Xn.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Un(e,[t])})),e=_n(e,this.document),this.update(e)};var Yn=function(e){Object.assign(e.prototype,Xn)},ea={methods:qn,api:Yn},ta=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:a}=this,{methods:r}=n;let o=r.one.bulkMatch(a,e,this.methods,t);!1!==t.tagger&&r.one.bulkTagger(o,a,this.world),o=o.map((e=>{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const na=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var aa=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(na(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(na(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=na(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},ra=function(e,t){e=aa(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let a=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:a}},oa=function(e,t){return e.map(((n,a)=>{let r=[];Object.keys(t).forEach((n=>{e[a].has(n)&&(r=r.concat(t[n]))}));let o={};return r=r.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),r}))},ia=function(e,t){return e.map(((e,n)=>{let a=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>a.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>t[n].has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>a.has(e))).length>=e.minWant))}))},sa=function(e,t,n,a){let r=[];for(let o=0;o0&&(l.ptrs.forEach((e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),r.push(t)})),!0===a.matchOne))return[r[0]]}return r},la=function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=oa(r,t.hooks);return o=ia(o,r),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let a=t[n].length;return e=e.filter((e=>a>=e.minWords)),e}))}(o,e),sa(o,e,n,a)},ua=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===ua(u,e.tag,a))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${r}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,r),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},ha={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ta,methods:{one:{buildNet:ra,bulkMatch:la,bulkTagger:ca}}};const da=/ /,ga=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},ma=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),da.test(t))!function(e,t,n,a){let r=t.split(da);e.forEach(((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),ma(e,o,n,a))}))}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;npa(e,t,n,a)))};var fa=pa,ba=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>ya({id:e}))),t}return[ya({id:e})]}(e))})),n=n.filter((e=>e));let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),a.push(n)}))}return n},Pa=e=>"[object Array]"===Object.prototype.toString.call(e),Aa=e=>(e=e||"").trim(),Ea=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||va.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:wa(e)})}));let a=function(e){let t={children:[]};return e.forEach(((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=ya({});return e.forEach((e=>{if((e=ya(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(ka(t=e).forEach(ya),t);var t},ja=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return ka(e).forEach(((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"})),a},Ia=function(e){let t=ka(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Ga={text:ja,txt:ja,array:Ia,flat:Ia},Na=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(ja(e,!0)),null):Ga.hasOwnProperty(t)?Ga[t](e):e},Da=e=>{ka(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},xa=/\//;let Ta=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Aa(e),!xa.test(e)){let t=this.json.children.find((t=>t.id===e));return new Ta(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!a)return null;e=a}return e})(this.json,e)||ya({});return new Ta(t)}add(e,t={}){if(Pa(e))return e.forEach((e=>this.add(Aa(e),t))),this;e=Aa(e);let n=ya({id:e,props:t});return this.json.children.push(n),new Ta(n)}remove(e){return e=Aa(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return ka(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=ka(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return ka(this.json)}fillDown(){var e;return e=this.json,ka(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else Pa(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Da(this.json);let e=ka(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Da(this.json),Na(this.json,e)}debug(){return Da(this.json),Na(this.json,"debug"),this}};const Ca=function(e){let t=Ea(e);return new Ta(t)};Ca.prototype.plugin=function(e){e(this)};var Oa={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Ba=function(e){if(Oa.hasOwnProperty(e.id))return Oa[e.id];if(Oa.hasOwnProperty(e.is))return Oa[e.is];let t=e._cache.parents.find((e=>Oa[e]));return Oa[t]};var za=function(e){const t={};return e.forEach((e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:Ba(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Va=function(e){return e?"string"==typeof e?[e]:e:[]};var Fa=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Va(e[t].children),e[t].not=Va(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},$a=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Fa(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}}));return Ca(t).cache().fillDown().out("array")}(Object.assign({},t,e));return za(n)},Sa={one:{setTag:fa,unTag:ba,addTags:$a}};const Ha=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Ja={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Ha(e)?e.forEach((e=>r.one.setTag(a,e,i,n,t))):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Ha(e)?e.forEach((e=>a.one.unTag(n,e,i))):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach(((e,t)=>{e.forEach(((e,r)=>{n.find((t=>e.tags.has(t)))&&a.push([t,r,r+1])}))}));let r=this.update(a);return this.difference(r)}};var La=Ja,Ma=function(e){Object.assign(e.prototype,La)},Wa={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const Ka=new Set(["Auxiliary","Possessive"]);var qa=function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Ka.has(e)||!t.hasOwnProperty(n))return 1;if(Ka.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})),e}(t,a)}))}))},Ua={model:{one:{tagSet:{}}},compute:{tagRank:qa},methods:Sa,api:Ma,lib:Wa};const Ra=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Qa=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Za=/((?:\r?\n|\r)+)/;var _a=function(e){let t=[],n=e.split(Za);for(let e=0;e0&&(r.push(o),e[t]="")}return r};const nr={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ar=RegExp("("+Object.keys(nr).join("|")+")","g"),rr=RegExp("("+Object.values(nr).join("|")+")","g"),or=function(e){if(!e)return!1;let t=e.match(rr);return null!==t&&1===t.length};var ir=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Pr=function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split(wr);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=br(n),n=pr(n),n=n.filter((e=>e)),n};let Ar=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Er=new RegExp(`^[${["%","_"].join("")}]+`,"");const jr=/[\p{Punctuation}\s]+$/u,Ir=/^[\p{Punctuation}\s]+/u,Gr=/['’]/,Nr=/^[a-z]\.([a-z]\.)+/i,Dr=/^'[0-9]{2}/;var xr=function(e){let t=e,n="",a="";return e=e.replace(Ir,(t=>{let a=t.match(Ar);return a?(n=t.replace(Ar,""),a):"'"===n&&Dr.test(e)?(n="",t):(n=t,"")})),e=e.replace(jr,(r=>{let o=r.match(Er);return o?(a=r.replace(Er,""),o):Gr.test(r)&&/[sn]['’]$/.test(t)&&!1===Gr.test(n)?(a=a.replace(Gr,""),"'"):!0===Nr.test(e)?(a=r.replace(/^\./,""),"."):(a=r,"")})),""===e&&(t=t.replace(/ *$/,(e=>(a=e||"",""))),e=t,n=""),{str:e,pre:n,post:a}},Tr=function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach(((e,t)=>{n[e]&&(a[t]=n[e])})),a.join("")},Cr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Or=/([A-Z]\.)+[A-Z]?,?$/,Br=/^[A-Z]\.,?$/,zr=/[A-Z]{2,}('s|,)?$/,Vr=/([a-z]\.)+[a-z]\.?$/;var Fr=function(e){return function(e){return!0===Or.test(e)||!0===Vr.test(e)||!0===Br.test(e)||!0===zr.test(e)}(e)&&(e=e.replace(/\./g,"")),e},$r=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=Cr(a),a=n(a,t),a=Fr(a),e.normal=a},Sr=function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",t).map((e=>{let n=o(e,a);return n=n.map(i),n.forEach((e=>{$r(e,t)})),n})),e};const Hr=/[ .][A-Z]\.? *$/i,Jr=/(?:\u2026|\.{2,}) *$/,Lr=/\p{L}/u,Mr=/^[A-Z]\. $/;var Wr={one:{killUnicode:Tr,tokenize:{splitSentences:dr,isSentence:function(e,t){if(!1===Lr.test(e))return!1;if(!0===Hr.test(e))return!1;if(3===e.length&&Mr.test(e))return!1;if(!0===Jr.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),a=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(a)},splitTerms:Pr,splitWhitespace:e=>{let{str:t,pre:n,post:a}=xr(e);return{text:t,pre:n,post:a,tags:new Set}},fromString:Sr}}},Kr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let qr={},Ur={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{qr[t]=!0,Ur[t]="Abbreviation",void 0!==e[1]&&(Ur[t]=[Ur[t],e[1]])}))}));var Rr=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Qr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Zr={};Object.keys(Qr).forEach((function(e){Qr[e].split("").forEach((function(t){Zr[t]=e}))}));const _r=/\//,Xr=/[a-z]\.[a-z]/i,Yr=/[0-9]/;var eo=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),_r.test(n)&&!Xr.test(n)&&!Yr.test(n)){let t=n.split(_r);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const to=/^\p{Letter}+-\p{Letter}+$/u;var no=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),to.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},ao=function(e){let t=e.docs,n={};for(let e=0;eso(e,eo),machine:e=>so(e,no),normal:e=>so(e,$r),freq:ao,offset:ro,index:oo,wordCount:io},methods:Wr,model:{one:{aliases:Kr,abbreviations:qr,prefixes:Rr,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Ur,unicode:Zr}},hooks:["alias","machine","index","id"]},uo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const co=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var ho=function(e){e.prototype.autoFill=co},go=function(e,t,n){let a={},r=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]})),a};const mo={safe:!0,min:3};var po={typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},mo,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=go(e,t,this.world());return Object.keys(r).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]})),this}},fo={model:{one:{typeahead:{}}},api:ho,lib:po,compute:uo,hooks:["typeahead"]};b.extend(ee),b.extend(Jn),b.extend(rn),b.extend(ea),b.extend(Ua),b.plugin(Ne),b.extend(lo),b.plugin(k),b.extend(We),b.extend(fo),b.extend(Ve),b.extend(ha);var bo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},yo={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const vo=36,wo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",ko=wo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Po=function(e){if(void 0!==ko[e])return ko[e];let t=0,n=1,a=vo,r=1;for(;n=0;n--,r*=vo){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},Ao=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const a=jo(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Io(yo[e]);xo.test(e)?Object.keys(t).forEach((t=>{if(Co[t]=e,"Noun|Verb"===e){let e=Do(t,Oo);Co[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{To[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","To[e]="Emoticon")),delete To[""],delete To.null,delete To[" "];const Bo="Adjective";var zo={beforeTags:{Determiner:Bo,Possessive:Bo},afterTags:{Adjective:Bo},beforeWords:{seem:Bo,seemed:Bo,seems:Bo,feel:Bo,feels:Bo,felt:Bo,appear:Bo,appears:Bo,appeared:Bo,also:Bo,over:Bo,under:Bo,too:Bo,it:Bo,but:Bo,still:Bo,really:Bo,quite:Bo,well:Bo,very:Bo,deeply:Bo,profoundly:Bo,extremely:Bo,so:Bo,badly:Bo,mostly:Bo,totally:Bo,awfully:Bo,rather:Bo,nothing:Bo,something:Bo,anything:Bo,not:Bo,me:Bo},afterWords:{too:Bo,also:Bo,or:Bo}};const Vo="Gerund";var Fo={beforeTags:{Adverb:Vo,Preposition:Vo,Conjunction:Vo},afterTags:{Adverb:Vo,Possessive:Vo,Person:Vo,Pronoun:Vo,Determiner:Vo,Copula:Vo,Preposition:Vo,Conjunction:Vo,Comparative:Vo},beforeWords:{been:Vo,keep:Vo,continue:Vo,stop:Vo,am:Vo,be:Vo,me:Vo,began:Vo,start:Vo,starts:Vo,started:Vo,stops:Vo,stopped:Vo,help:Vo,helps:Vo,avoid:Vo,avoids:Vo,love:Vo,loves:Vo,loved:Vo,hate:Vo,hates:Vo,hated:Vo},afterWords:{you:Vo,me:Vo,her:Vo,him:Vo,them:Vo,their:Vo,it:Vo,this:Vo,there:Vo,on:Vo,about:Vo,for:Vo}},$o={beforeTags:Object.assign({},zo.beforeTags,Fo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},zo.afterTags,Fo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},zo.beforeWords,Fo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},zo.afterWords,Fo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const So="Singular";var Ho={beforeTags:{Determiner:So,Possessive:So,Acronym:So,Noun:So,Adjective:So,PresentTense:So,Gerund:So,PastTense:So,Infinitive:So,Date:So},afterTags:{Value:So,Modal:So,Copula:So,PresentTense:So,PastTense:So,Demonym:So},beforeWords:{the:So,with:So,without:So,of:So,for:So,any:So,all:So,on:So,cut:So,cuts:So,save:So,saved:So,saves:So,make:So,makes:So,made:So,minus:So,plus:So,than:So,another:So,versus:So,neither:So,favorite:So,best:So,daily:So,weekly:So,linear:So,binary:So,mobile:So,lexical:So,technical:So,computer:So,scientific:So,formal:So},afterWords:{of:So,system:So,aid:So,method:So,utility:So,tool:So,reform:So,therapy:So,philosophy:So,room:So,authority:So,says:So,said:So,wants:So,wanted:So}};const Jo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Lo={beforeTags:Object.assign({},zo.beforeTags,Ho.beforeTags,Jo.beforeTags),afterTags:Object.assign({},zo.afterTags,Ho.afterTags),beforeWords:Object.assign({},zo.beforeWords,Ho.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},zo.afterWords,Ho.afterWords)};const Mo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Wo={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ko={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},qo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Uo={beforeTags:Object.assign({},zo.beforeTags,Mo),afterTags:Object.assign({},zo.afterTags,Wo),beforeWords:Object.assign({},zo.beforeWords,Ko),afterWords:Object.assign({},zo.afterWords,qo)};const Ro="Infinitive";var Qo={beforeTags:{Modal:Ro,Adverb:Ro,Negative:Ro,Plural:Ro},afterTags:{Determiner:Ro,Adverb:Ro,Possessive:Ro,Preposition:Ro},beforeWords:{i:Ro,we:Ro,you:Ro,they:Ro,to:Ro,please:Ro,will:Ro,have:Ro,had:Ro,would:Ro,could:Ro,should:Ro,do:Ro,did:Ro,does:Ro,can:Ro,must:Ro,us:Ro,me:Ro,he:Ro,she:Ro,it:Ro,being:Ro},afterWords:{the:Ro,me:Ro,you:Ro,him:Ro,her:Ro,them:Ro,it:Ro,a:Ro,an:Ro,up:Ro,down:Ro,by:Ro,out:Ro,off:Ro,under:Ro,when:Ro,all:Ro,to:Ro,because:Ro,although:Ro,before:Ro,how:Ro,otherwise:Ro,together:Ro,though:Ro,yet:Ro}};const Zo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var _o={beforeTags:Object.assign({},zo.beforeTags,Qo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},zo.afterTags,Qo.afterTags,Zo.afterTags),beforeWords:Object.assign({},zo.beforeWords,Qo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},zo.afterWords,Qo.afterWords,{to:void 0})};const Xo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Yo={},ei={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ti={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ni={beforeTags:Object.assign({},Fo.beforeTags,Ho.beforeTags,Xo),afterTags:Object.assign({},Fo.afterTags,Ho.afterTags,Yo),beforeWords:Object.assign({},Fo.beforeWords,Ho.beforeWords,ei),afterWords:Object.assign({},Fo.afterWords,Ho.afterWords,ti)},ai={beforeTags:Object.assign({},Qo.beforeTags,Ho.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Qo.afterTags,Ho.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Qo.beforeWords,Ho.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Qo.afterWords,Ho.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ri="Person";var oi={beforeTags:{Honorific:ri,Person:ri,Preposition:ri},afterTags:{Person:ri,ProperNoun:ri,Verb:ri},ownTags:{ProperNoun:ri},beforeWords:{hi:ri,hey:ri,yo:ri,dear:ri,hello:ri},afterWords:{said:ri,says:ri,told:ri,tells:ri,feels:ri,felt:ri,seems:ri,thinks:ri,thought:ri,spends:ri,spendt:ri,plays:ri,played:ri,sing:ri,sang:ri,learn:ri,learned:ri,wants:ri,wanted:ri}};const ii="Month",si={beforeTags:{Date:ii,Value:ii},afterTags:{Date:ii,Value:ii},beforeWords:{by:ii,in:ii,on:ii,during:ii,after:ii,before:ii,between:ii,until:ii,til:ii,sometime:ii,of:ii,this:ii,next:ii,last:ii,previous:ii,following:ii},afterWords:{sometime:ii,in:ii,of:ii,until:ii,the:ii}};var li={beforeTags:Object.assign({},oi.beforeTags,si.beforeTags),afterTags:Object.assign({},oi.afterTags,si.afterTags),beforeWords:Object.assign({},oi.beforeWords,si.beforeWords),afterWords:Object.assign({},oi.afterWords,si.afterWords)};const ui={Place:"Place"},ci={Place:"Place",Abbreviation:"Place"},hi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},di={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let gi="Unit";const mi="Honorific";let pi={first:mi,general:mi,royal:mi,vice:mi,rear:mi,major:mi};const fi={"Adj|Gerund":$o,"Adj|Noun":Lo,"Adj|Past":Uo,"Adj|Present":_o,"Noun|Verb":ai,"Noun|Gerund":ni,"Person|Noun":{beforeTags:Object.assign({},Ho.beforeTags,oi.beforeTags),afterTags:Object.assign({},Ho.afterTags,oi.afterTags),beforeWords:Object.assign({},Ho.beforeWords,oi.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Ho.afterWords,oi.afterWords)},"Person|Date":li,"Person|Verb":{beforeTags:Object.assign({},oi.beforeTags,Qo.beforeTags),afterTags:Object.assign({},oi.afterTags,Qo.afterTags),beforeWords:Object.assign({},oi.beforeWords,Qo.beforeWords),afterWords:Object.assign({},oi.afterWords,Qo.afterWords)},"Person|Place":{beforeTags:Object.assign({},ui,oi.beforeTags),afterTags:Object.assign({},ci,oi.afterTags),beforeWords:Object.assign({},hi,oi.beforeWords),afterWords:Object.assign({},di,oi.afterWords)},"Unit|Noun":{beforeTags:{Value:gi},afterTags:{},beforeWords:{per:gi,every:gi,each:gi,square:gi,cubic:gi,sq:gi,metric:gi},afterWords:{per:gi,squared:gi,cubed:gi,long:gi}},"Honorific|Noun":{beforeTags:{Honorific:mi,ProperNoun:mi,Ordinal:mi},afterTags:{Person:mi,ProperNoun:mi},beforeWords:Object.assign({},pi,{honorable:mi,honourable:mi,worship:mi,excellency:mi,majesty:mi,right:mi}),afterWords:pi}},bi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};fi["Plural|Verb"]={beforeWords:bi(fi["Noun|Verb"].beforeWords,{}),afterWords:bi(fi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:bi(fi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:bi(fi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yi=fi;const vi="Adjective",wi="Infinitive",ki="PresentTense",Pi="Singular",Ai="PastTense",Ei="Adverb",ji="Plural",Ii="Actor",Gi="Verb",Ni="Noun",Di="LastName",xi="Modal",Ti="Participle";var Ci=[null,null,{ea:Pi,ia:Ni,ic:vi,ly:Ei,"'n":Gi,"'t":Gi},{oed:Ai,ued:Ai,xed:Ai," so":Ei,"'ll":xi,"'re":"Copula",azy:vi,eer:Ni,end:Gi,ped:Ai,ffy:vi,ify:wi,ing:"Gerund",ize:wi,ibe:wi,lar:vi,mum:vi,nes:ki,nny:vi,ous:vi,que:vi,rol:Pi,sis:Pi,ogy:Pi,oid:Pi,ian:Pi,zes:ki,eld:Ai,ken:Ti,ven:Ti,ten:Ti,ect:wi,ict:wi,ign:wi,ful:vi,bal:vi},{amed:Ai,aped:Ai,ched:Ai,lked:Ai,rked:Ai,reed:Ai,nded:Ai,mned:vi,cted:Ai,dged:Ai,ield:Pi,akis:Di,cede:wi,chuk:Di,czyk:Di,ects:ki,ends:Gi,enko:Di,ette:Pi,wner:Pi,fies:ki,fore:Ei,gate:wi,gone:vi,ices:ji,ints:ji,ruct:wi,ines:ji,ions:ji,less:vi,llen:vi,made:vi,nsen:Di,oses:ki,ould:xi,some:vi,sson:Di,tion:Pi,tage:Ni,ique:Pi,tive:vi,tors:Ni,vice:Pi,lier:Pi,fier:Pi,wned:Ai,gent:Pi,tist:Pi,pist:Pi,rist:Pi,mist:Pi,yist:Pi,vist:Pi,lite:Pi,site:Pi,rite:Pi,mite:Pi,bite:Pi,mate:Pi,date:Pi,ndal:Pi,vent:Pi,uist:Pi,gist:Pi,note:Pi,cide:Pi,wide:vi,vide:wi,ract:wi,duce:wi,pose:wi,eive:wi,lyze:wi,lyse:wi,iant:vi,nary:vi},{elist:Pi,holic:Pi,phite:Pi,tized:Ai,urned:Ai,eased:Ai,ances:ji,bound:vi,ettes:ji,fully:Ei,ishes:ki,ities:ji,marek:Di,nssen:Di,ology:Ni,osome:Pi,tment:Pi,ports:ji,rough:vi,tches:ki,tieth:"Ordinal",tures:ji,wards:Ei,where:Ei,archy:Ni,pathy:Ni,opoly:Ni,embly:Ni,phate:Ni,ndent:Pi,scent:Pi,onist:Pi,anist:Pi,alist:Pi,olist:Pi,icist:Pi,ounce:wi,iable:vi,borne:vi,gnant:vi,inant:vi,igent:vi,atory:vi,rient:Pi,dient:Pi},{auskas:Di,parent:Pi,cedent:Pi,ionary:Pi,cklist:Pi,keeper:Ii,logist:Ii,teenth:"Value"},{opoulos:Di,borough:"Place",sdottir:Di}];const Oi="Adjective",Bi="Noun",zi="Verb";var Vi=[null,null,{},{neo:Bi,bio:Bi,"de-":zi,"re-":zi,"un-":zi},{anti:Bi,auto:Bi,faux:Oi,hexa:Bi,kilo:Bi,mono:Bi,nano:Bi,octa:Bi,poly:Bi,semi:Oi,tele:Bi,"pro-":Oi,"mis-":zi,"dis-":zi,"pre-":Oi},{anglo:Bi,centi:Bi,ethno:Bi,ferro:Bi,grand:Bi,hepta:Bi,hydro:Bi,intro:Bi,macro:Bi,micro:Bi,milli:Bi,nitro:Bi,penta:Bi,quasi:Oi,radio:Bi,tetra:Bi,"omni-":Oi,"post-":Oi},{pseudo:Oi,"extra-":Oi,"hyper-":Oi,"inter-":Oi,"intra-":Oi,"deca-":Oi},{electro:Bi}];const Fi="Adjective",$i="Infinitive",Si="PresentTense",Hi="Singular",Ji="PastTense",Li="Adverb",Mi="Expression",Wi="Actor",Ki="Verb",qi="Noun",Ui="LastName";var Ri={a:[[/.[aeiou]na$/,qi,"tuna"],[/.[oau][wvl]ska$/,Ui],[/.[^aeiou]ica$/,Hi,"harmonica"],[/^([hyj]a+)+$/,Mi,"haha"]],c:[[/.[^aeiou]ic$/,Fi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Ji,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Ji,"rammed"],[/.[aeiou][sg]hed$/,Ji,"gushed"],[/.[aeiou]red$/,Ji,"hired"],[/.[aeiou]r?ried$/,Ji,"hurried"],[/[^aeiou]ard$/,Hi,"steward"],[/[aeiou][^aeiou]id$/,Fi,""],[/.[vrl]id$/,Fi,"livid"],[/..led$/,Ji,"hurled"],[/.[iao]sed$/,Ji,""],[/[aeiou]n?[cs]ed$/,Ji,""],[/[aeiou][rl]?[mnf]ed$/,Ji,""],[/[aeiou][ns]?c?ked$/,Ji,"bunked"],[/[aeiou]gned$/,Ji],[/[aeiou][nl]?ged$/,Ji],[/.[tdbwxyz]ed$/,Ji],[/[^aeiou][aeiou][tvx]ed$/,Ji],[/.[cdflmnprstv]ied$/,Ji,"emptied"]],e:[[/.[lnr]ize$/,$i,"antagonize"],[/.[^aeiou]ise$/,$i,"antagonise"],[/.[aeiou]te$/,$i,"bite"],[/.[^aeiou][ai]ble$/,Fi,"fixable"],[/.[^aeiou]eable$/,Fi,"maleable"],[/.[ts]ive$/,Fi,"festive"],[/[a-z]-like$/,Fi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Fi,"cornish"],[/.v[iy]ch$/,Ui,"..ovich"],[/^ug?h+$/,Mi,"ughh"],[/^uh[ -]?oh$/,Mi,"uhoh"],[/[a-z]-ish$/,Fi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Ui,"polish-male"]],k:[[/^(k){2}$/,Mi,"kkkk"]],l:[[/.[gl]ial$/,Fi,"familial"],[/.[^aeiou]ful$/,Fi,"fitful"],[/.[nrtumcd]al$/,Fi,"natal"],[/.[^aeiou][ei]al$/,Fi,"familial"]],m:[[/.[^aeiou]ium$/,Hi,"magnesium"],[/[^aeiou]ism$/,Hi,"schism"],[/^[hu]m+$/,Mi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Fi,"republican"],[/[^aeiou]ician$/,Wi,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Mi,"noooo"],[/^(yo)+$/,Mi,"yoo"],[/^wo{2,}[pt]?$/,Mi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Hi],[/[^i]fer$/,$i],[/.[^aeiou][ao]pher$/,Wi],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Fi],[/[aeiou].*ist$/,Fi],[/^[a-z]et$/,Ki]],s:[[/.[^aeiou]ises$/,Si],[/.[rln]ates$/,Si],[/.[^z]ens$/,Ki],[/.[lstrn]us$/,Hi],[/.[aeiou]sks$/,Si],[/.[aeiou]kes$/,Si],[/[aeiou][^aeiou]is$/,Hi],[/[a-z]'s$/,qi],[/^yes+$/,Mi]],v:[[/.[^aeiou][ai][kln]ov$/,Ui]],y:[[/.[cts]hy$/,Fi],[/.[st]ty$/,Fi],[/.[tnl]ary$/,Fi],[/.[oe]ry$/,Hi],[/[rdntkbhs]ly$/,Li],[/.(gg|bb|zz)ly$/,Fi],[/...lly$/,Li],[/.[gk]y$/,Fi],[/[bszmp]{2}y$/,Fi],[/.[ai]my$/,Fi],[/[ea]{2}zy$/,Fi],[/.[^aeiou]ity$/,Hi]]};const Qi="Verb",Zi="Noun";var _i={leftTags:[["Adjective",Zi],["Possessive",Zi],["Determiner",Zi],["Adverb",Qi],["Pronoun",Qi],["Value",Zi],["Ordinal",Zi],["Modal",Qi],["Superlative",Zi],["Demonym",Zi],["Honorific","Person"]],leftWords:[["i",Qi],["first",Zi],["it",Qi],["there",Qi],["not",Qi],["because",Zi],["if",Zi],["but",Zi],["who",Qi],["this",Zi],["his",Zi],["when",Zi],["you",Qi],["very","Adjective"],["old",Zi],["never",Qi],["before",Zi],["a","Singular"],["the",Zi],["been",Qi]],rightTags:[["Copula",Zi],["PastTense",Zi],["Conjunction",Zi],["Modal",Zi]],rightWords:[["there",Qi],["me",Qi],["man","Adjective"],["only",Qi],["him",Qi],["it",Qi],["were",Zi],["took",Zi],["himself",Qi],["went",Zi],["who",Zi],["jr","Person"]]},Xi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Yi={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},es={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ts={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},ns={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const as=/^.([0-9]+)/;var rs=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(as);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(as,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)})),t},is=/^([0-9]+)/,ss=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(is);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(is,"")]}(n[0],n[1])}))};var ls=function(e={}){return(e=Object.assign({},e)).rules=ss(e.rules),e.rules=os(e.rules),e.rev&&(e.rev=ss(e.rev),e.rev=os(e.rev)),e.exceptions=ss(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},us=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const cs=ls({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),hs=ls(ts),ds=ls(Yi),gs=ls(es),ms=us(cs),ps=us(hs),fs=us(ds),bs=us(gs),ys=ls(Xi),vs=ls(ns);var ws={fromPast:cs,fromPresent:hs,fromGerund:ds,fromParticiple:gs,toPast:ms,toPresent:ps,toGerund:fs,toParticiple:bs,toComparative:ys,toSuperlative:vs,fromComparative:us(ys),fromSuperlative:us(vs)},ks=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ps=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],As=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce(((e,t)=>(e[r[t]]=t,e)),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(Es[t].forEach((n=>e[n]=t)),e)),{});var js=Es,Is=function(e){let t=e.substring(e.length-3);if(!0===js.hasOwnProperty(t))return js[t];let n=e.substring(e.length-2);return!0===js.hasOwnProperty(n)?js[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Gs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ns=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=Is(e)),Gs.hasOwnProperty(e))c=Gs[e];else if("Participle"===n)c=rs(l,i);else if("PastTense"===n)c=rs(l,a);else if("PresentTense"===n)c=rs(l,r);else{if("Gerund"!==n)return e;c=rs(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ds=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:rs(i,n),PresentTense:rs(i,a),Gerund:rs(i,r),FutureTense:"will "+e},u=rs(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},xs=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r))return e.slice(0,n-a)+t[r.length][r]}return null};const Ts="ically",Cs=new Set(["analyt"+Ts,"chem"+Ts,"class"+Ts,"clin"+Ts,"crit"+Ts,"ecolog"+Ts,"electr"+Ts,"empir"+Ts,"frant"+Ts,"grammat"+Ts,"ident"+Ts,"ideolog"+Ts,"log"+Ts,"mag"+Ts,"mathemat"+Ts,"mechan"+Ts,"med"+Ts,"method"+Ts,"method"+Ts,"mus"+Ts,"phys"+Ts,"phys"+Ts,"polit"+Ts,"pract"+Ts,"rad"+Ts,"satir"+Ts,"statist"+Ts,"techn"+Ts,"technolog"+Ts,"theoret"+Ts,"typ"+Ts,"vert"+Ts,"whims"+Ts]),Os=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Bs=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),zs={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Vs=function(e){return e.endsWith("ly")?Cs.has(e)?e.replace(/ically/,"ical"):Bs.has(e)?null:zs.hasOwnProperty(e)?zs[e]:xs(e,Os)||e:null};const Fs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],$s={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ss=function(e){if($s.hasOwnProperty(e))return $s[e];let t=xs(e,Fs);return t||e+"ly"};const Hs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Js={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Ls=new Set(["terrible","annoying"]),Ms=function(e,t){const n=t.two.models.toSuperlative;return rs(e,n)},Ws=function(e,t){const n=t.two.models.toComparative;return rs(e,n)};var Ks={nounToPlural:Do,nounToSingular:As,verbToInfinitive:Ns,getTense:Is,verbConjugate:Ds,adjToSuperlative:Ms,adjToComparative:Ws,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return rs(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return rs(e,n)},advToAdjective:Vs,adjToAdverb:Ss,adjToNoun:function(e){if(Js.hasOwnProperty(e))return Js[e];if(Ls.has(e))return null;let t=xs(e,Hs);return t||e+"ness"}},qs={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.nounToPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.adjToSuperlative(e,a);r[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,a);r[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.nounToPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verbConjugate(e,a);Object.entries(o).forEach((e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,a);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Us=function(e,t){const{methods:n,model:a}=t;let r={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===qs.hasOwnProperty(i)&&qs[i](t,r,n,a),r[t]=r[t]||i})),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},Rs=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let a=0;e.forEach(((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))return!1;let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)})),ae.endsWith(t))):"s"===t&&!_s.find((t=>e.endsWith(t)))},Ys={two:{quickSplit:Rs,expandLexicon:Us,transform:Ks,looksPlural:Xs}},el=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const tl=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e)),{})};var nl=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=tl(n,"Infinitive","PastTense"),Object.assign(s,l),l=tl(a,"Infinitive","Verb"),Object.assign(s,l),l=tl(r,"Infinitive","Gerund"),Object.assign(s,l),l=tl(o,"Adjective","Superlative"),Object.assign(s,l),l=tl(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let al={two:{models:ws}};const rl={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},ol=function(e,t){const n={model:t,methods:Ys};let{lex:a,_multi:r}=Ys.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},il=function(e,t,n){let a=Ds(e,al);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},sl=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach((r=>{const o=e[r];if(n[r]=rl[o],"Noun|Verb"!==o&&"Person|Verb"!==o||il(r,a,!1),"Adj|Present"===o&&(il(r,a,!0),function(e,t,n){let a=Ms(e,n);t[a]=t[a]||"Superlative";let r=Ws(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ns(r,al,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ns(r,al,"PastTense");a[e]||(n[e]="Infinitive")}})),t=ol(n,t)};var ll=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=ol(e.one.lexicon,e)).one.lexicon,e),e=sl(e.two.switches,e),e=nl(e),e=el(e)};let ul={one:{_multiCache:{},lexicon:To},two:{irregularPlurals:bo,models:ws,suffixPatterns:Ci,prefixPatterns:Vi,endsWith:Ri,neighbours:_i,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Co,clues:yi,uncountable:{},orgWords:ks}};ul=ll(ul);var cl=ul;const hl=/^(under|over|mis|re|un|dis|semi)-?/;var dl=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(hl.test(r.normal)){let e=r.normal.replace(hl,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},gl=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const ml=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var pl=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t)))||(Xs(e.normal)?gl(e,"Plural","3-plural-guess"):gl(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Is(e.normal);t&&gl(e,t,"3-verb-tense-guess")}}(a)};const fl=/^\p{Lu}[\p{Ll}'’]/u,bl=/[0-9]/,yl=["Date","Month","WeekDay","Unit"],vl=/^[IVXLCDM]{2,}$/,wl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,kl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Pl=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===fl.test(o)&&!1===bl.test(o)?yl.find((e=>a.tags.has(e)))?null:(pl(e,t,n),a.tags.has("Noun")||a.tags.clear(),gl(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&vl.test(o)&&wl.test(o)&&!kl[a.normal]?(gl(a,"RomanNumeral","2-xvii"),!0):null};const Al=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null};var El=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=Al(a.normal,n.two.suffixPatterns);if(null!==e)return gl(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=Al(a.implicit,n.two.suffixPatterns),null!==e))return gl(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const jl=/['‘’‛‵′`´]/,Il=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return gl(a,e,"2-prefix"),a.confidence=.5,!0}return null};const Dl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),xl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Dl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Tl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Cl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Ol=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(xl(r)||xl(o))return gl(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Tl(r)||Tl(o))return gl(n,"Year","2-tagYear-close");if(Cl(e[t-2])||Cl(e[t+2]))return gl(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return gl(n,"Year","2-tagYear-noun")}}}return null};const Bl=/^[A-Z]('s|,)?$/,zl=/^[A-Z-]+$/,Vl=/([A-Z]\.)+[A-Z]?,?$/,Fl=/[A-Z]{2,}('s|,)?$/,$l=/([a-z]\.)+[a-z]\.?$/,Sl={I:!0,A:!0};var Hl=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===zl.test(n)||n.length>5||Sl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Vl.test(n)&&!0!==$l.test(n)&&!0!==Bl.test(n)&&!0!==Fl.test(n))}(a,n)?(a.tags.clear(),gl(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Sl.hasOwnProperty(a.text)&&Bl.test(a.text)?(a.tags.clear(),gl(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(gl(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&zl.test(a.text)&&a.text.length<=6?(gl(a,"Acronym","3-titlecase-acronym"),!0):null};const Jl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Ll=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ml=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Jl(e[t-1],r),l=l||Jl(e[t+1],o),l=l||Ll(e[t-1],a),l=l||Ll(e[t+1],i),l)return gl(s,l,"3-[neighbour]"),pl(e,t,n),e[t].confidence=.2,!0}return null};const Wl=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Kl=function(e,t,n){const a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Wl(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Wl(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},ql=function(e,t,n){0===e[t].tags.size&&(gl(e[t],"Noun","3-[fallback]"),pl(e,t,n),e[t].confidence=.1)};const Ul=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Rl=(e,t,n)=>0!==t||e[1]?null:n,Ql={"Adj|Gerund":(e,t)=>Ul(e,t),"Adj|Noun":(e,t)=>Ul(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Ul(e,t),"Adj|Present":(e,t)=>Ul(e,t),"Noun|Gerund":(e,t)=>Ul(e,t),"Noun|Verb":(e,t)=>Ul(e,t)||Rl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ul(e,t)||Rl(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ul(e,t),"Person|Verb":(e,t)=>0!==t?Ul(e,t):null};var Zl=Ql;const _l="undefined"!=typeof process&&process.env?process.env:self.env||{},Xl=/^(under|over|mis|re|un|dis|semi)-?/,Yl=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,a=null;return t.hasOwnProperty(n)&&(a=t[n]),a&&_l.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},eu=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),r=a.find((e=>t[e]));return r&&_l.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${r}) `),r=t[r],r};var tu=function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(Xl.test(l)&&!o[l]&&(l=l.replace(Xl,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=Yl(e[t+1],n.afterWords);return o=o||Yl(e[t-1],n.beforeWords),o=o||eu(e[t-1],n.beforeTags,r),o=o||eu(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Zl[o]&&(u=Zl[o](e,t)||u),u?(r([s],u,n,null,`3-[switch] (${o})`),pl(e,t,a)):_l.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},nu=function(e,t,n){let a=e[t+1];if(!a)return;let{prefixes:r}=n.one,o=e[t];!0===r[o.normal]&&(a.tags.has("Verb")&&(gl(o,"Verb","3-[prefix]"),gl(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(gl(o,"Adjective","3-[prefix]"),gl(o,"Prefix","3-[prefix]")))};const au={tagSwitch:dl,checkSuffix:El,checkRegex:Gl,checkCase:Pl,checkPrefix:Nl,checkHyphen:nu,checkYear:Ol},ru={checkAcronym:Hl,neighbours:Ml,orgWords:Kl,nounFallback:ql,switches:tu},ou=function(e,t,n){for(let a=0;a{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};var uu=function(e){const t=e.world,n=Object.keys(lu);e.docs.forEach((e=>{for(let a=0;a{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=ku.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=wu},Au=function(e,t,n){let[a,r]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Eu=/'/;var ju=function(e,t){let n=e[t].normal.split(Eu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Iu=/'/;var Gu=function(e,t){let n=e[t].normal.split(Iu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Nu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Du={that:!0,there:!0,let:!0,here:!0,everywhere:!0},xu={in:!0,by:!0,for:!0};var Tu=(e,t)=>{let n=e[t];if(Du.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let a=e[t+1];if(!a)return!0;if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return!("here"===e||"there"===e||"everywhere"===e||a.tags.has("Possessive")||a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===xu[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const Cu=/'/,Ou=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Bu={d:(e,t)=>Gu(e,t),t:(e,t)=>Nu(e,t),s:(e,t,n)=>Tu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):ju(e,t)},zu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Vu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===Cu.test(a[o].normal)&&([,i]=a[o].normal.split(Cu));let s=null;Bu.hasOwnProperty(i)&&(s=Bu[i](a,o,t)),s&&(s=zu(s,e),Au(n,[r,o],s),Ou(n[r],e,o,s.length))}}))}},Fu={compute:Vu,api:Pu,hooks:["contractionTwo"]};const $u="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Su=["i","we","they"];let Hu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${$u} #Person`,tag:"Person",reason:"randy-smith"},{match:`${$u} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${$u}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Su,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Su,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Su,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Ju=null;var Lu={postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;Ju=Ju||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(r);return o.cache(),o.sweep(Ju),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Mu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Lu,model:{two:{matches:Hu}},hooks:["postTagger"]};var Wu=Mu,Ku=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter(((e,t)=>n.some((e=>a[t].has(e)))))},qu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=Ku(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()},Uu={lib:{lazy:qu}},Ru=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},Qu=function(e,t,n){let a=e.split(/ /g).map((e=>`{${e}}`)).join(" "),r=this.match(a);return n&&(r=r.if(n)),r.has("#Verb")?Ru(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(r,t):r.has("#Adjective")?function(e,t){const{adjToComparative:n,adjToSuperlative:a}=e.methods.two.transform;let r=t;e.has("#Comparative")?r=n(r,e.model):e.has("#Superlative")&&(r=a(r,e.model)),r&&e.replaceWith(r)}(r,t):this},Zu={api:function(e){e.prototype.swap=Qu}};return b.plugin(bu),b.plugin(Fu),b.plugin(Wu),b.plugin(Uu),b.plugin(Zu),b},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,a={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let a=this.update([t]);e(a,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach((e=>{a=a.concat(e.fullPointer)})),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let a=this.update([t]);return e(a,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let a=this.update([t]);return e(a,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let a=this.update([t]);return e(a,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,n,a);i.get=i.eq;var s=i;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,a=t||e.map(((e,t)=>[t]));return a.map((e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>a[t]=e.lib[t])),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:a}=n;let r=new t([]);if(r.world=n,"number"==typeof e&&(e=String(e)),!e)return r;if("string"==typeof e)return new t(a.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return r};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let a=m(e,l,p);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var b=f,y=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},E=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},I=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?E(n):(E(n),E([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!P(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||P(r.text)&&r.text.length>1&&(r.text=r.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let G=0;const N=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var D=function(e){let[t,n]=e.index||[0,0];G+=1,G=G>46655?0:G,t=t>46655?0:t,n=n>1294?0:n;let a=N(G.toString(36));a+=N(t.toString(36));let r=n.toString(36);return r=r.length<2?"0"+r:r,a+=r,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},T=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:T(e)?T(e[0])?e[0]:e:[]}(e,r);0!==d.length&&(d=function(e){return e.map((e=>(e.id=D(e),e)))}(d),n?(x(t.update([u]).firstTerm()),I(h,u,d,a)):(x(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(z,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,a);let r=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(r.docs[0]||[]).map((e=>Array.from(e.tags)));a.insertAfter(e),r.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction+").contractions().expand(),a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this}};var F=V,$=function(e,t){t.forEach((t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let r=n.fullPointer,o=a.fullPointer.reverse(),i=$(this.document,o);return r=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var L=J,M={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a)))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map(((e,t)=>[t])),r=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:a[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(r=M.byFreq(r),this.update(r.map((e=>e.pointer)))):"function"==typeof M[e]?(r=r.sort(M[e]),this.update(r.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var Q={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=R(this.document,e);return this.document=t,this.all()}var r;return this}},Z={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const _=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},B,F,H,L,U,Q,Z);var X=function(e){Object.assign(e.prototype,_)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const ae=/'/,re=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(ae)[0];if(re.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,pe=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],a=n.text.match(ge);return null!==a?!0===n.tags.has("PhoneNumber")||pe.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(me),null!==a?[a[1],"to",a[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,ye=new Set(["st","nd","rd","th","am","pm","max"]);var ve=function(e,t){let n=e[t].text.match(be);if(null!==n){let e=n[2].toLowerCase().trim();return ye.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ee={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];new Set(a.one.units||[]),n.forEach(((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(a[s].normal)&&([l,u]=a[s].normal.split(we));let c=je(o,a[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](a,s,t)),!c&&Ee.hasOwnProperty(l)&&(c=Ee[l](a,s)),c?(c=Ie(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(a[s].normal)?(c=fe(a,s),c&&(c=Ie(c,e),ne(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ve(a,s),c&&(c=Ie(c,e),ne(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ne={model:te,compute:{contractions:Ge},hooks:["contractions"]},De=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===xe.test(l)){let e=l.replace(xe,"");if(i.hasOwnProperty(e)&&e.length>3&&Te.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let r=e[a],o=(a=(a=a.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},ze={addWords:function(e){const t=this.world(),{methods:n,model:a}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},Ve={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Be}},compute:Oe,lib:ze,hooks:["lexicon"]},Fe=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const $e=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Le=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const Me={buildTrie:function(e){const t=Fe(e,this.world());return Le(t)}};Me.compile=Me.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Fe(e,this.world));var a;let r=He(this,n,t);return r=r.settle(),r}},lib:Me};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},qe=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Ke(n,t),Object.keys(a).forEach((e=>{a[e]=Ke(a[e],t)})),{ptrs:n,byGroup:a}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,Ze=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e};var _e={matchOne:function(e,t,n){const a=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=Ze(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=Ze(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ze(e,n,this.world);let o=this._cache||[],i=this.filter(((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Xe={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&r.push([t[0],0,t[1]])}));let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}})),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach(((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}})),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Ye=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},tt=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Ye(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Ye(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var at=nt;const rt=Object.assign({},_e,Xe,at);rt.lookBehind=rt.before,rt.lookBefore=rt.before,rt.lookAhead=rt.after,rt.lookAfter=rt.after,rt.notIf=rt.ifNo;var ot=function(e){Object.assign(e.prototype,rt)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let a=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?a.push(e):a=a.concat(e.split(lt))})),a=ct(a),a};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),pt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),yt=e=>e.substring(1),vt=e=>e.substring(0,e.length-1),wt=function(e){return e=yt(e),e=vt(e)},kt=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===ft(e)&&(n.end=!0,e=vt(e)),"^"===bt(e)&&(n.start=!0,e=yt(e)),("["===bt(e)||"]"===ft(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=vt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=vt(e)),"?"===ft(e)&&(n.optional=!0,e=vt(e)),"!"===bt(e)&&(n.negative=!0,e=yt(e)),"~"===bt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===bt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=yt(n.choices[0]);let a=n.choices.length-1;n.choices[a]=vt(n.choices[a]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===bt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===bt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===bt(e)&&">"===ft(e))return e=wt(e),n.chunk=pt(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===bt(e)?(n.tag=yt(e),n.tag=pt(n.tag),n):"@"===bt(e)?(n.method=yt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var Et=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&At.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter((e=>e)).reverse(),e.splice(t,1),r.forEach((n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},a=e.root;return n?n(a,t.model):[]},It=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Gt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Nt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(It(e,t)):"Adjective"===e.pos&&(n=n.concat(Gt(e,t))):(n=n.concat(jt(e,t)),n=n.concat(It(e,t)),n=n.concat(Gt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Dt=function(e){return e=function(e){let t=0,n=null;for(let a=0;a(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},xt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=ht(e);return a=a.map((e=>Pt(e,t))),a=Et(a,n),a=Nt(a,n),a=Dt(a),a};const Tt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Bt.test(e.pre)||zt.test(e.post),hasComma:e=>$t(e,","),hasPeriod:e=>!0===$t(e,".")&&!1===$t(e,"..."),hasExclamation:e=>$t(e,"!"),hasQuestionMark:e=>$t(e,"?")||$t(e,"¿"),hasEllipses:e=>$t(e,"..")||$t(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>$t(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Vt.test(e.post)||Vt.test(e.pre),hasDash:e=>Ft.test(e.post)||Ft.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Jt=Ht;let Lt=function(){};Lt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Jt[t.method]&&!0===Jt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Lt(e,t,n,a))):t.choices.some((t=>Lt(e,t,n,a))))}(e,t,n,a);return!0===t.negative?!r:r};var Mt=Lt;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Kt(e,e.t).length=a-e.t),e.t=a,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Mt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every(((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Mt(e.terms[a],t,a,e.phrase_length)}));return!0===a&&n.length>t&&(t=n.length),a}))&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Kt(e,e.t).length+=a),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null},Zt=function(e,t,n){let a=0;for(let r=e.t;ra||(e.t+=a,0))},_t=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);if(a.negative=!1,Mt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Mt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Mt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Zt(e,a,t[e.r+1]):(e.t+=1,!0)},Xt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Mt(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Mt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Yt=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Xt(e),a.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Yt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=Kt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0):null)},nn=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Wt(e,r)){if(e.negative){if(!_t(r))return null}else if(!0!==Mt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(!0!==e.optional)return null}else if(!tn(r))return null}else if(!tn(r))return null}else{if(e.negative&&e.anything)return null;if(!tn(r))return null}else if(!Qt(r))return null}else if(!Rt(r))return null}else if(!qt(r))return null}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach((e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]})),{pointer:o,groups:i}},an=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{a[t]=a[t]||[],a[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:a}};const rn=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let a=nn(e,t,0,e.length);return a?(a=rn(a,n),a):null};var sn=function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=an(i,r),i.ptrs.forEach((t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id})),i},ln={api:ot,methods:{one:{termMethods:Jt,parseMatch:xt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},a={};return Object.keys(t).forEach((r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)}))})),{starts:n,ends:a}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),a="";return this.docs.forEach((e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(r)&&(r=" "),r=r.replace(pn,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),r="-"===r?" ":r.replace(gn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&bn.test(r)||(r+=" "),a+=n+o+r})),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},vn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};vn.clean=vn.normal,vn.reduced=vn.root;var wn=vn;let kn=[],Pn=0;for(;Pn<64;)kn[Pn]=0|4294967296*Math.sin(++Pn%Math.PI);function An(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Pn=i=0;Pn>4]+kn[i]+~~o[Pn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const En={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const In=function(e,t){return Object.assign({},e,t)},Gn={text:e=>yn(e,{keepPunct:!0},!1),normal:e=>yn(e,In(wn.normal,{keepPunct:!0}),!1),implicit:e=>yn(e,In(wn.implicit,{keepPunct:!0}),!1),machine:e=>yn(e,jn,!1),root:e=>yn(e,In(jn,{form:"root"}),!1),hash:e=>An(yn(e,{keepPunct:!0},!1)),offset:e=>{let t=Gn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};Gn.sentences=Gn.sentence,Gn.clean=Gn.normal,Gn.reduced=Gn.root;const Nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},En,a)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let r={};return Object.keys(a).forEach((o=>{a[o]&&Gn[o]&&(r[o]=Gn[o](e,n,t))})),r})));var n,a;return"number"==typeof e?t[e]:t}};Nn.data=Nn.json;var Dn=Nn,xn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Tn="";var Cn={green:e=>""+e+Tn,red:e=>""+e+Tn,blue:e=>""+e+Tn,magenta:e=>""+e+Tn,cyan:e=>""+e+Tn,yellow:e=>""+e+Tn,black:e=>""+e+Tn,dim:e=>""+e+Tn,i:e=>""+e+Tn},On=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Cn.blue("\n ──────")),t.forEach((e=>{console.log(Cn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=Cn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=Cn.blue(" │ ")+Cn.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Cn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Bn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},zn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${Cn.blue(a[1])}${a[2]}`}(a,e.offset,t)})),console.log(a)}))},Vn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(xn(t),t):(!1!==e.tags&&(On(t),console.log("\n")),!0===e.chunks&&(Bn(t),console.log("\n")),!0===e.highlight&&(zn(t),console.log("\n")),t)};const Fn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var $n=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((a=>{e.match(a).fullPointer.forEach((e=>{n[e[3]]={fn:t[a],end:e[2]}}))})),n}(e,t),a="";return e.docs.forEach(((t,r)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Hn=Sn,Jn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},qn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=qn(t),a=[];return e.forEach((e=>{let[t]=e,r=n[t]||[];if(r=r.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===r.length)return void a.push({passthrough:e});r=r.sort(((e,t)=>e[1]-t[1]));let o=e;r.forEach(((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)}))})),a},Rn=function(e,t){let n=[];return e.forEach(((a,r)=>{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<20;a+=1){if(t[n-a]){let r=t[n-a].findIndex((t=>t.id===e));if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex((t=>t.id===e));if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex((e=>e.id===r));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},Qn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter((t=>Kn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);r.push(o)})),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Xn=function(e,t){let n=qn(t),a=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Kn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},ea=function(e,t){return e.map((e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e}))},ta={union:function(e){e=Yn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=ea(t,this.document),this.toView(t)}};ta.and=ta.union,ta.intersection=function(e){e=Yn(e,this);let t=Xn(this.fullPointer,e.fullPointer);return t=ea(t,this.document),this.toView(t)},ta.not=function(e){e=Yn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=ea(t,this.document),this.toView(t)},ta.difference=ta.not,ta.complement=function(){let e=this.all(),t=_n(e.fullPointer,this.fullPointer);return t=ea(t,this.document),this.toView(t)},ta.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Zn(e,[t])})),e=ea(e,this.document),this.update(e)};var na=function(e){Object.assign(e.prototype,ta)},aa={methods:Qn,api:na},ra=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:a}=this,{methods:r}=n;let o=r.one.bulkMatch(a,e,this.methods,t);!1!==t.tagger&&r.one.bulkTagger(o,a,this.world),o=o.map((e=>{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const oa=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ia=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(oa(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(oa(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=oa(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},sa=function(e,t){e=ia(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let a=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:a}},la=function(e,t){return e.map(((n,a)=>{let r=[];Object.keys(t).forEach((n=>{e[a].has(n)&&(r=r.concat(t[n]))}));let o={};return r=r.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),r}))},ua=function(e,t){return e.map(((e,n)=>{let a=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>a.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>a.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>a.has(e))).length>=e.minWant))}))},ca=function(e,t,n,a,r){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===r.matchOne))return[o[0]]}return o},ha=function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=la(r,t.hooks);return o=ua(o,r),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let a=t[n].length;return e=e.filter((e=>a>=e.minWords)),e}))}(o,e),ca(o,e,r,n,a)},da=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===da(u,e.tag,a))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${r}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,r),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},ma={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ra,methods:{one:{buildNet:sa,bulkMatch:ha,bulkTagger:ga}}};const pa=/ /,fa=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},ba=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),pa.test(t))!function(e,t,n,a){let r=t.split(pa);e.forEach(((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),ba(e,o,n,a))}))}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nya(e,t,n,a)))};var va=ya,wa=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>ka({id:e}))),t}return[ka({id:e})]}(e))})),n=n.filter((e=>e));let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),a.push(n)}))}return n},ja=e=>"[object Array]"===Object.prototype.toString.call(e),Ia=e=>(e=e||"").trim(),Ga=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Pa.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Aa(e)})}));let a=function(e){let t={children:[]};return e.forEach(((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=ka({});return e.forEach((e=>{if((e=ka(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ea(t=e).forEach(ka),t);var t},Na=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Ea(e).forEach(((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"})),a},Da=function(e){let t=Ea(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},xa={text:Na,txt:Na,array:Da,flat:Da},Ta=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Na(e,!0)),null):xa.hasOwnProperty(t)?xa[t](e):e},Ca=e=>{Ea(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Oa=/\//;let Ba=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Ia(e),!Oa.test(e)){let t=this.json.children.find((t=>t.id===e));return new Ba(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!a)return null;e=a}return e})(this.json,e)||ka({});return new Ba(t)}add(e,t={}){if(ja(e))return e.forEach((e=>this.add(Ia(e),t))),this;e=Ia(e);let n=ka({id:e,props:t});return this.json.children.push(n),new Ba(n)}remove(e){return e=Ia(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ea(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ea(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ea(this.json)}fillDown(){var e;return e=this.json,Ea(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else ja(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Ca(this.json);let e=Ea(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Ca(this.json),Ta(this.json,e)}debug(){return Ca(this.json),Ta(this.json,"debug"),this}};const za=function(e){let t=Ga(e);return new Ba(t)};za.prototype.plugin=function(e){e(this)};var Va={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Fa=function(e){if(Va.hasOwnProperty(e.id))return Va[e.id];if(Va.hasOwnProperty(e.is))return Va[e.is];let t=e._cache.parents.find((e=>Va[e]));return Va[t]};var $a=function(e){const t={};return e.forEach((e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:Fa(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sa=function(e){return e?"string"==typeof e?[e]:e:[]};var Ha=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sa(e[t].children),e[t].not=Sa(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Ja=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Ha(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}}));return za(t).cache().fillDown().out("array")}(Object.assign({},t,e));return $a(n)},La={one:{setTag:va,unTag:wa,addTags:Ja}};const Ma=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Wa={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Ma(e)?e.forEach((e=>r.one.setTag(a,e,i,n,t))):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Ma(e)?e.forEach((e=>a.one.unTag(n,e,i))):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach(((e,t)=>{e.forEach(((e,r)=>{n.find((t=>e.tags.has(t)))&&a.push([t,r,r+1])}))}));let r=this.update(a);return this.difference(r)}};var Ka=Wa,qa=function(e){Object.assign(e.prototype,Ka)},Ua={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const Ra=new Set(["Auxiliary","Possessive"]);var Qa=function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Ra.has(e)||!t.hasOwnProperty(n))return 1;if(Ra.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})),e}(t,a)}))}))},Za={model:{one:{tagSet:{}}},compute:{tagRank:Qa},methods:La,api:qa,lib:Ua};const _a=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Xa=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Ya=/((?:\r?\n|\r)+)/;var er=function(e){let t=[],n=e.split(Ya);for(let e=0;e0&&(r.push(o),e[t]="")}return r};const or={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ir=RegExp("("+Object.keys(or).join("|")+")","g"),sr=RegExp("("+Object.values(or).join("|")+")","g"),lr=function(e){if(!e)return!1;let t=e.match(sr);return null!==t&&1===t.length};var ur=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var jr=function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split(Ar);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wr(n),n=yr(n),n=n.filter((e=>e)),n};let Ir=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Gr=new RegExp(`^[${["%","_"].join("")}]+`,"");const Nr=/[\p{Punctuation}\s]+$/u,Dr=/^[\p{Punctuation}\s]+/u,xr=/['’]/,Tr=/^[a-z]\.([a-z]\.)+/i,Cr=/^'[0-9]{2}/;var Or=function(e){let t=e,n="",a="";return e=e.replace(Dr,(t=>{let a=t.match(Ir);return a?(n=t.replace(Ir,""),a):"'"===n&&Cr.test(e)?(n="",t):(n=t,"")})),e=e.replace(Nr,(r=>{let o=r.match(Gr);return o?(a=r.replace(Gr,""),o):xr.test(r)&&/[sn]['’]$/.test(t)&&!1===xr.test(n)?(a=a.replace(xr,""),"'"):!0===Tr.test(e)?(a=r.replace(/^\./,""),"."):(a=r,"")})),""===e&&(t=t.replace(/ *$/,(e=>(a=e||"",""))),e=t,n=""),{str:e,pre:n,post:a}},Br=function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach(((e,t)=>{n[e]&&(a[t]=n[e])})),a.join("")},zr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Vr=/([A-Z]\.)+[A-Z]?,?$/,Fr=/^[A-Z]\.,?$/,$r=/[A-Z]{2,}('s|,)?$/,Sr=/([a-z]\.)+[a-z]\.?$/;var Hr=function(e){return function(e){return!0===Vr.test(e)||!0===Sr.test(e)||!0===Fr.test(e)||!0===$r.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Jr=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=zr(a),a=n(a,t),a=Hr(a),e.normal=a},Lr=function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",t).map((e=>{let n=o(e,a);return n=n.map(i),n.forEach((e=>{Jr(e,t)})),n})),e};const Mr=/[ .][A-Z]\.? *$/i,Wr=/(?:\u2026|\.{2,}) *$/,Kr=/\p{L}/u,qr=/^[A-Z]\. $/;var Ur={one:{killUnicode:Br,tokenize:{splitSentences:pr,isSentence:function(e,t){if(!1===Kr.test(e))return!1;if(!0===Mr.test(e))return!1;if(3===e.length&&qr.test(e))return!1;if(!0===Wr.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),a=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(a)},splitTerms:jr,splitWhitespace:e=>{let{str:t,pre:n,post:a}=Or(e);return{text:t,pre:n,post:a,tags:new Set}},fromString:Lr}}},Rr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},Zr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qr[t]=!0,Zr[t]="Abbreviation",void 0!==e[1]&&(Zr[t]=[Zr[t],e[1]])}))}));var _r=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Xr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Yr={};Object.keys(Xr).forEach((function(e){Xr[e].split("").forEach((function(t){Yr[t]=e}))}));const eo=/\//,to=/[a-z]\.[a-z]/i,no=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),eo.test(n)&&!to.test(n)&&!no.test(n)){let t=n.split(eo);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ro=/^\p{Letter}+-\p{Letter}+$/u;var oo=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ro.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},io=function(e){let t=e.docs,n={};for(let e=0;eco(e,ao),machine:e=>co(e,oo),normal:e=>co(e,Jr),freq:io,offset:so,index:lo,wordCount:uo},methods:Ur,model:{one:{aliases:Rr,abbreviations:Qr,prefixes:_r,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Zr,unicode:Yr}},hooks:["alias","machine","index","id"]},go={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const mo=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var po=function(e){e.prototype.autoFill=mo},fo=function(e,t,n){let a={},r=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]})),a};const bo={safe:!0,min:3};var yo={typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},bo,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=fo(e,t,this.world());return Object.keys(r).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]})),this}},vo={model:{one:{typeahead:{}}},api:po,lib:yo,compute:go,hooks:["typeahead"]};b.extend(ee),b.extend(Wn),b.extend(ln),b.extend(aa),b.extend(Za),b.plugin(Ne),b.extend(ho),b.plugin(k),b.extend(We),b.extend(vo),b.extend(Ve),b.extend(ma);var wo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ko={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Po=36,Ao="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Eo=Ao.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var jo=function(e){if(void 0!==Eo[e])return Eo[e];let t=0,n=1,a=Po,r=1;for(;n=0;n--,r*=Po){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},Io=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const a=No(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Do(ko[e]);Oo.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Co(t,Vo);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Bo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Bo[e]="Emoticon")),delete Bo[""],delete Bo.null,delete Bo[" "];const Fo="Adjective";var $o={beforeTags:{Determiner:Fo,Possessive:Fo},afterTags:{Adjective:Fo},beforeWords:{seem:Fo,seemed:Fo,seems:Fo,feel:Fo,feels:Fo,felt:Fo,appear:Fo,appears:Fo,appeared:Fo,also:Fo,over:Fo,under:Fo,too:Fo,it:Fo,but:Fo,still:Fo,really:Fo,quite:Fo,well:Fo,very:Fo,deeply:Fo,profoundly:Fo,extremely:Fo,so:Fo,badly:Fo,mostly:Fo,totally:Fo,awfully:Fo,rather:Fo,nothing:Fo,something:Fo,anything:Fo,not:Fo,me:Fo},afterWords:{too:Fo,also:Fo,or:Fo}};const So="Gerund";var Ho={beforeTags:{Adverb:So,Preposition:So,Conjunction:So},afterTags:{Adverb:So,Possessive:So,Person:So,Pronoun:So,Determiner:So,Copula:So,Preposition:So,Conjunction:So,Comparative:So},beforeWords:{been:So,keep:So,continue:So,stop:So,am:So,be:So,me:So,began:So,start:So,starts:So,started:So,stops:So,stopped:So,help:So,helps:So,avoid:So,avoids:So,love:So,loves:So,loved:So,hate:So,hates:So,hated:So},afterWords:{you:So,me:So,her:So,him:So,them:So,their:So,it:So,this:So,there:So,on:So,about:So,for:So}},Jo={beforeTags:Object.assign({},$o.beforeTags,Ho.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},$o.afterTags,Ho.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},$o.beforeWords,Ho.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},$o.afterWords,Ho.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Lo="Singular";var Mo={beforeTags:{Determiner:Lo,Possessive:Lo,Acronym:Lo,Noun:Lo,Adjective:Lo,PresentTense:Lo,Gerund:Lo,PastTense:Lo,Infinitive:Lo,Date:Lo},afterTags:{Value:Lo,Modal:Lo,Copula:Lo,PresentTense:Lo,PastTense:Lo,Demonym:Lo},beforeWords:{the:Lo,with:Lo,without:Lo,of:Lo,for:Lo,any:Lo,all:Lo,on:Lo,cut:Lo,cuts:Lo,save:Lo,saved:Lo,saves:Lo,make:Lo,makes:Lo,made:Lo,minus:Lo,plus:Lo,than:Lo,another:Lo,versus:Lo,neither:Lo,favorite:Lo,best:Lo,daily:Lo,weekly:Lo,linear:Lo,binary:Lo,mobile:Lo,lexical:Lo,technical:Lo,computer:Lo,scientific:Lo,formal:Lo},afterWords:{of:Lo,system:Lo,aid:Lo,method:Lo,utility:Lo,tool:Lo,reform:Lo,therapy:Lo,philosophy:Lo,room:Lo,authority:Lo,says:Lo,said:Lo,wants:Lo,wanted:Lo}};const Wo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ko={beforeTags:Object.assign({},$o.beforeTags,Mo.beforeTags,Wo.beforeTags),afterTags:Object.assign({},$o.afterTags,Mo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Mo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Mo.afterWords)};const qo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Uo={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ro={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Qo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Zo={beforeTags:Object.assign({},$o.beforeTags,qo),afterTags:Object.assign({},$o.afterTags,Uo),beforeWords:Object.assign({},$o.beforeWords,Ro),afterWords:Object.assign({},$o.afterWords,Qo)};const _o="Infinitive";var Xo={beforeTags:{Modal:_o,Adverb:_o,Negative:_o,Plural:_o},afterTags:{Determiner:_o,Adverb:_o,Possessive:_o,Preposition:_o},beforeWords:{i:_o,we:_o,you:_o,they:_o,to:_o,please:_o,will:_o,have:_o,had:_o,would:_o,could:_o,should:_o,do:_o,did:_o,does:_o,can:_o,must:_o,us:_o,me:_o,he:_o,she:_o,it:_o,being:_o},afterWords:{the:_o,me:_o,you:_o,him:_o,her:_o,them:_o,it:_o,a:_o,an:_o,up:_o,down:_o,by:_o,out:_o,off:_o,under:_o,when:_o,all:_o,to:_o,because:_o,although:_o,before:_o,how:_o,otherwise:_o,together:_o,though:_o,yet:_o}};const Yo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ei={beforeTags:Object.assign({},$o.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},$o.afterTags,Xo.afterTags,Yo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Xo.afterWords,{to:void 0})};const ti={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ni={},ai={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ri={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var oi={beforeTags:Object.assign({},Ho.beforeTags,Mo.beforeTags,ti),afterTags:Object.assign({},Ho.afterTags,Mo.afterTags,ni),beforeWords:Object.assign({},Ho.beforeWords,Mo.beforeWords,ai),afterWords:Object.assign({},Ho.afterWords,Mo.afterWords,ri)},ii={beforeTags:Object.assign({},Xo.beforeTags,Mo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xo.afterTags,Mo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xo.beforeWords,Mo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xo.afterWords,Mo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const si="Person";var li={beforeTags:{Honorific:si,Person:si,Preposition:si},afterTags:{Person:si,ProperNoun:si,Verb:si},ownTags:{ProperNoun:si},beforeWords:{hi:si,hey:si,yo:si,dear:si,hello:si},afterWords:{said:si,says:si,told:si,tells:si,feels:si,felt:si,seems:si,thinks:si,thought:si,spends:si,spendt:si,plays:si,played:si,sing:si,sang:si,learn:si,learned:si,wants:si,wanted:si}};const ui="Month",ci={beforeTags:{Date:ui,Value:ui},afterTags:{Date:ui,Value:ui},beforeWords:{by:ui,in:ui,on:ui,during:ui,after:ui,before:ui,between:ui,until:ui,til:ui,sometime:ui,of:ui,this:ui,next:ui,last:ui,previous:ui,following:ui},afterWords:{sometime:ui,in:ui,of:ui,until:ui,the:ui}};var hi={beforeTags:Object.assign({},li.beforeTags,ci.beforeTags),afterTags:Object.assign({},li.afterTags,ci.afterTags),beforeWords:Object.assign({},li.beforeWords,ci.beforeWords),afterWords:Object.assign({},li.afterWords,ci.afterWords)};const di={Place:"Place"},gi={Place:"Place",Abbreviation:"Place"},mi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},pi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let fi="Unit";const bi="Honorific";let yi={first:bi,general:bi,royal:bi,vice:bi,rear:bi,major:bi};const vi={"Adj|Gerund":Jo,"Adj|Noun":Ko,"Adj|Past":Zo,"Adj|Present":ei,"Noun|Verb":ii,"Noun|Gerund":oi,"Person|Noun":{beforeTags:Object.assign({},Mo.beforeTags,li.beforeTags),afterTags:Object.assign({},Mo.afterTags,li.afterTags),beforeWords:Object.assign({},Mo.beforeWords,li.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Mo.afterWords,li.afterWords)},"Person|Date":hi,"Person|Verb":{beforeTags:Object.assign({},li.beforeTags,Xo.beforeTags),afterTags:Object.assign({},li.afterTags,Xo.afterTags),beforeWords:Object.assign({},li.beforeWords,Xo.beforeWords),afterWords:Object.assign({},li.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},di,li.beforeTags),afterTags:Object.assign({},gi,li.afterTags),beforeWords:Object.assign({},mi,li.beforeWords),afterWords:Object.assign({},pi,li.afterWords)},"Unit|Noun":{beforeTags:{Value:fi},afterTags:{},beforeWords:{per:fi,every:fi,each:fi,square:fi,cubic:fi,sq:fi,metric:fi},afterWords:{per:fi,squared:fi,cubed:fi,long:fi}},"Honorific|Noun":{beforeTags:{Honorific:bi,ProperNoun:bi,Ordinal:bi},afterTags:{Person:bi,ProperNoun:bi},beforeWords:Object.assign({},yi,{honorable:bi,honourable:bi,worship:bi,excellency:bi,majesty:bi,right:bi}),afterWords:yi}},wi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};vi["Plural|Verb"]={beforeWords:wi(vi["Noun|Verb"].beforeWords,{}),afterWords:wi(vi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:wi(vi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:wi(vi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ki=vi;const Pi="Adjective",Ai="Infinitive",Ei="PresentTense",ji="Singular",Ii="PastTense",Gi="Adverb",Ni="Plural",Di="Actor",xi="Verb",Ti="Noun",Ci="LastName",Oi="Modal",Bi="Participle";var zi=[null,null,{ea:ji,ia:Ti,ic:Pi,ly:Gi,"'n":xi,"'t":xi},{oed:Ii,ued:Ii,xed:Ii," so":Gi,"'ll":Oi,"'re":"Copula",azy:Pi,eer:Ti,end:xi,ped:Ii,ffy:Pi,ify:Ai,ing:"Gerund",ize:Ai,ibe:Ai,lar:Pi,mum:Pi,nes:Ei,nny:Pi,ous:Pi,que:Pi,rol:ji,sis:ji,ogy:ji,oid:ji,ian:ji,zes:Ei,eld:Ii,ken:Bi,ven:Bi,ten:Bi,ect:Ai,ict:Ai,ign:Ai,ful:Pi,bal:Pi},{amed:Ii,aped:Ii,ched:Ii,lked:Ii,rked:Ii,reed:Ii,nded:Ii,mned:Pi,cted:Ii,dged:Ii,ield:ji,akis:Ci,cede:Ai,chuk:Ci,czyk:Ci,ects:Ei,ends:xi,enko:Ci,ette:ji,wner:ji,fies:Ei,fore:Gi,gate:Ai,gone:Pi,ices:Ni,ints:Ni,ruct:Ai,ines:Ni,ions:Ni,less:Pi,llen:Pi,made:Pi,nsen:Ci,oses:Ei,ould:Oi,some:Pi,sson:Ci,tion:ji,tage:Ti,ique:ji,tive:Pi,tors:Ti,vice:ji,lier:ji,fier:ji,wned:Ii,gent:ji,tist:ji,pist:ji,rist:ji,mist:ji,yist:ji,vist:ji,lite:ji,site:ji,rite:ji,mite:ji,bite:ji,mate:ji,date:ji,ndal:ji,vent:ji,uist:ji,gist:ji,note:ji,cide:ji,wide:Pi,vide:Ai,ract:Ai,duce:Ai,pose:Ai,eive:Ai,lyze:Ai,lyse:Ai,iant:Pi,nary:Pi},{elist:ji,holic:ji,phite:ji,tized:Ii,urned:Ii,eased:Ii,ances:Ni,bound:Pi,ettes:Ni,fully:Gi,ishes:Ei,ities:Ni,marek:Ci,nssen:Ci,ology:Ti,osome:ji,tment:ji,ports:Ni,rough:Pi,tches:Ei,tieth:"Ordinal",tures:Ni,wards:Gi,where:Gi,archy:Ti,pathy:Ti,opoly:Ti,embly:Ti,phate:Ti,ndent:ji,scent:ji,onist:ji,anist:ji,alist:ji,olist:ji,icist:ji,ounce:Ai,iable:Pi,borne:Pi,gnant:Pi,inant:Pi,igent:Pi,atory:Pi,rient:ji,dient:ji},{auskas:Ci,parent:ji,cedent:ji,ionary:ji,cklist:ji,keeper:Di,logist:Di,teenth:"Value"},{opoulos:Ci,borough:"Place",sdottir:Ci}];const Vi="Adjective",Fi="Noun",$i="Verb";var Si=[null,null,{},{neo:Fi,bio:Fi,"de-":$i,"re-":$i,"un-":$i},{anti:Fi,auto:Fi,faux:Vi,hexa:Fi,kilo:Fi,mono:Fi,nano:Fi,octa:Fi,poly:Fi,semi:Vi,tele:Fi,"pro-":Vi,"mis-":$i,"dis-":$i,"pre-":Vi},{anglo:Fi,centi:Fi,ethno:Fi,ferro:Fi,grand:Fi,hepta:Fi,hydro:Fi,intro:Fi,macro:Fi,micro:Fi,milli:Fi,nitro:Fi,penta:Fi,quasi:Vi,radio:Fi,tetra:Fi,"omni-":Vi,"post-":Vi},{pseudo:Vi,"extra-":Vi,"hyper-":Vi,"inter-":Vi,"intra-":Vi,"deca-":Vi},{electro:Fi}];const Hi="Adjective",Ji="Infinitive",Li="PresentTense",Mi="Singular",Wi="PastTense",Ki="Adverb",qi="Expression",Ui="Actor",Ri="Verb",Qi="Noun",Zi="LastName";var _i={a:[[/.[aeiou]na$/,Qi,"tuna"],[/.[oau][wvl]ska$/,Zi],[/.[^aeiou]ica$/,Mi,"harmonica"],[/^([hyj]a+)+$/,qi,"haha"]],c:[[/.[^aeiou]ic$/,Hi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Wi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Wi,"rammed"],[/.[aeiou][sg]hed$/,Wi,"gushed"],[/.[aeiou]red$/,Wi,"hired"],[/.[aeiou]r?ried$/,Wi,"hurried"],[/[^aeiou]ard$/,Mi,"steward"],[/[aeiou][^aeiou]id$/,Hi,""],[/.[vrl]id$/,Hi,"livid"],[/..led$/,Wi,"hurled"],[/.[iao]sed$/,Wi,""],[/[aeiou]n?[cs]ed$/,Wi,""],[/[aeiou][rl]?[mnf]ed$/,Wi,""],[/[aeiou][ns]?c?ked$/,Wi,"bunked"],[/[aeiou]gned$/,Wi],[/[aeiou][nl]?ged$/,Wi],[/.[tdbwxyz]ed$/,Wi],[/[^aeiou][aeiou][tvx]ed$/,Wi],[/.[cdflmnprstv]ied$/,Wi,"emptied"]],e:[[/.[lnr]ize$/,Ji,"antagonize"],[/.[^aeiou]ise$/,Ji,"antagonise"],[/.[aeiou]te$/,Ji,"bite"],[/.[^aeiou][ai]ble$/,Hi,"fixable"],[/.[^aeiou]eable$/,Hi,"maleable"],[/.[ts]ive$/,Hi,"festive"],[/[a-z]-like$/,Hi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Hi,"cornish"],[/.v[iy]ch$/,Zi,"..ovich"],[/^ug?h+$/,qi,"ughh"],[/^uh[ -]?oh$/,qi,"uhoh"],[/[a-z]-ish$/,Hi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Zi,"polish-male"]],k:[[/^(k){2}$/,qi,"kkkk"]],l:[[/.[gl]ial$/,Hi,"familial"],[/.[^aeiou]ful$/,Hi,"fitful"],[/.[nrtumcd]al$/,Hi,"natal"],[/.[^aeiou][ei]al$/,Hi,"familial"]],m:[[/.[^aeiou]ium$/,Mi,"magnesium"],[/[^aeiou]ism$/,Mi,"schism"],[/^[hu]m+$/,qi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Hi,"republican"],[/[^aeiou]ician$/,Ui,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,qi,"noooo"],[/^(yo)+$/,qi,"yoo"],[/^wo{2,}[pt]?$/,qi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Mi],[/[^i]fer$/,Ji],[/.[^aeiou][ao]pher$/,Ui],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Hi],[/[aeiou].*ist$/,Hi],[/^[a-z]et$/,Ri]],s:[[/.[^aeiou]ises$/,Li],[/.[rln]ates$/,Li],[/.[^z]ens$/,Ri],[/.[lstrn]us$/,Mi],[/.[aeiou]sks$/,Li],[/.[aeiou]kes$/,Li],[/[aeiou][^aeiou]is$/,Mi],[/[a-z]'s$/,Qi],[/^yes+$/,qi]],v:[[/.[^aeiou][ai][kln]ov$/,Zi]],y:[[/.[cts]hy$/,Hi],[/.[st]ty$/,Hi],[/.[tnl]ary$/,Hi],[/.[oe]ry$/,Mi],[/[rdntkbhs]ly$/,Ki],[/.(gg|bb|zz)ly$/,Hi],[/...lly$/,Ki],[/.[gk]y$/,Hi],[/[bszmp]{2}y$/,Hi],[/.[ai]my$/,Hi],[/[ea]{2}zy$/,Hi],[/.[^aeiou]ity$/,Mi]]};const Xi="Verb",Yi="Noun";var es={leftTags:[["Adjective",Yi],["Possessive",Yi],["Determiner",Yi],["Adverb",Xi],["Pronoun",Xi],["Value",Yi],["Ordinal",Yi],["Modal",Xi],["Superlative",Yi],["Demonym",Yi],["Honorific","Person"]],leftWords:[["i",Xi],["first",Yi],["it",Xi],["there",Xi],["not",Xi],["because",Yi],["if",Yi],["but",Yi],["who",Xi],["this",Yi],["his",Yi],["when",Yi],["you",Xi],["very","Adjective"],["old",Yi],["never",Xi],["before",Yi],["a","Singular"],["the",Yi],["been",Xi]],rightTags:[["Copula",Yi],["PastTense",Yi],["Conjunction",Yi],["Modal",Yi]],rightWords:[["there",Xi],["me",Xi],["man","Adjective"],["only",Xi],["him",Xi],["it",Xi],["were",Yi],["took",Yi],["himself",Xi],["went",Yi],["who",Yi],["jr","Person"]]},ts={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},ns={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},as={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},rs={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},os={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const is=/^.([0-9]+)/;var ss=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(is);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(is,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)})),t},us=/^([0-9]+)/,cs=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(us);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(us,"")]}(n[0],n[1])}))};var hs=function(e={}){return(e=Object.assign({},e)).rules=cs(e.rules),e.rules=ls(e.rules),e.rev&&(e.rev=cs(e.rev),e.rev=ls(e.rev)),e.exceptions=cs(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},ds=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const gs=hs({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ms=hs(rs),ps=hs(ns),fs=hs(as),bs=ds(gs),ys=ds(ms),vs=ds(ps),ws=ds(fs),ks=hs(ts),Ps=hs(os);var As={fromPast:gs,fromPresent:ms,fromGerund:ps,fromParticiple:fs,toPast:bs,toPresent:ys,toGerund:vs,toParticiple:ws,toComparative:ks,toSuperlative:Ps,fromComparative:ds(ks),fromSuperlative:ds(Ps)},Es=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),js=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Is=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce(((e,t)=>(e[r[t]]=t,e)),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(Gs[t].forEach((n=>e[n]=t)),e)),{});var Ns=Gs,Ds=function(e){let t=e.substring(e.length-3);if(!0===Ns.hasOwnProperty(t))return Ns[t];let n=e.substring(e.length-2);return!0===Ns.hasOwnProperty(n)?Ns[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const xs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ts=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=Ds(e)),xs.hasOwnProperty(e))c=xs[e];else if("Participle"===n)c=ss(l,i);else if("PastTense"===n)c=ss(l,a);else if("PresentTense"===n)c=ss(l,r);else{if("Gerund"!==n)return e;c=ss(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};const Cs=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ss(i,n),PresentTense:ss(i,a),Gerund:ss(i,r),FutureTense:"will "+e},u=ss(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Os=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r))return e.slice(0,n-a)+t[r.length][r]}return null};const Bs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],zs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Vs=function(e){if(zs.hasOwnProperty(e))return zs[e];let t=Os(e,Bs);return t||e+"ly"};const Fs=function(e,t){const n=t.two.models.toSuperlative;return ss(e,n)},$s=function(e,t){const n=t.two.models.toComparative;return ss(e,n)},Ss="ically",Hs=new Set(["analyt"+Ss,"chem"+Ss,"class"+Ss,"clin"+Ss,"crit"+Ss,"ecolog"+Ss,"electr"+Ss,"empir"+Ss,"frant"+Ss,"grammat"+Ss,"ident"+Ss,"ideolog"+Ss,"log"+Ss,"mag"+Ss,"mathemat"+Ss,"mechan"+Ss,"med"+Ss,"method"+Ss,"method"+Ss,"mus"+Ss,"phys"+Ss,"phys"+Ss,"polit"+Ss,"pract"+Ss,"rad"+Ss,"satir"+Ss,"statist"+Ss,"techn"+Ss,"technolog"+Ss,"theoret"+Ss,"typ"+Ss,"vert"+Ss,"whims"+Ss]),Js=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ls=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ms={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Ws=function(e){return e.endsWith("ly")?Hs.has(e)?e.replace(/ically/,"ical"):Ls.has(e)?null:Ms.hasOwnProperty(e)?Ms[e]:Os(e,Js)||e:null};const Ks=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],qs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Us=new Set(["terrible","annoying"]);var Rs={noun:{toPlural:Co,toSingular:Is,all:Co},verb:{toInfinitive:Ts,conjugate:Cs,all:function(e,t){let n=Cs(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},adjective:{toSuperlative:Fs,toComparative:$s,toAdverb:Vs,toNoun:function(e){if(qs.hasOwnProperty(e))return qs[e];if(Us.has(e))return null;let t=Os(e,Ks);return t||e+"ness"},fromAdverb:Ws,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ss(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ss(e,n)},all:function(e,t){let n=[e];return n.push(Fs(e,t)),n.push($s(e,t)),n.push(Vs(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}}},Qs={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,a);r[s]||(t[s]=t[s]||"Superlative");let l=i(e,a);r[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.noun.toPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verb.conjugate(e,a);Object.entries(o).forEach((e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,a);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Zs=function(e,t){const{methods:n,model:a}=t;let r={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Qs.hasOwnProperty(i)&&Qs[i](t,r,n,a),r[t]=r[t]||i})),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},_s=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let a=0;e.forEach(((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))return!1;let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)})),ae.endsWith(t))):"s"===t&&!el.find((t=>e.endsWith(t)))},nl={two:{quickSplit:_s,expandLexicon:Zs,transform:Rs,looksPlural:tl}},al=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const rl=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e)),{})};var ol=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=rl(n,"Infinitive","PastTense"),Object.assign(s,l),l=rl(a,"Infinitive","Verb"),Object.assign(s,l),l=rl(r,"Infinitive","Gerund"),Object.assign(s,l),l=rl(o,"Adjective","Superlative"),Object.assign(s,l),l=rl(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let il={two:{models:As}};const sl={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},ll=function(e,t){const n={model:t,methods:nl};let{lex:a,_multi:r}=nl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},ul=function(e,t,n){let a=Cs(e,il);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},cl=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach((r=>{const o=e[r];if(n[r]=sl[o],"Noun|Verb"!==o&&"Person|Verb"!==o||ul(r,a,!1),"Adj|Present"===o&&(ul(r,a,!0),function(e,t,n){let a=Fs(e,n);t[a]=t[a]||"Superlative";let r=$s(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ts(r,il,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ts(r,il,"PastTense");a[e]||(n[e]="Infinitive")}})),t=ll(n,t)};var hl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=ll(e.one.lexicon,e)).one.lexicon,e),e=cl(e.two.switches,e),e=ol(e),e=al(e)};let dl={one:{_multiCache:{},lexicon:Bo},two:{irregularPlurals:wo,models:As,suffixPatterns:zi,prefixPatterns:Si,endsWith:_i,neighbours:es,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:zo,clues:ki,uncountable:{},orgWords:Es}};dl=hl(dl);var gl=dl;const ml=/^(under|over|mis|re|un|dis|semi)-?/;var pl=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(ml.test(r.normal)){let e=r.normal.replace(ml,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},fl=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const bl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var yl=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t)))||(tl(e.normal)?fl(e,"Plural","3-plural-guess"):fl(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ds(e.normal);t&&fl(e,t,"3-verb-tense-guess")}}(a)};const vl=/^\p{Lu}[\p{Ll}'’]/u,wl=/[0-9]/,kl=["Date","Month","WeekDay","Unit"],Pl=/^[IVXLCDM]{2,}$/,Al=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,El={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var jl=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===vl.test(o)&&!1===wl.test(o)?kl.find((e=>a.tags.has(e)))?null:(yl(e,t,n),a.tags.has("Noun")||a.tags.clear(),fl(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&Pl.test(o)&&Al.test(o)&&!El[a.normal]?(fl(a,"RomanNumeral","2-xvii"),!0):null};const Il=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null};var Gl=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=Il(a.normal,n.two.suffixPatterns);if(null!==e)return fl(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=Il(a.implicit,n.two.suffixPatterns),null!==e))return fl(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const Nl=/['‘’‛‵′`´]/,Dl=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return fl(a,e,"2-prefix"),a.confidence=.5,!0}return null};const Cl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Ol=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Cl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Bl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},zl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Vl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(Ol(r)||Ol(o))return fl(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Bl(r)||Bl(o))return fl(n,"Year","2-tagYear-close");if(zl(e[t-2])||zl(e[t+2]))return fl(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return fl(n,"Year","2-tagYear-noun")}}}return null};const Fl=/^[A-Z]('s|,)?$/,$l=/^[A-Z-]+$/,Sl=/([A-Z]\.)+[A-Z]?,?$/,Hl=/[A-Z]{2,}('s|,)?$/,Jl=/([a-z]\.)+[a-z]\.?$/,Ll={I:!0,A:!0};var Ml=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===$l.test(n)||n.length>5||Ll.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Sl.test(n)&&!0!==Jl.test(n)&&!0!==Fl.test(n)&&!0!==Hl.test(n))}(a,n)?(a.tags.clear(),fl(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ll.hasOwnProperty(a.text)&&Fl.test(a.text)?(a.tags.clear(),fl(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(fl(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&$l.test(a.text)&&a.text.length<=6?(fl(a,"Acronym","3-titlecase-acronym"),!0):null};const Wl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Kl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var ql=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Wl(e[t-1],r),l=l||Wl(e[t+1],o),l=l||Kl(e[t-1],a),l=l||Kl(e[t+1],i),l)return fl(s,l,"3-[neighbour]"),yl(e,t,n),e[t].confidence=.2,!0}return null};const Ul=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Rl=function(e,t,n){const a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Ul(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Ul(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},Ql=function(e,t,n){0===e[t].tags.size&&(fl(e[t],"Noun","3-[fallback]"),yl(e,t,n),e[t].confidence=.1)};const Zl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,_l=(e,t,n)=>0!==t||e[1]?null:n,Xl={"Adj|Gerund":(e,t)=>Zl(e,t),"Adj|Noun":(e,t)=>Zl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Zl(e,t),"Adj|Present":(e,t)=>Zl(e,t),"Noun|Gerund":(e,t)=>Zl(e,t),"Noun|Verb":(e,t)=>Zl(e,t)||_l(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Zl(e,t)||_l(e,t,"PresentTense"),"Person|Noun":(e,t)=>Zl(e,t),"Person|Verb":(e,t)=>0!==t?Zl(e,t):null};var Yl=Xl;const eu="undefined"!=typeof process&&process.env?process.env:self.env||{},tu=/^(under|over|mis|re|un|dis|semi)-?/,nu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,a=null;return t.hasOwnProperty(n)&&(a=t[n]),a&&eu.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},au=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),r=a.find((e=>t[e]));return r&&eu.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${r}) `),r=t[r],r};var ru=function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(tu.test(l)&&!o[l]&&(l=l.replace(tu,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=nu(e[t+1],n.afterWords);return o=o||nu(e[t-1],n.beforeWords),o=o||au(e[t-1],n.beforeTags,r),o=o||au(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Yl[o]&&(u=Yl[o](e,t)||u),u?(r([s],u,n,null,`3-[switch] (${o})`),yl(e,t,a)):eu.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},ou=function(e,t,n){let a=e[t+1];if(!a)return;let{prefixes:r}=n.one,o=e[t];!0===r[o.normal]&&(a.tags.has("Verb")&&(fl(o,"Verb","3-[prefix]"),fl(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(fl(o,"Adjective","3-[prefix]"),fl(o,"Prefix","3-[prefix]")))};const iu={tagSwitch:pl,checkSuffix:Gl,checkRegex:xl,checkCase:jl,checkPrefix:Tl,checkHyphen:ou,checkYear:Vl},su={checkAcronym:Ml,neighbours:ql,orgWords:Rl,nounFallback:Ql,switches:ru},lu=function(e,t,n){for(let a=0;a{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var du=function(e){const t=e.world,n=Object.keys(hu);e.docs.forEach((e=>{for(let a=0;a{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=Eu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Au},Iu=function(e,t,n){let[a,r]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Gu=/'/;var Nu=function(e,t){let n=e[t].normal.split(Gu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Du=/'/;var xu=function(e,t){let n=e[t].normal.split(Du)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Tu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Cu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Ou={in:!0,by:!0,for:!0};var Bu=(e,t)=>{let n=e[t];if(Cu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let a=e[t+1];if(!a)return!0;if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return!("here"===e||"there"===e||"everywhere"===e||a.tags.has("Possessive")||a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Ou[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const zu=/'/,Vu=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Fu={d:(e,t)=>xu(e,t),t:(e,t)=>Tu(e,t),s:(e,t,n)=>Bu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Nu(e,t)},$u=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Su={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===zu.test(a[o].normal)&&([,i]=a[o].normal.split(zu));let s=null;Fu.hasOwnProperty(i)&&(s=Fu[i](a,o,t)),s&&(s=$u(s,e),Iu(n,[r,o],s),Vu(n[r],e,o,s.length))}}))}},Hu={compute:Su,api:ju,hooks:["contractionTwo"]};const Ju="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Lu=["i","we","they"];let Mu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Ju} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Ju} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Ju}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Lu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Lu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Lu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Wu=null;var Ku={postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;Wu=Wu||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(r);return o.cache(),o.sweep(Wu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const qu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ku,model:{two:{matches:Mu}},hooks:["postTagger"]};var Uu=qu,Ru=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter(((e,t)=>n.some((e=>a[t].has(e)))))},Qu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=Ru(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()},Zu={lib:{lazy:Qu}},_u=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},Xu=function(e,t,n){let a=e.split(/ /g).map((e=>`{${e}}`)).join(" "),r=this.match(a);return n&&(r=r.if(n)),r.has("#Verb")?_u(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let a=n(t);a&&e.replaceWith(a)}(r,t):r.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:a}=e.methods.two.transform.adjective;let r=t;e.has("#Comparative")?r=n(r,e.model):e.has("#Superlative")&&(r=a(r,e.model)),r&&e.replaceWith(r)}(r,t):this},Yu={api:function(e){e.prototype.swap=Xu}};return b.plugin(wu),b.plugin(Hu),b.plugin(Uu),b.plugin(Zu),b.plugin(Yu),b},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/two/compromise-two.mjs b/builds/two/compromise-two.mjs index eb5c896a8..911663714 100644 --- a/builds/two/compromise-two.mjs +++ b/builds/two/compromise-two.mjs @@ -1 +1 @@ -var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var b=f;var v=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},E=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?E(n):(E(n),E([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let I=0;const G=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var D=function(e){let[t,n]=e.index||[0,0];I+=1,I=I>46655?0:I,t=t>46655?0:t,n=n>1294?0:n;let r=G(I.toString(36));r+=G(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const x=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},T=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:T(e)?T(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=D(e),e)))}(d),n?(x(t.update([u]).firstTerm()),N(h,u,d,r)):(x(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(z,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},V.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var F=V;var $=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=$(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var L=J;var M={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(a=M.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof M[e]?(a=a.sort(M[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var Q={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}};var Z={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const _=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},B,F,H,L,U,Q,Z);var X=function(e){Object.assign(e.prototype,_)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null};var le=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,pe=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(ge);return null!==r?!0===n.tags.has("PhoneNumber")||pe.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,ve=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(be);if(null!==n){let e=n[2].toLowerCase().trim();return ve.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ee={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=je(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ee.hasOwnProperty(l)&&(c=Ee[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var Ge={model:te,compute:{contractions:Ie},hooks:["contractions"]};var De=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===xe.test(l)){let e=l.replace(xe,"");if(i.hasOwnProperty(e)&&e.length>3&&Te.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var ze={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}};var Ve={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Be}},compute:Oe,lib:ze,hooks:["lexicon"]};var Fe=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const $e=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Le=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const Me={buildTrie:function(e){const t=Fe(e,this.world());return Le(t)}};Me.compile=Me.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Fe(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Me};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},qe=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ke(n,t),Object.keys(r).forEach((e=>{r[e]=Ke(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,Ze=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var _e={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Ze(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e)){return e.fullPointer.length>0}if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ze(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Xe={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Ye=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Ye(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Ye(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},_e,Xe,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),pt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),vt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=vt(e),e=yt(e)},kt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===bt(e)&&(n.start=!0,e=vt(e)),("["===bt(e)||"]"===ft(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===bt(e)&&(n.negative=!0,e=vt(e)),"~"===bt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===bt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=vt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===bt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===bt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===bt(e)&&">"===ft(e))return e=wt(e),n.chunk=pt(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===bt(e)?(n.tag=vt(e),n.tag=pt(n.tag),n):"@"===bt(e)?(n.method=vt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var Et=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};var jt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform&&t.methods.two.transform.verbConjugate){let n=[];e.pos&&"Verb"!==e.pos||(n=n.concat(function(e,t){let{verbConjugate:n}=t.methods.two.transform;if(!n)return[];let r=n(e.root,t.model);return delete r.FutureTense,Object.values(r).filter((e=>e))}(e,t))),e.pos&&"Noun"!==e.pos||(n=n.concat(function(e,t){let{nounToPlural:n}=t.methods.two.transform,r=[e.root];return n?(r.push(n(e.root,t.model)),r):r}(e,t))),e.pos&&"Adjective"!==e.pos||(n=n.concat(function(e,t){let{adjToSuperlative:n,adjToComparative:r,adjToAdverb:a}=t.methods.two.transform,o=[e.root];return n&&r&&a?(o.push(n(e.root,t.model)),o.push(r(e.root,t.model)),o.push(a(e.root,t.model)),o):o}(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e})),e};var Nt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var It=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>Pt(e,t))),r=Et(r,n),r=jt(r,n),r=Nt(r),r};const Gt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Dt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),Vt=(e,t)=>-1!==e.pre.indexOf(t),Ft={hasQuote:e=>Tt.test(e.pre)||Ct.test(e.post),hasComma:e=>zt(e,","),hasPeriod:e=>!0===zt(e,".")&&!1===zt(e,"..."),hasExclamation:e=>zt(e,"!"),hasQuestionMark:e=>zt(e,"?")||zt(e,"¿"),hasEllipses:e=>zt(e,"..")||zt(e,"…")||Vt(e,"..")||Vt(e,"…"),hasSemicolon:e=>zt(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ot.test(e.post)||Ot.test(e.pre),hasDash:e=>Bt.test(e.post)||Bt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ft.hasQuotation=Ft.hasQuote;var $t=Ft;let St=function(){};St=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(xt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof $t[t.method]&&!0===$t[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>St(e,t,n,r))):t.choices.some((t=>St(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Ht=St;const Jt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Lt(e,e.t).length=r-e.t}return e.t=r,!0};const Wt=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Ht(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Ht(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Lt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Ut=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var Rt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Ht(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Ht(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Ht(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?Ut(e,r,t[e.r+1]):(e.t+=1,!0)};var Qt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Ht(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Ht(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Zt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var _t=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var Xt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Qt(e),r.implicit&&e.terms[e.t+1]&&_t(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Zt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Lt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var Yt=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Jt(e,a))if(e.negative){if(!Rt(a))return null}else if(!0!==Ht(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!Xt(a))return null}else{if(!Xt(a))return null}else{if(e.negative&&e.anything)return null;if(!Xt(a))return null}else{if(!qt(a))return null}else{if(!Kt(a))return null}else{if(!Mt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}};var en=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const tn=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},nn=function(e,t,n){let r=Yt(e,t,0,e.length);return r?(r=tn(r,n),r):null};var rn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=nn(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=en(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i};var an={api:ot,methods:{one:{termMethods:$t,parseMatch:It,match:rn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const on=/^\../,sn=/^#./,ln=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),on.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var un={html:function(e){let{starts:t,ends:n}=ln(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(hn,""),gn.test(a)&&(a=" "),a=a.replace(dn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(hn,""),a="-"===a?" ":a.replace(cn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&mn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},fn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};fn.clean=fn.normal,fn.reduced=fn.root;var bn=fn;let vn=[],yn=0;for(;yn<64;)vn[yn]=0|4294967296*Math.sin(++yn%Math.PI);function wn(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(yn=i=0;yn>4]+vn[i]+~~o[yn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const kn={text:!0,terms:!0};let Pn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const An=function(e,t){return Object.assign({},e,t)},En={text:e=>pn(e,{keepPunct:!0},!1),normal:e=>pn(e,An(bn.normal,{keepPunct:!0}),!1),implicit:e=>pn(e,An(bn.implicit,{keepPunct:!0}),!1),machine:e=>pn(e,Pn,!1),root:e=>pn(e,An(Pn,{form:"root"}),!1),hash:e=>wn(pn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const jn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},kn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};jn.data=jn.json;var Nn=jn;var In=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var Gn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var Dn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Gn.blue("\n ──────")),t.forEach((e=>{console.log(Gn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Gn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Gn.blue(" │ ")+Gn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Gn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))};var xn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Gn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Gn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Gn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Gn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var Tn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Gn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))};var Cn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(In(t),t):(!1!==e.tags&&(Dn(t),console.log("\n")),!0===e.chunks&&(xn(t),console.log("\n")),!0===e.highlight&&(Tn(t),console.log("\n")),t)};const On=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Bn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Vn=zn;var Fn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&bn.hasOwnProperty(e)?t=Object.assign({},bn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Ln=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Mn=function(e,t){let n=Ln(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r};var Wn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var Kn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Jn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var Rn=function(e,t){let n=Ln(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Jn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Zn=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},_n={union:function(e){e=Qn(e,this);let t=qn(this.fullPointer,e.fullPointer);return t=Zn(t,this.document),this.toView(t)}};_n.and=_n.union,_n.intersection=function(e){e=Qn(e,this);let t=Rn(this.fullPointer,e.fullPointer);return t=Zn(t,this.document),this.toView(t)},_n.not=function(e){e=Qn(e,this);let t=Un(this.fullPointer,e.fullPointer);return t=Zn(t,this.document),this.toView(t)},_n.difference=_n.not,_n.complement=function(){let e=this.all(),t=Un(e.fullPointer,this.fullPointer);return t=Zn(t,this.document),this.toView(t)},_n.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=qn(e,[t])})),e=Zn(e,this.document),this.update(e)};var Xn=function(e){Object.assign(e.prototype,_n)},Yn={methods:Kn,api:Xn};var er=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const tr=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var nr=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(tr(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(tr(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=tr(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var rr=function(e,t){e=nr(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}};var ar=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))};var or=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>t[n].has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var ir=function(e,t,n,r){let a=[];for(let o=0;o0&&(l.ptrs.forEach((e=>{e[0]=o;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),a.push(t)})),!0===r.matchOne))return[a[0]]}return a};var sr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=ar(a,t.hooks);return o=or(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),ir(o,e,n,r)};var lr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===lr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},cr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:er,methods:{one:{buildNet:rr,bulkMatch:sr,bulkTagger:ur}}};const hr=/ /,dr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},gr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),hr.test(t))!function(e,t,n,r){let a=t.split(hr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),gr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nmr(e,t,n,r)))};var pr=mr;var fr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>br({id:e}))),t}return[br({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},kr=e=>"[object Array]"===Object.prototype.toString.call(e),Pr=e=>(e=e||"").trim(),Ar=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||vr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:yr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=br({});return e.forEach((e=>{if((e=br(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(wr(t=e).forEach(br),t);var t},Er=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return wr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},jr=function(e){let t=wr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Nr={text:Er,txt:Er,array:jr,flat:jr},Ir=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Er(e,!0)),null):Nr.hasOwnProperty(t)?Nr[t](e):e},Gr=e=>{wr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Dr=/\//;let xr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Pr(e),!Dr.test(e)){let t=this.json.children.find((t=>t.id===e));return new xr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||br({});return new xr(t)}add(e,t={}){if(kr(e))return e.forEach((e=>this.add(Pr(e),t))),this;e=Pr(e);let n=br({id:e,props:t});return this.json.children.push(n),new xr(n)}remove(e){return e=Pr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return wr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=wr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return wr(this.json)}fillDown(){var e;return e=this.json,wr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else kr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Gr(this.json);let e=wr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Gr(this.json),Ir(this.json,e)}debug(){return Gr(this.json),Ir(this.json,"debug"),this}};const Tr=function(e){let t=Ar(e);return new xr(t)};Tr.prototype.plugin=function(e){e(this)};var Cr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Or=function(e){if(Cr.hasOwnProperty(e.id))return Cr[e.id];if(Cr.hasOwnProperty(e.is))return Cr[e.is];let t=e._cache.parents.find((e=>Cr[e]));return Cr[t]};var Br=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:Or(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const zr=function(e){return e?"string"==typeof e?[e]:e:[]};var Vr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=zr(e[t].children),e[t].not=zr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var Fr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Vr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Tr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Br(n)},$r={one:{setTag:pr,unTag:fr,addTags:Fr}};const Sr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Hr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Sr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Sr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Jr=Hr;var Lr=function(e){Object.assign(e.prototype,Jr)};var Mr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Wr=new Set(["Auxiliary","Possessive"]);var Kr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Wr.has(e)||!t.hasOwnProperty(n))return 1;if(Wr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},qr={model:{one:{tagSet:{}}},compute:{tagRank:Kr},methods:$r,api:Lr,lib:Mr};const Ur=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Rr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Qr=/((?:\r?\n|\r)+)/;var Zr=function(e){let t=[],n=e.split(Qr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const ta={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},na=RegExp("("+Object.keys(ta).join("|")+")","g"),ra=RegExp("("+Object.values(ta).join("|")+")","g"),aa=function(e){if(!e)return!1;let t=e.match(ra);return null!==t&&1===t.length};var oa=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var ka=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(ya);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=fa(n),n=ma(n),n=n.filter((e=>e)),n};let Pa=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Aa=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ea=/[\p{Punctuation}\s]+$/u,ja=/^[\p{Punctuation}\s]+/u,Na=/['’]/,Ia=/^[a-z]\.([a-z]\.)+/i,Ga=/^'[0-9]{2}/;var Da=function(e){let t=e,n="",r="";return e=e.replace(ja,(t=>{let r=t.match(Pa);return r?(n=t.replace(Pa,""),r):"'"===n&&Ga.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ea,(a=>{let o=a.match(Aa);return o?(r=a.replace(Aa,""),o):Na.test(a)&&/[sn]['’]$/.test(t)&&!1===Na.test(n)?(r=r.replace(Na,""),"'"):!0===Ia.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}};var xa=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")};var Ta=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Ca=/([A-Z]\.)+[A-Z]?,?$/,Oa=/^[A-Z]\.,?$/,Ba=/[A-Z]{2,}('s|,)?$/,za=/([a-z]\.)+[a-z]\.?$/;var Va=function(e){return function(e){return!0===Ca.test(e)||!0===za.test(e)||!0===Oa.test(e)||!0===Ba.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Fa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ta(r),r=n(r,t),r=Va(r),e.normal=r};var $a=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Fa(e,t)})),n})),e};const Sa=/[ .][A-Z]\.? *$/i,Ha=/(?:\u2026|\.{2,}) *$/,Ja=/\p{L}/u,La=/^[A-Z]\. $/;var Ma={one:{killUnicode:xa,tokenize:{splitSentences:ha,isSentence:function(e,t){if(!1===Ja.test(e))return!1;if(!0===Sa.test(e))return!1;if(3===e.length&&La.test(e))return!1;if(!0===Ha.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},splitTerms:ka,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Da(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:$a}}};var Wa={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ka={},qa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Ka[t]=!0,qa[t]="Abbreviation",void 0!==e[1]&&(qa[t]=[qa[t],e[1]])}))}));var Ua=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Ra={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Qa={};Object.keys(Ra).forEach((function(e){Ra[e].split("").forEach((function(t){Qa[t]=e}))}));const Za=/\//,_a=/[a-z]\.[a-z]/i,Xa=/[0-9]/;var Ya=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Za.test(n)&&!_a.test(n)&&!Xa.test(n)){let t=n.split(Za);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const eo=/^\p{Letter}+-\p{Letter}+$/u;var to=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),eo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var no=function(e){let t=e.docs,n={};for(let e=0;eio(e,Ya),machine:e=>io(e,to),normal:e=>io(e,Fa),freq:no,offset:ro,index:ao,wordCount:oo},methods:Ma,model:{one:{aliases:Wa,abbreviations:Ka,prefixes:Ua,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:qa,unicode:Qa}},hooks:["alias","machine","index","id"]};var lo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const uo=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var co=function(e){e.prototype.autoFill=uo};var ho=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const go={safe:!0,min:3};var mo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},go,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=ho(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}};var po={model:{one:{typeahead:{}}},api:co,lib:mo,compute:lo,hooks:["typeahead"]};b.extend(ee),b.extend(Hn),b.extend(an),b.extend(Yn),b.extend(qr),b.plugin(Ge),b.extend(so),b.plugin(k),b.extend(We),b.extend(po),b.extend(Ve),b.extend(cr);var fo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},bo={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const vo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",yo=vo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var wo=function(e){if(void 0!==yo[e])return yo[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var ko=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Ao(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Eo(bo[e]);Go.test(e)?Object.keys(t).forEach((t=>{if(xo[t]=e,"Noun|Verb"===e){let e=Io(t,To);xo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Do[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Do[e]="Emoticon")),delete Do[""],delete Do.null,delete Do[" "];const Co="Adjective";var Oo={beforeTags:{Determiner:Co,Possessive:Co},afterTags:{Adjective:Co},beforeWords:{seem:Co,seemed:Co,seems:Co,feel:Co,feels:Co,felt:Co,appear:Co,appears:Co,appeared:Co,also:Co,over:Co,under:Co,too:Co,it:Co,but:Co,still:Co,really:Co,quite:Co,well:Co,very:Co,deeply:Co,profoundly:Co,extremely:Co,so:Co,badly:Co,mostly:Co,totally:Co,awfully:Co,rather:Co,nothing:Co,something:Co,anything:Co,not:Co,me:Co},afterWords:{too:Co,also:Co,or:Co}};const Bo="Gerund";var zo={beforeTags:{Adverb:Bo,Preposition:Bo,Conjunction:Bo},afterTags:{Adverb:Bo,Possessive:Bo,Person:Bo,Pronoun:Bo,Determiner:Bo,Copula:Bo,Preposition:Bo,Conjunction:Bo,Comparative:Bo},beforeWords:{been:Bo,keep:Bo,continue:Bo,stop:Bo,am:Bo,be:Bo,me:Bo,began:Bo,start:Bo,starts:Bo,started:Bo,stops:Bo,stopped:Bo,help:Bo,helps:Bo,avoid:Bo,avoids:Bo,love:Bo,loves:Bo,loved:Bo,hate:Bo,hates:Bo,hated:Bo},afterWords:{you:Bo,me:Bo,her:Bo,him:Bo,them:Bo,their:Bo,it:Bo,this:Bo,there:Bo,on:Bo,about:Bo,for:Bo}};var Vo={beforeTags:Object.assign({},Oo.beforeTags,zo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Oo.afterTags,zo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Oo.beforeWords,zo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Oo.afterWords,zo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Fo="Singular";var $o={beforeTags:{Determiner:Fo,Possessive:Fo,Acronym:Fo,Noun:Fo,Adjective:Fo,PresentTense:Fo,Gerund:Fo,PastTense:Fo,Infinitive:Fo,Date:Fo},afterTags:{Value:Fo,Modal:Fo,Copula:Fo,PresentTense:Fo,PastTense:Fo,Demonym:Fo},beforeWords:{the:Fo,with:Fo,without:Fo,of:Fo,for:Fo,any:Fo,all:Fo,on:Fo,cut:Fo,cuts:Fo,save:Fo,saved:Fo,saves:Fo,make:Fo,makes:Fo,made:Fo,minus:Fo,plus:Fo,than:Fo,another:Fo,versus:Fo,neither:Fo,favorite:Fo,best:Fo,daily:Fo,weekly:Fo,linear:Fo,binary:Fo,mobile:Fo,lexical:Fo,technical:Fo,computer:Fo,scientific:Fo,formal:Fo},afterWords:{of:Fo,system:Fo,aid:Fo,method:Fo,utility:Fo,tool:Fo,reform:Fo,therapy:Fo,philosophy:Fo,room:Fo,authority:Fo,says:Fo,said:Fo,wants:Fo,wanted:Fo}};const So={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ho={beforeTags:Object.assign({},Oo.beforeTags,$o.beforeTags,So.beforeTags),afterTags:Object.assign({},Oo.afterTags,$o.afterTags),beforeWords:Object.assign({},Oo.beforeWords,$o.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Oo.afterWords,$o.afterWords)};const Jo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Lo={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Mo={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Wo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ko={beforeTags:Object.assign({},Oo.beforeTags,Jo),afterTags:Object.assign({},Oo.afterTags,Lo),beforeWords:Object.assign({},Oo.beforeWords,Mo),afterWords:Object.assign({},Oo.afterWords,Wo)};const qo="Infinitive";var Uo={beforeTags:{Modal:qo,Adverb:qo,Negative:qo,Plural:qo},afterTags:{Determiner:qo,Adverb:qo,Possessive:qo,Preposition:qo},beforeWords:{i:qo,we:qo,you:qo,they:qo,to:qo,please:qo,will:qo,have:qo,had:qo,would:qo,could:qo,should:qo,do:qo,did:qo,does:qo,can:qo,must:qo,us:qo,me:qo,he:qo,she:qo,it:qo,being:qo},afterWords:{the:qo,me:qo,you:qo,him:qo,her:qo,them:qo,it:qo,a:qo,an:qo,up:qo,down:qo,by:qo,out:qo,off:qo,under:qo,when:qo,all:qo,to:qo,because:qo,although:qo,before:qo,how:qo,otherwise:qo,together:qo,though:qo,yet:qo}};const Ro={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Qo={beforeTags:Object.assign({},Oo.beforeTags,Uo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Oo.afterTags,Uo.afterTags,Ro.afterTags),beforeWords:Object.assign({},Oo.beforeWords,Uo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Oo.afterWords,Uo.afterWords,{to:void 0})};const Zo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},_o={},Xo={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},Yo={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ei={beforeTags:Object.assign({},zo.beforeTags,$o.beforeTags,Zo),afterTags:Object.assign({},zo.afterTags,$o.afterTags,_o),beforeWords:Object.assign({},zo.beforeWords,$o.beforeWords,Xo),afterWords:Object.assign({},zo.afterWords,$o.afterWords,Yo)};var ti={beforeTags:Object.assign({},Uo.beforeTags,$o.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Uo.afterTags,$o.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Uo.beforeWords,$o.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Uo.afterWords,$o.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ni="Person";var ri={beforeTags:{Honorific:ni,Person:ni,Preposition:ni},afterTags:{Person:ni,ProperNoun:ni,Verb:ni},ownTags:{ProperNoun:ni},beforeWords:{hi:ni,hey:ni,yo:ni,dear:ni,hello:ni},afterWords:{said:ni,says:ni,told:ni,tells:ni,feels:ni,felt:ni,seems:ni,thinks:ni,thought:ni,spends:ni,spendt:ni,plays:ni,played:ni,sing:ni,sang:ni,learn:ni,learned:ni,wants:ni,wanted:ni}};const ai="Month",oi={beforeTags:{Date:ai,Value:ai},afterTags:{Date:ai,Value:ai},beforeWords:{by:ai,in:ai,on:ai,during:ai,after:ai,before:ai,between:ai,until:ai,til:ai,sometime:ai,of:ai,this:ai,next:ai,last:ai,previous:ai,following:ai},afterWords:{sometime:ai,in:ai,of:ai,until:ai,the:ai}};var ii={beforeTags:Object.assign({},ri.beforeTags,oi.beforeTags),afterTags:Object.assign({},ri.afterTags,oi.afterTags),beforeWords:Object.assign({},ri.beforeWords,oi.beforeWords),afterWords:Object.assign({},ri.afterWords,oi.afterWords)};const si={Place:"Place"},li={Place:"Place",Abbreviation:"Place"},ui={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},ci={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let hi="Unit";const di="Honorific";let gi={first:di,general:di,royal:di,vice:di,rear:di,major:di};const mi={"Adj|Gerund":Vo,"Adj|Noun":Ho,"Adj|Past":Ko,"Adj|Present":Qo,"Noun|Verb":ti,"Noun|Gerund":ei,"Person|Noun":{beforeTags:Object.assign({},$o.beforeTags,ri.beforeTags),afterTags:Object.assign({},$o.afterTags,ri.afterTags),beforeWords:Object.assign({},$o.beforeWords,ri.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},$o.afterWords,ri.afterWords)},"Person|Date":ii,"Person|Verb":{beforeTags:Object.assign({},ri.beforeTags,Uo.beforeTags),afterTags:Object.assign({},ri.afterTags,Uo.afterTags),beforeWords:Object.assign({},ri.beforeWords,Uo.beforeWords),afterWords:Object.assign({},ri.afterWords,Uo.afterWords)},"Person|Place":{beforeTags:Object.assign({},si,ri.beforeTags),afterTags:Object.assign({},li,ri.afterTags),beforeWords:Object.assign({},ui,ri.beforeWords),afterWords:Object.assign({},ci,ri.afterWords)},"Unit|Noun":{beforeTags:{Value:hi},afterTags:{},beforeWords:{per:hi,every:hi,each:hi,square:hi,cubic:hi,sq:hi,metric:hi},afterWords:{per:hi,squared:hi,cubed:hi,long:hi}},"Honorific|Noun":{beforeTags:{Honorific:di,ProperNoun:di,Ordinal:di},afterTags:{Person:di,ProperNoun:di},beforeWords:Object.assign({},gi,{honorable:di,honourable:di,worship:di,excellency:di,majesty:di,right:di}),afterWords:gi}},pi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};mi["Plural|Verb"]={beforeWords:pi(mi["Noun|Verb"].beforeWords,{}),afterWords:pi(mi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:pi(mi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:pi(mi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var fi=mi;const bi="Adjective",vi="Infinitive",yi="PresentTense",wi="Singular",ki="PastTense",Pi="Adverb",Ai="Plural",Ei="Verb",ji="LastName",Ni="Participle";var Ii=[null,null,{ea:wi,ia:"Noun",ic:bi,ly:Pi,"'n":Ei,"'t":Ei},{oed:ki,ued:ki,xed:ki," so":Pi,"'ll":"Modal","'re":"Copula",azy:bi,eer:"Noun",end:Ei,ped:ki,ffy:bi,ify:vi,ing:"Gerund",ize:vi,ibe:vi,lar:bi,mum:bi,nes:yi,nny:bi,ous:bi,que:bi,rol:wi,sis:wi,ogy:wi,oid:wi,ian:wi,zes:yi,eld:ki,ken:Ni,ven:Ni,ten:Ni,ect:vi,ict:vi,ign:vi,ful:bi,bal:bi},{amed:ki,aped:ki,ched:ki,lked:ki,rked:ki,reed:ki,nded:ki,mned:bi,cted:ki,dged:ki,ield:wi,akis:ji,cede:vi,chuk:ji,czyk:ji,ects:yi,ends:Ei,enko:ji,ette:wi,wner:wi,fies:yi,fore:Pi,gate:vi,gone:bi,ices:Ai,ints:Ai,ruct:vi,ines:Ai,ions:Ai,less:bi,llen:bi,made:bi,nsen:ji,oses:yi,ould:"Modal",some:bi,sson:ji,tion:wi,tage:"Noun",ique:wi,tive:bi,tors:"Noun",vice:wi,lier:wi,fier:wi,wned:ki,gent:wi,tist:wi,pist:wi,rist:wi,mist:wi,yist:wi,vist:wi,lite:wi,site:wi,rite:wi,mite:wi,bite:wi,mate:wi,date:wi,ndal:wi,vent:wi,uist:wi,gist:wi,note:wi,cide:wi,wide:bi,vide:vi,ract:vi,duce:vi,pose:vi,eive:vi,lyze:vi,lyse:vi,iant:bi,nary:bi},{elist:wi,holic:wi,phite:wi,tized:ki,urned:ki,eased:ki,ances:Ai,bound:bi,ettes:Ai,fully:Pi,ishes:yi,ities:Ai,marek:ji,nssen:ji,ology:"Noun",osome:wi,tment:wi,ports:Ai,rough:bi,tches:yi,tieth:"Ordinal",tures:Ai,wards:Pi,where:Pi,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:wi,scent:wi,onist:wi,anist:wi,alist:wi,olist:wi,icist:wi,ounce:vi,iable:bi,borne:bi,gnant:bi,inant:bi,igent:bi,atory:bi,rient:wi,dient:wi},{auskas:ji,parent:wi,cedent:wi,ionary:wi,cklist:wi,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:ji,borough:"Place",sdottir:ji}];const Gi="Adjective";var Di=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Gi,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Gi,tele:"Noun","pro-":Gi,"mis-":"Verb","dis-":"Verb","pre-":Gi},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Gi,radio:"Noun",tetra:"Noun","omni-":Gi,"post-":Gi},{pseudo:Gi,"extra-":Gi,"hyper-":Gi,"inter-":Gi,"intra-":Gi,"deca-":Gi},{electro:"Noun"}];const xi="Adjective",Ti="Infinitive",Ci="PresentTense",Oi="Singular",Bi="PastTense",zi="Expression",Vi="LastName";var Fi={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Vi],[/.[^aeiou]ica$/,Oi,"harmonica"],[/^([hyj]a+)+$/,zi,"haha"]],c:[[/.[^aeiou]ic$/,xi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Bi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Bi,"rammed"],[/.[aeiou][sg]hed$/,Bi,"gushed"],[/.[aeiou]red$/,Bi,"hired"],[/.[aeiou]r?ried$/,Bi,"hurried"],[/[^aeiou]ard$/,Oi,"steward"],[/[aeiou][^aeiou]id$/,xi,""],[/.[vrl]id$/,xi,"livid"],[/..led$/,Bi,"hurled"],[/.[iao]sed$/,Bi,""],[/[aeiou]n?[cs]ed$/,Bi,""],[/[aeiou][rl]?[mnf]ed$/,Bi,""],[/[aeiou][ns]?c?ked$/,Bi,"bunked"],[/[aeiou]gned$/,Bi],[/[aeiou][nl]?ged$/,Bi],[/.[tdbwxyz]ed$/,Bi],[/[^aeiou][aeiou][tvx]ed$/,Bi],[/.[cdflmnprstv]ied$/,Bi,"emptied"]],e:[[/.[lnr]ize$/,Ti,"antagonize"],[/.[^aeiou]ise$/,Ti,"antagonise"],[/.[aeiou]te$/,Ti,"bite"],[/.[^aeiou][ai]ble$/,xi,"fixable"],[/.[^aeiou]eable$/,xi,"maleable"],[/.[ts]ive$/,xi,"festive"],[/[a-z]-like$/,xi,"woman-like"]],h:[[/.[^aeiouf]ish$/,xi,"cornish"],[/.v[iy]ch$/,Vi,"..ovich"],[/^ug?h+$/,zi,"ughh"],[/^uh[ -]?oh$/,zi,"uhoh"],[/[a-z]-ish$/,xi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Vi,"polish-male"]],k:[[/^(k){2}$/,zi,"kkkk"]],l:[[/.[gl]ial$/,xi,"familial"],[/.[^aeiou]ful$/,xi,"fitful"],[/.[nrtumcd]al$/,xi,"natal"],[/.[^aeiou][ei]al$/,xi,"familial"]],m:[[/.[^aeiou]ium$/,Oi,"magnesium"],[/[^aeiou]ism$/,Oi,"schism"],[/^[hu]m+$/,zi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,xi,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,zi,"noooo"],[/^(yo)+$/,zi,"yoo"],[/^wo{2,}[pt]?$/,zi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Oi],[/[^i]fer$/,Ti],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,xi],[/[aeiou].*ist$/,xi],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Ci],[/.[rln]ates$/,Ci],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Oi],[/.[aeiou]sks$/,Ci],[/.[aeiou]kes$/,Ci],[/[aeiou][^aeiou]is$/,Oi],[/[a-z]'s$/,"Noun"],[/^yes+$/,zi]],v:[[/.[^aeiou][ai][kln]ov$/,Vi]],y:[[/.[cts]hy$/,xi],[/.[st]ty$/,xi],[/.[tnl]ary$/,xi],[/.[oe]ry$/,Oi],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,xi],[/...lly$/,"Adverb"],[/.[gk]y$/,xi],[/[bszmp]{2}y$/,xi],[/.[ai]my$/,xi],[/[ea]{2}zy$/,xi],[/.[^aeiou]ity$/,Oi]]};const $i="Verb",Si="Noun";var Hi={leftTags:[["Adjective",Si],["Possessive",Si],["Determiner",Si],["Adverb",$i],["Pronoun",$i],["Value",Si],["Ordinal",Si],["Modal",$i],["Superlative",Si],["Demonym",Si],["Honorific","Person"]],leftWords:[["i",$i],["first",Si],["it",$i],["there",$i],["not",$i],["because",Si],["if",Si],["but",Si],["who",$i],["this",Si],["his",Si],["when",Si],["you",$i],["very","Adjective"],["old",Si],["never",$i],["before",Si],["a","Singular"],["the",Si],["been",$i]],rightTags:[["Copula",Si],["PastTense",Si],["Conjunction",Si],["Modal",Si]],rightWords:[["there",$i],["me",$i],["man","Adjective"],["only",$i],["him",$i],["it",$i],["were",Si],["took",Si],["himself",$i],["went",Si],["who",Si],["jr","Person"]]},Ji={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Li={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Mi={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Wi={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Ki={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const qi=/^.([0-9]+)/;var Ui=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(qi);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(qi,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},Qi=/^([0-9]+)/,Zi=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Qi);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Qi,"")]}(n[0],n[1])}))};var _i=function(e={}){return(e=Object.assign({},e)).rules=Zi(e.rules),e.rules=Ri(e.rules),e.rev&&(e.rev=Zi(e.rev),e.rev=Ri(e.rev)),e.exceptions=Zi(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e};var Xi=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const Yi=_i({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),es=_i(Wi),ts=_i(Li),ns=_i(Mi),rs=Xi(Yi),as=Xi(es),os=Xi(ts),is=Xi(ns),ss=_i(Ji),ls=_i(Ki);var us={fromPast:Yi,fromPresent:es,fromGerund:ts,fromParticiple:ns,toPast:rs,toPresent:as,toGerund:os,toParticiple:is,toComparative:ss,toSuperlative:ls,fromComparative:Xi(ss),fromSuperlative:Xi(ls)},cs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),hs=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var ds=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(gs[t].forEach((n=>e[n]=t)),e)),{});var ms=gs;var ps=function(e){let t=e.substring(e.length-3);if(!0===ms.hasOwnProperty(t))return ms[t];let n=e.substring(e.length-2);return!0===ms.hasOwnProperty(n)?ms[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const fs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var bs=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=ps(e)),fs.hasOwnProperty(e))c=fs[e];else if("Participle"===n)c=Ui(l,i);else if("PastTense"===n)c=Ui(l,r);else if("PresentTense"===n)c=Ui(l,a);else{if("Gerund"!==n)return e;c=Ui(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var vs=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Ui(i,n),PresentTense:Ui(i,r),Gerund:Ui(i,a),FutureTense:"will "+e},u=Ui(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var ys=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const ws="ically",ks=new Set(["analyt"+ws,"chem"+ws,"class"+ws,"clin"+ws,"crit"+ws,"ecolog"+ws,"electr"+ws,"empir"+ws,"frant"+ws,"grammat"+ws,"ident"+ws,"ideolog"+ws,"log"+ws,"mag"+ws,"mathemat"+ws,"mechan"+ws,"med"+ws,"method"+ws,"method"+ws,"mus"+ws,"phys"+ws,"phys"+ws,"polit"+ws,"pract"+ws,"rad"+ws,"satir"+ws,"statist"+ws,"techn"+ws,"technolog"+ws,"theoret"+ws,"typ"+ws,"vert"+ws,"whims"+ws]),Ps=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],As=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Es={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var js=function(e){return e.endsWith("ly")?ks.has(e)?e.replace(/ically/,"ical"):As.has(e)?null:Es.hasOwnProperty(e)?Es[e]:ys(e,Ps)||e:null};const Ns=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Is={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Gs=function(e){if(Is.hasOwnProperty(e))return Is[e];let t=ys(e,Ns);return t||e+"ly"};const Ds=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],xs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Ts=new Set(["terrible","annoying"]);const Cs=function(e,t){const n=t.two.models.toSuperlative;return Ui(e,n)},Os=function(e,t){const n=t.two.models.toComparative;return Ui(e,n)};var Bs={nounToPlural:Io,nounToSingular:ds,verbToInfinitive:bs,getTense:ps,verbConjugate:vs,adjToSuperlative:Cs,adjToComparative:Os,adjFromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Ui(e,n)},adjFromComparative:function(e,t){const n=t.two.models.fromComparative;return Ui(e,n)},advToAdjective:js,adjToAdverb:Gs,adjToNoun:function(e){if(xs.hasOwnProperty(e))return xs[e];if(Ts.has(e))return null;let t=ys(e,Ds);return t||e+"ness"}},zs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.nounToPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.adjToSuperlative(e,r);a[o]||(t[o]=t[o]||"Superlative");let i=n.two.transform.adjToComparative(e,r);a[i]||(t[i]=t[i]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.nounToPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verbConjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verbConjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Vs=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===zs.hasOwnProperty(i)&&zs[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var Fs=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Hs.find((t=>e.endsWith(t)))},Ls={two:{quickSplit:Fs,expandLexicon:Vs,transform:Bs,looksPlural:Js}};var Ms=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const Ws=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var Ks=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Ws(n,"Infinitive","PastTense"),Object.assign(s,l),l=Ws(r,"Infinitive","Verb"),Object.assign(s,l),l=Ws(a,"Infinitive","Gerund"),Object.assign(s,l),l=Ws(o,"Adjective","Superlative"),Object.assign(s,l),l=Ws(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let qs={two:{models:us}};const Us={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},Rs=function(e,t){const n={model:t,methods:Ls};let{lex:r,_multi:a}=Ls.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Qs=function(e,t,n){let r=vs(e,qs);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Zs=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=Us[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Qs(a,r,!1),"Adj|Present"===o&&(Qs(a,r,!0),function(e,t,n){let r=Cs(e,n);t[r]=t[r]||"Superlative";let a=Os(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=bs(a,qs,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=bs(a,qs,"PastTense");r[e]||(n[e]="Infinitive")}})),t=Rs(n,t)};var _s=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=Rs(e.one.lexicon,e)).one.lexicon,e),e=Zs(e.two.switches,e),e=Ks(e),e=Ms(e)};let Xs={one:{_multiCache:{},lexicon:Do},two:{irregularPlurals:fo,models:us,suffixPatterns:Ii,prefixPatterns:Di,endsWith:Fi,neighbours:Hi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:xo,clues:fi,uncountable:{},orgWords:cs}};Xs=_s(Xs);var Ys=Xs;const el=/^(under|over|mis|re|un|dis|semi)-?/;var tl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(el.test(a.normal)){let e=a.normal.replace(el,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var nl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const rl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var al=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(Js(e.normal)?nl(e,"Plural","3-plural-guess"):nl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ps(e.normal);t&&nl(e,t,"3-verb-tense-guess")}}(r)};const ol=/^\p{Lu}[\p{Ll}'’]/u,il=/[0-9]/,sl=["Date","Month","WeekDay","Unit"],ll=/^[IVXLCDM]{2,}$/,ul=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,cl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var hl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===ol.test(o)&&!1===il.test(o)?sl.find((e=>r.tags.has(e)))?null:(al(e,t,n),r.tags.has("Noun")||r.tags.clear(),nl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&ll.test(o)&&ul.test(o)&&!cl[r.normal]?(nl(r,"RomanNumeral","2-xvii"),!0):null};const dl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var gl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=dl(r.normal,n.two.suffixPatterns);if(null!==e)return nl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=dl(r.implicit,n.two.suffixPatterns),null!==e))return nl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const ml=/['‘’‛‵′`´]/,pl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return nl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const vl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),yl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!vl.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},wl=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},kl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Pl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(yl(a)||yl(o))return nl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(wl(a)||wl(o))return nl(n,"Year","2-tagYear-close");if(kl(e[t-2])||kl(e[t+2]))return nl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return nl(n,"Year","2-tagYear-noun")}}}return null};const Al=/^[A-Z]('s|,)?$/,El=/^[A-Z-]+$/,jl=/([A-Z]\.)+[A-Z]?,?$/,Nl=/[A-Z]{2,}('s|,)?$/,Il=/([a-z]\.)+[a-z]\.?$/,Gl={I:!0,A:!0};var Dl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===El.test(n)||n.length>5||Gl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==jl.test(n)&&!0!==Il.test(n)&&!0!==Al.test(n)&&!0!==Nl.test(n))}(r,n)?(r.tags.clear(),nl(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Gl.hasOwnProperty(r.text)&&Al.test(r.text)?(r.tags.clear(),nl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(nl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&El.test(r.text)&&r.text.length<=6?(nl(r,"Acronym","3-titlecase-acronym"),!0):null};const xl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Tl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Cl=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||xl(e[t-1],a),l=l||xl(e[t+1],o),l=l||Tl(e[t-1],r),l=l||Tl(e[t+1],i),l)return nl(s,l,"3-[neighbour]"),al(e,t,n),e[t].confidence=.2,!0}return null};const Ol=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Bl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Ol(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ol(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var zl=function(e,t,n){0===e[t].tags.size&&(nl(e[t],"Noun","3-[fallback]"),al(e,t,n),e[t].confidence=.1)};const Vl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Fl=(e,t,n)=>0!==t||e[1]?null:n,$l={"Adj|Gerund":(e,t)=>Vl(e,t),"Adj|Noun":(e,t)=>Vl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Vl(e,t),"Adj|Present":(e,t)=>Vl(e,t),"Noun|Gerund":(e,t)=>Vl(e,t),"Noun|Verb":(e,t)=>Vl(e,t)||Fl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Vl(e,t)||Fl(e,t,"PresentTense"),"Person|Noun":(e,t)=>Vl(e,t),"Person|Verb":(e,t)=>0!==t?Vl(e,t):null};var Sl=$l;const Hl="undefined"!=typeof process&&process.env?process.env:self.env||{},Jl=/^(under|over|mis|re|un|dis|semi)-?/,Ll=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Hl.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ml=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&Hl.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var Wl=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Jl.test(l)&&!o[l]&&(l=l.replace(Jl,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Ll(e[t+1],n.afterWords);return o=o||Ll(e[t-1],n.beforeWords),o=o||Ml(e[t-1],n.beforeTags,a),o=o||Ml(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Sl[o]&&(u=Sl[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),al(e,t,r)):Hl.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};var Kl=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(nl(o,"Verb","3-[prefix]"),nl(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(nl(o,"Adjective","3-[prefix]"),nl(o,"Prefix","3-[prefix]")))};const ql={tagSwitch:tl,checkSuffix:gl,checkRegex:fl,checkCase:hl,checkPrefix:bl,checkHyphen:Kl,checkYear:Pl},Ul={checkAcronym:Dl,neighbours:Cl,orgWords:Bl,nounFallback:zl,switches:Wl},Rl=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.nounToSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verbToInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verbToInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjFromSuperlative(n,t.model)},Adverb:(e,t)=>(0,t.methods.two.transform.advToAdjective)(e.machine||e.normal||e.text)};var Xl=function(e){const t=e.world,n=Object.keys(_l);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=cu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=uu};var du=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const gu=/'/;var mu=function(e,t){let n=e[t].normal.split(gu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const pu=/'/;var fu=function(e,t){let n=e[t].normal.split(pu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var bu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const vu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},yu={in:!0,by:!0,for:!0};var wu=(e,t)=>{let n=e[t];if(vu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===yu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const ku=/'/,Pu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Au={d:(e,t)=>fu(e,t),t:(e,t)=>bu(e,t),s:(e,t,n)=>wu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):mu(e,t)},Eu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var ju={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===ku.test(r[o].normal)&&([,i]=r[o].normal.split(ku));let s=null;Au.hasOwnProperty(i)&&(s=Au[i](r,o,t)),s&&(s=Eu(s,e),du(n,[a,o],s),Pu(n[a],e,o,s.length))}}))}},Nu={compute:ju,api:hu,hooks:["contractionTwo"]};const Iu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const Gu=["i","we","they"];let Du=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Iu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Iu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Iu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Gu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Gu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Gu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let xu=null;var Tu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;xu=xu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(xu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Cu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Tu,model:{two:{matches:Du}},hooks:["postTagger"]};var Ou=Cu;var Bu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var zu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Bu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Vu={lib:{lazy:zu}};var Fu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verbConjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var $u=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Fu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.nounToPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){let n=(0,e.methods.two.transform.adjToAdverb)(t);n&&e.replaceWith(n)}(a,t):a.has("#Adjective")?function(e,t){const{adjToComparative:n,adjToSuperlative:r}=e.methods.two.transform;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Su={api:function(e){e.prototype.swap=$u}};b.plugin(iu),b.plugin(Nu),b.plugin(Ou),b.plugin(Vu),b.plugin(Su);export{b as default}; +var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var b=f;var v=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},E=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?E(n):(E(n),E([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let I=0;const G=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var D=function(e){let[t,n]=e.index||[0,0];I+=1,I=I>46655?0:I,t=t>46655?0:t,n=n>1294?0:n;let r=G(I.toString(36));r+=G(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const x=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},T=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:T(e)?T(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=D(e),e)))}(d),n?(x(t.update([u]).firstTerm()),N(h,u,d,r)):(x(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(z,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},V.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var F=V;var $=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=$(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var L=J;var M={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(a=M.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof M[e]?(a=a.sort(M[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var Q={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}};var Z={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const _=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},B,F,H,L,U,Q,Z);var X=function(e){Object.assign(e.prototype,_)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null};var le=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,pe=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(ge);return null!==r?!0===n.tags.has("PhoneNumber")||pe.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,ve=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(be);if(null!==n){let e=n[2].toLowerCase().trim();return ve.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ee={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=je(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ee.hasOwnProperty(l)&&(c=Ee[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var Ge={model:te,compute:{contractions:Ie},hooks:["contractions"]};var De=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===xe.test(l)){let e=l.replace(xe,"");if(i.hasOwnProperty(e)&&e.length>3&&Te.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var ze={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}};var Ve={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Be}},compute:Oe,lib:ze,hooks:["lexicon"]};var Fe=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const $e=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Le=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const Me={buildTrie:function(e){const t=Fe(e,this.world());return Le(t)}};Me.compile=Me.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Fe(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Me};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},qe=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ke(n,t),Object.keys(r).forEach((e=>{r[e]=Ke(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,Ze=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var _e={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Ze(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e)){return e.fullPointer.length>0}if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ze(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Xe={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Ye=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Ye(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Ye(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},_e,Xe,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),pt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),vt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=vt(e),e=yt(e)},kt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===bt(e)&&(n.start=!0,e=vt(e)),("["===bt(e)||"]"===ft(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===bt(e)&&(n.negative=!0,e=vt(e)),"~"===bt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===bt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=vt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===bt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===bt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===bt(e)&&">"===ft(e))return e=wt(e),n.chunk=pt(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===bt(e)?(n.tag=vt(e),n.tag=pt(n.tag),n):"@"===bt(e)?(n.method=vt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var Et=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},It=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Gt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(It(e,t))):(n=n.concat(jt(e,t)),n=n.concat(Nt(e,t)),n=n.concat(It(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var Dt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var xt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>Pt(e,t))),r=Et(r,n),r=Gt(r,n),r=Dt(r),r};const Tt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Bt.test(e.pre)||zt.test(e.post),hasComma:e=>$t(e,","),hasPeriod:e=>!0===$t(e,".")&&!1===$t(e,"..."),hasExclamation:e=>$t(e,"!"),hasQuestionMark:e=>$t(e,"?")||$t(e,"¿"),hasEllipses:e=>$t(e,"..")||$t(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>$t(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Vt.test(e.post)||Vt.test(e.pre),hasDash:e=>Ft.test(e.post)||Ft.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Jt=Ht;let Lt=function(){};Lt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Jt[t.method]&&!0===Jt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Lt(e,t,n,r))):t.choices.some((t=>Lt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Mt=Lt;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Kt(e,e.t).length=r-e.t}return e.t=r,!0};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Mt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Mt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Kt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Zt=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var _t=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Mt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Mt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Mt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?Zt(e,r,t[e.r+1]):(e.t+=1,!0)};var Xt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Mt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Mt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Yt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Xt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Yt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Kt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Wt(e,a))if(e.negative){if(!_t(a))return null}else if(!0!==Mt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!tn(a))return null}else{if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else{if(!Qt(a))return null}else{if(!Rt(a))return null}else{if(!qt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}};var rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i};var ln={api:ot,methods:{one:{termMethods:Jt,parseMatch:xt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(a)&&(a=" "),a=a.replace(pn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(gn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&bn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let kn=[],Pn=0;for(;Pn<64;)kn[Pn]=0|4294967296*Math.sin(++Pn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Pn=i=0;Pn>4]+kn[i]+~~o[Pn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const En={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},In={text:e=>vn(e,{keepPunct:!0},!1),normal:e=>vn(e,Nn(wn.normal,{keepPunct:!0}),!1),implicit:e=>vn(e,Nn(wn.implicit,{keepPunct:!0}),!1),machine:e=>vn(e,jn,!1),root:e=>vn(e,Nn(jn,{form:"root"}),!1),hash:e=>An(vn(e,{keepPunct:!0},!1)),offset:e=>{let t=In.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};In.sentences=In.sentence,In.clean=In.normal,In.reduced=In.root;const Gn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},En,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&In[o]&&(a[o]=In[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};Gn.data=Gn.json;var Dn=Gn;var xn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var Tn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var Cn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Tn.blue("\n ──────")),t.forEach((e=>{console.log(Tn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Tn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Tn.blue(" │ ")+Tn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Tn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))};var On=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Tn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Tn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Tn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Tn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Tn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))};var zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(xn(t),t):(!1!==e.tags&&(Cn(t),console.log("\n")),!0===e.chunks&&(On(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const Vn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Fn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Sn=$n;var Hn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Kn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var qn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r};var Un=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var Rn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Wn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var _n=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Wn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Yn=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},er={union:function(e){e=Xn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)}};er.and=er.union,er.intersection=function(e){e=Xn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.not=function(e){e=Xn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.difference=er.not,er.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Qn(e,[t])})),e=Yn(e,this.document),this.update(e)};var tr=function(e){Object.assign(e.prototype,er)},nr={methods:Rn,api:tr};var rr=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const ar=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var or=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(ar(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(ar(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=ar(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var ir=function(e,t){e=or(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}};var sr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))};var lr=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var ur=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o};var cr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=sr(a,t.hooks);return o=lr(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),ur(o,e,a,n,r)};var hr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===hr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},gr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:rr,methods:{one:{buildNet:ir,bulkMatch:cr,bulkTagger:dr}}};const mr=/ /,pr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},fr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),mr.test(t))!function(e,t,n,r){let a=t.split(mr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),fr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var vr=br;var yr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>wr({id:e}))),t}return[wr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},Er=e=>"[object Array]"===Object.prototype.toString.call(e),jr=e=>(e=e||"").trim(),Nr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||kr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Pr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=wr({});return e.forEach((e=>{if((e=wr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ar(t=e).forEach(wr),t);var t},Ir=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Ar(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Gr=function(e){let t=Ar(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Dr={text:Ir,txt:Ir,array:Gr,flat:Gr},xr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ir(e,!0)),null):Dr.hasOwnProperty(t)?Dr[t](e):e},Tr=e=>{Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Cr=/\//;let Or=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=jr(e),!Cr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Or(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||wr({});return new Or(t)}add(e,t={}){if(Er(e))return e.forEach((e=>this.add(jr(e),t))),this;e=jr(e);let n=wr({id:e,props:t});return this.json.children.push(n),new Or(n)}remove(e){return e=jr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ar(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ar(this.json)}fillDown(){var e;return e=this.json,Ar(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Er(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Tr(this.json);let e=Ar(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Tr(this.json),xr(this.json,e)}debug(){return Tr(this.json),xr(this.json,"debug"),this}};const Br=function(e){let t=Nr(e);return new Or(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Vr=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Fr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:Vr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const $r=function(e){return e?"string"==typeof e?[e]:e:[]};var Sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=$r(e[t].children),e[t].not=$r(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var Hr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Sr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Fr(n)},Jr={one:{setTag:vr,unTag:yr,addTags:Hr}};const Lr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Mr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Lr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Lr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Wr=Mr;var Kr=function(e){Object.assign(e.prototype,Wr)};var qr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Ur=new Set(["Auxiliary","Possessive"]);var Rr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Ur.has(e)||!t.hasOwnProperty(n))return 1;if(Ur.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Qr={model:{one:{tagSet:{}}},compute:{tagRank:Rr},methods:Jr,api:Kr,lib:qr};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,_r=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var Yr=function(e){let t=[],n=e.split(Xr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const aa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},oa=RegExp("("+Object.keys(aa).join("|")+")","g"),ia=RegExp("("+Object.values(aa).join("|")+")","g"),sa=function(e){if(!e)return!1;let t=e.match(ia);return null!==t&&1===t.length};var la=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Ea=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Pa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=ya(n),n=ba(n),n=n.filter((e=>e)),n};let ja=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Na=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ia=/[\p{Punctuation}\s]+$/u,Ga=/^[\p{Punctuation}\s]+/u,Da=/['’]/,xa=/^[a-z]\.([a-z]\.)+/i,Ta=/^'[0-9]{2}/;var Ca=function(e){let t=e,n="",r="";return e=e.replace(Ga,(t=>{let r=t.match(ja);return r?(n=t.replace(ja,""),r):"'"===n&&Ta.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ia,(a=>{let o=a.match(Na);return o?(r=a.replace(Na,""),o):Da.test(a)&&/[sn]['’]$/.test(t)&&!1===Da.test(n)?(r=r.replace(Da,""),"'"):!0===xa.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}};var Oa=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")};var Ba=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const za=/([A-Z]\.)+[A-Z]?,?$/,Va=/^[A-Z]\.,?$/,Fa=/[A-Z]{2,}('s|,)?$/,$a=/([a-z]\.)+[a-z]\.?$/;var Sa=function(e){return function(e){return!0===za.test(e)||!0===$a.test(e)||!0===Va.test(e)||!0===Fa.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ha=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ba(r),r=n(r,t),r=Sa(r),e.normal=r};var Ja=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Ha(e,t)})),n})),e};const La=/[ .][A-Z]\.? *$/i,Ma=/(?:\u2026|\.{2,}) *$/,Wa=/\p{L}/u,Ka=/^[A-Z]\. $/;var qa={one:{killUnicode:Oa,tokenize:{splitSentences:ma,isSentence:function(e,t){if(!1===Wa.test(e))return!1;if(!0===La.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===Ma.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},splitTerms:Ea,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ca(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Ja}}};var Ua={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ra={},Qa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Ra[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])}))}));var Za=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let _a={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Xa={};Object.keys(_a).forEach((function(e){_a[e].split("").forEach((function(t){Xa[t]=e}))}));const Ya=/\//,eo=/[a-z]\.[a-z]/i,to=/[0-9]/;var no=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Ya.test(n)&&!eo.test(n)&&!to.test(n)){let t=n.split(Ya);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ro=/^\p{Letter}+-\p{Letter}+$/u;var ao=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ro.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var oo=function(e){let t=e.docs,n={};for(let e=0;euo(e,no),machine:e=>uo(e,ao),normal:e=>uo(e,Ha),freq:oo,offset:io,index:so,wordCount:lo},methods:qa,model:{one:{aliases:Ua,abbreviations:Ra,prefixes:Za,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Qa,unicode:Xa}},hooks:["alias","machine","index","id"]};var ho={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var mo=function(e){e.prototype.autoFill=go};var po=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const fo={safe:!0,min:3};var bo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},fo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=po(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}};var vo={model:{one:{typeahead:{}}},api:mo,lib:bo,compute:ho,hooks:["typeahead"]};b.extend(ee),b.extend(Mn),b.extend(ln),b.extend(nr),b.extend(Qr),b.plugin(Ge),b.extend(co),b.plugin(k),b.extend(We),b.extend(vo),b.extend(Ve),b.extend(gr);var yo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},wo={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const ko="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Po=ko.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ao=function(e){if(void 0!==Po[e])return Po[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var Eo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=No(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Io(wo[e]);To.test(e)?Object.keys(t).forEach((t=>{if(Oo[t]=e,"Noun|Verb"===e){let e=xo(t,Bo);Oo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Co[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Co[e]="Emoticon")),delete Co[""],delete Co.null,delete Co[" "];const zo="Adjective";var Vo={beforeTags:{Determiner:zo,Possessive:zo},afterTags:{Adjective:zo},beforeWords:{seem:zo,seemed:zo,seems:zo,feel:zo,feels:zo,felt:zo,appear:zo,appears:zo,appeared:zo,also:zo,over:zo,under:zo,too:zo,it:zo,but:zo,still:zo,really:zo,quite:zo,well:zo,very:zo,deeply:zo,profoundly:zo,extremely:zo,so:zo,badly:zo,mostly:zo,totally:zo,awfully:zo,rather:zo,nothing:zo,something:zo,anything:zo,not:zo,me:zo},afterWords:{too:zo,also:zo,or:zo}};const Fo="Gerund";var $o={beforeTags:{Adverb:Fo,Preposition:Fo,Conjunction:Fo},afterTags:{Adverb:Fo,Possessive:Fo,Person:Fo,Pronoun:Fo,Determiner:Fo,Copula:Fo,Preposition:Fo,Conjunction:Fo,Comparative:Fo},beforeWords:{been:Fo,keep:Fo,continue:Fo,stop:Fo,am:Fo,be:Fo,me:Fo,began:Fo,start:Fo,starts:Fo,started:Fo,stops:Fo,stopped:Fo,help:Fo,helps:Fo,avoid:Fo,avoids:Fo,love:Fo,loves:Fo,loved:Fo,hate:Fo,hates:Fo,hated:Fo},afterWords:{you:Fo,me:Fo,her:Fo,him:Fo,them:Fo,their:Fo,it:Fo,this:Fo,there:Fo,on:Fo,about:Fo,for:Fo}};var So={beforeTags:Object.assign({},Vo.beforeTags,$o.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Vo.afterTags,$o.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Vo.beforeWords,$o.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Vo.afterWords,$o.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ho="Singular";var Jo={beforeTags:{Determiner:Ho,Possessive:Ho,Acronym:Ho,Noun:Ho,Adjective:Ho,PresentTense:Ho,Gerund:Ho,PastTense:Ho,Infinitive:Ho,Date:Ho},afterTags:{Value:Ho,Modal:Ho,Copula:Ho,PresentTense:Ho,PastTense:Ho,Demonym:Ho},beforeWords:{the:Ho,with:Ho,without:Ho,of:Ho,for:Ho,any:Ho,all:Ho,on:Ho,cut:Ho,cuts:Ho,save:Ho,saved:Ho,saves:Ho,make:Ho,makes:Ho,made:Ho,minus:Ho,plus:Ho,than:Ho,another:Ho,versus:Ho,neither:Ho,favorite:Ho,best:Ho,daily:Ho,weekly:Ho,linear:Ho,binary:Ho,mobile:Ho,lexical:Ho,technical:Ho,computer:Ho,scientific:Ho,formal:Ho},afterWords:{of:Ho,system:Ho,aid:Ho,method:Ho,utility:Ho,tool:Ho,reform:Ho,therapy:Ho,philosophy:Ho,room:Ho,authority:Ho,says:Ho,said:Ho,wants:Ho,wanted:Ho}};const Lo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Mo={beforeTags:Object.assign({},Vo.beforeTags,Jo.beforeTags,Lo.beforeTags),afterTags:Object.assign({},Vo.afterTags,Jo.afterTags),beforeWords:Object.assign({},Vo.beforeWords,Jo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vo.afterWords,Jo.afterWords)};const Wo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ko={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},qo={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Uo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ro={beforeTags:Object.assign({},Vo.beforeTags,Wo),afterTags:Object.assign({},Vo.afterTags,Ko),beforeWords:Object.assign({},Vo.beforeWords,qo),afterWords:Object.assign({},Vo.afterWords,Uo)};const Qo="Infinitive";var Zo={beforeTags:{Modal:Qo,Adverb:Qo,Negative:Qo,Plural:Qo},afterTags:{Determiner:Qo,Adverb:Qo,Possessive:Qo,Preposition:Qo},beforeWords:{i:Qo,we:Qo,you:Qo,they:Qo,to:Qo,please:Qo,will:Qo,have:Qo,had:Qo,would:Qo,could:Qo,should:Qo,do:Qo,did:Qo,does:Qo,can:Qo,must:Qo,us:Qo,me:Qo,he:Qo,she:Qo,it:Qo,being:Qo},afterWords:{the:Qo,me:Qo,you:Qo,him:Qo,her:Qo,them:Qo,it:Qo,a:Qo,an:Qo,up:Qo,down:Qo,by:Qo,out:Qo,off:Qo,under:Qo,when:Qo,all:Qo,to:Qo,because:Qo,although:Qo,before:Qo,how:Qo,otherwise:Qo,together:Qo,though:Qo,yet:Qo}};const _o={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xo={beforeTags:Object.assign({},Vo.beforeTags,Zo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Vo.afterTags,Zo.afterTags,_o.afterTags),beforeWords:Object.assign({},Vo.beforeWords,Zo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vo.afterWords,Zo.afterWords,{to:void 0})};const Yo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ei={},ti={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ni={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ri={beforeTags:Object.assign({},$o.beforeTags,Jo.beforeTags,Yo),afterTags:Object.assign({},$o.afterTags,Jo.afterTags,ei),beforeWords:Object.assign({},$o.beforeWords,Jo.beforeWords,ti),afterWords:Object.assign({},$o.afterWords,Jo.afterWords,ni)};var ai={beforeTags:Object.assign({},Zo.beforeTags,Jo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Zo.afterTags,Jo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Zo.beforeWords,Jo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Zo.afterWords,Jo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const oi="Person";var ii={beforeTags:{Honorific:oi,Person:oi,Preposition:oi},afterTags:{Person:oi,ProperNoun:oi,Verb:oi},ownTags:{ProperNoun:oi},beforeWords:{hi:oi,hey:oi,yo:oi,dear:oi,hello:oi},afterWords:{said:oi,says:oi,told:oi,tells:oi,feels:oi,felt:oi,seems:oi,thinks:oi,thought:oi,spends:oi,spendt:oi,plays:oi,played:oi,sing:oi,sang:oi,learn:oi,learned:oi,wants:oi,wanted:oi}};const si="Month",li={beforeTags:{Date:si,Value:si},afterTags:{Date:si,Value:si},beforeWords:{by:si,in:si,on:si,during:si,after:si,before:si,between:si,until:si,til:si,sometime:si,of:si,this:si,next:si,last:si,previous:si,following:si},afterWords:{sometime:si,in:si,of:si,until:si,the:si}};var ui={beforeTags:Object.assign({},ii.beforeTags,li.beforeTags),afterTags:Object.assign({},ii.afterTags,li.afterTags),beforeWords:Object.assign({},ii.beforeWords,li.beforeWords),afterWords:Object.assign({},ii.afterWords,li.afterWords)};const ci={Place:"Place"},hi={Place:"Place",Abbreviation:"Place"},di={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},gi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let mi="Unit";const pi="Honorific";let fi={first:pi,general:pi,royal:pi,vice:pi,rear:pi,major:pi};const bi={"Adj|Gerund":So,"Adj|Noun":Mo,"Adj|Past":Ro,"Adj|Present":Xo,"Noun|Verb":ai,"Noun|Gerund":ri,"Person|Noun":{beforeTags:Object.assign({},Jo.beforeTags,ii.beforeTags),afterTags:Object.assign({},Jo.afterTags,ii.afterTags),beforeWords:Object.assign({},Jo.beforeWords,ii.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Jo.afterWords,ii.afterWords)},"Person|Date":ui,"Person|Verb":{beforeTags:Object.assign({},ii.beforeTags,Zo.beforeTags),afterTags:Object.assign({},ii.afterTags,Zo.afterTags),beforeWords:Object.assign({},ii.beforeWords,Zo.beforeWords),afterWords:Object.assign({},ii.afterWords,Zo.afterWords)},"Person|Place":{beforeTags:Object.assign({},ci,ii.beforeTags),afterTags:Object.assign({},hi,ii.afterTags),beforeWords:Object.assign({},di,ii.beforeWords),afterWords:Object.assign({},gi,ii.afterWords)},"Unit|Noun":{beforeTags:{Value:mi},afterTags:{},beforeWords:{per:mi,every:mi,each:mi,square:mi,cubic:mi,sq:mi,metric:mi},afterWords:{per:mi,squared:mi,cubed:mi,long:mi}},"Honorific|Noun":{beforeTags:{Honorific:pi,ProperNoun:pi,Ordinal:pi},afterTags:{Person:pi,ProperNoun:pi},beforeWords:Object.assign({},fi,{honorable:pi,honourable:pi,worship:pi,excellency:pi,majesty:pi,right:pi}),afterWords:fi}},vi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};bi["Plural|Verb"]={beforeWords:vi(bi["Noun|Verb"].beforeWords,{}),afterWords:vi(bi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:vi(bi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:vi(bi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yi=bi;const wi="Adjective",ki="Infinitive",Pi="PresentTense",Ai="Singular",Ei="PastTense",ji="Adverb",Ni="Plural",Ii="Verb",Gi="LastName",Di="Participle";var xi=[null,null,{ea:Ai,ia:"Noun",ic:wi,ly:ji,"'n":Ii,"'t":Ii},{oed:Ei,ued:Ei,xed:Ei," so":ji,"'ll":"Modal","'re":"Copula",azy:wi,eer:"Noun",end:Ii,ped:Ei,ffy:wi,ify:ki,ing:"Gerund",ize:ki,ibe:ki,lar:wi,mum:wi,nes:Pi,nny:wi,ous:wi,que:wi,rol:Ai,sis:Ai,ogy:Ai,oid:Ai,ian:Ai,zes:Pi,eld:Ei,ken:Di,ven:Di,ten:Di,ect:ki,ict:ki,ign:ki,ful:wi,bal:wi},{amed:Ei,aped:Ei,ched:Ei,lked:Ei,rked:Ei,reed:Ei,nded:Ei,mned:wi,cted:Ei,dged:Ei,ield:Ai,akis:Gi,cede:ki,chuk:Gi,czyk:Gi,ects:Pi,ends:Ii,enko:Gi,ette:Ai,wner:Ai,fies:Pi,fore:ji,gate:ki,gone:wi,ices:Ni,ints:Ni,ruct:ki,ines:Ni,ions:Ni,less:wi,llen:wi,made:wi,nsen:Gi,oses:Pi,ould:"Modal",some:wi,sson:Gi,tion:Ai,tage:"Noun",ique:Ai,tive:wi,tors:"Noun",vice:Ai,lier:Ai,fier:Ai,wned:Ei,gent:Ai,tist:Ai,pist:Ai,rist:Ai,mist:Ai,yist:Ai,vist:Ai,lite:Ai,site:Ai,rite:Ai,mite:Ai,bite:Ai,mate:Ai,date:Ai,ndal:Ai,vent:Ai,uist:Ai,gist:Ai,note:Ai,cide:Ai,wide:wi,vide:ki,ract:ki,duce:ki,pose:ki,eive:ki,lyze:ki,lyse:ki,iant:wi,nary:wi},{elist:Ai,holic:Ai,phite:Ai,tized:Ei,urned:Ei,eased:Ei,ances:Ni,bound:wi,ettes:Ni,fully:ji,ishes:Pi,ities:Ni,marek:Gi,nssen:Gi,ology:"Noun",osome:Ai,tment:Ai,ports:Ni,rough:wi,tches:Pi,tieth:"Ordinal",tures:Ni,wards:ji,where:ji,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Ai,scent:Ai,onist:Ai,anist:Ai,alist:Ai,olist:Ai,icist:Ai,ounce:ki,iable:wi,borne:wi,gnant:wi,inant:wi,igent:wi,atory:wi,rient:Ai,dient:Ai},{auskas:Gi,parent:Ai,cedent:Ai,ionary:Ai,cklist:Ai,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Gi,borough:"Place",sdottir:Gi}];const Ti="Adjective";var Ci=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Ti,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Ti,tele:"Noun","pro-":Ti,"mis-":"Verb","dis-":"Verb","pre-":Ti},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Ti,radio:"Noun",tetra:"Noun","omni-":Ti,"post-":Ti},{pseudo:Ti,"extra-":Ti,"hyper-":Ti,"inter-":Ti,"intra-":Ti,"deca-":Ti},{electro:"Noun"}];const Oi="Adjective",Bi="Infinitive",zi="PresentTense",Vi="Singular",Fi="PastTense",$i="Expression",Si="LastName";var Hi={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Si],[/.[^aeiou]ica$/,Vi,"harmonica"],[/^([hyj]a+)+$/,$i,"haha"]],c:[[/.[^aeiou]ic$/,Oi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Fi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Fi,"rammed"],[/.[aeiou][sg]hed$/,Fi,"gushed"],[/.[aeiou]red$/,Fi,"hired"],[/.[aeiou]r?ried$/,Fi,"hurried"],[/[^aeiou]ard$/,Vi,"steward"],[/[aeiou][^aeiou]id$/,Oi,""],[/.[vrl]id$/,Oi,"livid"],[/..led$/,Fi,"hurled"],[/.[iao]sed$/,Fi,""],[/[aeiou]n?[cs]ed$/,Fi,""],[/[aeiou][rl]?[mnf]ed$/,Fi,""],[/[aeiou][ns]?c?ked$/,Fi,"bunked"],[/[aeiou]gned$/,Fi],[/[aeiou][nl]?ged$/,Fi],[/.[tdbwxyz]ed$/,Fi],[/[^aeiou][aeiou][tvx]ed$/,Fi],[/.[cdflmnprstv]ied$/,Fi,"emptied"]],e:[[/.[lnr]ize$/,Bi,"antagonize"],[/.[^aeiou]ise$/,Bi,"antagonise"],[/.[aeiou]te$/,Bi,"bite"],[/.[^aeiou][ai]ble$/,Oi,"fixable"],[/.[^aeiou]eable$/,Oi,"maleable"],[/.[ts]ive$/,Oi,"festive"],[/[a-z]-like$/,Oi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Oi,"cornish"],[/.v[iy]ch$/,Si,"..ovich"],[/^ug?h+$/,$i,"ughh"],[/^uh[ -]?oh$/,$i,"uhoh"],[/[a-z]-ish$/,Oi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Si,"polish-male"]],k:[[/^(k){2}$/,$i,"kkkk"]],l:[[/.[gl]ial$/,Oi,"familial"],[/.[^aeiou]ful$/,Oi,"fitful"],[/.[nrtumcd]al$/,Oi,"natal"],[/.[^aeiou][ei]al$/,Oi,"familial"]],m:[[/.[^aeiou]ium$/,Vi,"magnesium"],[/[^aeiou]ism$/,Vi,"schism"],[/^[hu]m+$/,$i,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Oi,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,$i,"noooo"],[/^(yo)+$/,$i,"yoo"],[/^wo{2,}[pt]?$/,$i,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Vi],[/[^i]fer$/,Bi],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Oi],[/[aeiou].*ist$/,Oi],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,zi],[/.[rln]ates$/,zi],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Vi],[/.[aeiou]sks$/,zi],[/.[aeiou]kes$/,zi],[/[aeiou][^aeiou]is$/,Vi],[/[a-z]'s$/,"Noun"],[/^yes+$/,$i]],v:[[/.[^aeiou][ai][kln]ov$/,Si]],y:[[/.[cts]hy$/,Oi],[/.[st]ty$/,Oi],[/.[tnl]ary$/,Oi],[/.[oe]ry$/,Vi],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Oi],[/...lly$/,"Adverb"],[/.[gk]y$/,Oi],[/[bszmp]{2}y$/,Oi],[/.[ai]my$/,Oi],[/[ea]{2}zy$/,Oi],[/.[^aeiou]ity$/,Vi]]};const Ji="Verb",Li="Noun";var Mi={leftTags:[["Adjective",Li],["Possessive",Li],["Determiner",Li],["Adverb",Ji],["Pronoun",Ji],["Value",Li],["Ordinal",Li],["Modal",Ji],["Superlative",Li],["Demonym",Li],["Honorific","Person"]],leftWords:[["i",Ji],["first",Li],["it",Ji],["there",Ji],["not",Ji],["because",Li],["if",Li],["but",Li],["who",Ji],["this",Li],["his",Li],["when",Li],["you",Ji],["very","Adjective"],["old",Li],["never",Ji],["before",Li],["a","Singular"],["the",Li],["been",Ji]],rightTags:[["Copula",Li],["PastTense",Li],["Conjunction",Li],["Modal",Li]],rightWords:[["there",Ji],["me",Ji],["man","Adjective"],["only",Ji],["him",Ji],["it",Ji],["were",Li],["took",Li],["himself",Ji],["went",Li],["who",Li],["jr","Person"]]},Wi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ki={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},qi={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Ui={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Ri={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Qi=/^.([0-9]+)/;var Zi=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Qi);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Qi,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},Xi=/^([0-9]+)/,Yi=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Xi);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Xi,"")]}(n[0],n[1])}))};var es=function(e={}){return(e=Object.assign({},e)).rules=Yi(e.rules),e.rules=_i(e.rules),e.rev&&(e.rev=Yi(e.rev),e.rev=_i(e.rev)),e.exceptions=Yi(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e};var ts=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const ns=es({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),rs=es(Ui),as=es(Ki),os=es(qi),is=ts(ns),ss=ts(rs),ls=ts(as),us=ts(os),cs=es(Wi),hs=es(Ri);var ds={fromPast:ns,fromPresent:rs,fromGerund:as,fromParticiple:os,toPast:is,toPresent:ss,toGerund:ls,toParticiple:us,toComparative:cs,toSuperlative:hs,fromComparative:ts(cs),fromSuperlative:ts(hs)},gs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),ms=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var ps=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(fs[t].forEach((n=>e[n]=t)),e)),{});var bs=fs;var vs=function(e){let t=e.substring(e.length-3);if(!0===bs.hasOwnProperty(t))return bs[t];let n=e.substring(e.length-2);return!0===bs.hasOwnProperty(n)?bs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ys={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var ws=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=vs(e)),ys.hasOwnProperty(e))c=ys[e];else if("Participle"===n)c=Zi(l,i);else if("PastTense"===n)c=Zi(l,r);else if("PresentTense"===n)c=Zi(l,a);else{if("Gerund"!==n)return e;c=Zi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};const ks=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Zi(i,n),PresentTense:Zi(i,r),Gerund:Zi(i,a),FutureTense:"will "+e},u=Zi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Ps=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const As=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Es={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var js=function(e){if(Es.hasOwnProperty(e))return Es[e];let t=Ps(e,As);return t||e+"ly"};const Ns=function(e,t){const n=t.two.models.toSuperlative;return Zi(e,n)},Is=function(e,t){const n=t.two.models.toComparative;return Zi(e,n)},Gs="ically",Ds=new Set(["analyt"+Gs,"chem"+Gs,"class"+Gs,"clin"+Gs,"crit"+Gs,"ecolog"+Gs,"electr"+Gs,"empir"+Gs,"frant"+Gs,"grammat"+Gs,"ident"+Gs,"ideolog"+Gs,"log"+Gs,"mag"+Gs,"mathemat"+Gs,"mechan"+Gs,"med"+Gs,"method"+Gs,"method"+Gs,"mus"+Gs,"phys"+Gs,"phys"+Gs,"polit"+Gs,"pract"+Gs,"rad"+Gs,"satir"+Gs,"statist"+Gs,"techn"+Gs,"technolog"+Gs,"theoret"+Gs,"typ"+Gs,"vert"+Gs,"whims"+Gs]),xs=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ts=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Cs={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Os=function(e){return e.endsWith("ly")?Ds.has(e)?e.replace(/ically/,"ical"):Ts.has(e)?null:Cs.hasOwnProperty(e)?Cs[e]:Ps(e,xs)||e:null};const Bs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],zs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Vs=new Set(["terrible","annoying"]);var Fs={noun:{toPlural:xo,toSingular:ps,all:xo},verb:{toInfinitive:ws,conjugate:ks,all:function(e,t){let n=ks(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},adjective:{toSuperlative:Ns,toComparative:Is,toAdverb:js,toNoun:function(e){if(zs.hasOwnProperty(e))return zs[e];if(Vs.has(e))return null;let t=Ps(e,Bs);return t||e+"ness"},fromAdverb:Os,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Zi(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Zi(e,n)},all:function(e,t){let n=[e];return n.push(Ns(e,t)),n.push(Is(e,t)),n.push(js(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}}},$s={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Ss=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===$s.hasOwnProperty(i)&&$s[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var Hs=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Ms.find((t=>e.endsWith(t)))},Ks={two:{quickSplit:Hs,expandLexicon:Ss,transform:Fs,looksPlural:Ws}};var qs=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const Us=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var Rs=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Us(n,"Infinitive","PastTense"),Object.assign(s,l),l=Us(r,"Infinitive","Verb"),Object.assign(s,l),l=Us(a,"Infinitive","Gerund"),Object.assign(s,l),l=Us(o,"Adjective","Superlative"),Object.assign(s,l),l=Us(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Qs={two:{models:ds}};const Zs={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},_s=function(e,t){const n={model:t,methods:Ks};let{lex:r,_multi:a}=Ks.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Xs=function(e,t,n){let r=ks(e,Qs);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Ys=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=Zs[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Xs(a,r,!1),"Adj|Present"===o&&(Xs(a,r,!0),function(e,t,n){let r=Ns(e,n);t[r]=t[r]||"Superlative";let a=Is(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=ws(a,Qs,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=ws(a,Qs,"PastTense");r[e]||(n[e]="Infinitive")}})),t=_s(n,t)};var el=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=_s(e.one.lexicon,e)).one.lexicon,e),e=Ys(e.two.switches,e),e=Rs(e),e=qs(e)};let tl={one:{_multiCache:{},lexicon:Co},two:{irregularPlurals:yo,models:ds,suffixPatterns:xi,prefixPatterns:Ci,endsWith:Hi,neighbours:Mi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Oo,clues:yi,uncountable:{},orgWords:gs}};tl=el(tl);var nl=tl;const rl=/^(under|over|mis|re|un|dis|semi)-?/;var al=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(rl.test(a.normal)){let e=a.normal.replace(rl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var ol=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const il=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var sl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(Ws(e.normal)?ol(e,"Plural","3-plural-guess"):ol(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=vs(e.normal);t&&ol(e,t,"3-verb-tense-guess")}}(r)};const ll=/^\p{Lu}[\p{Ll}'’]/u,ul=/[0-9]/,cl=["Date","Month","WeekDay","Unit"],hl=/^[IVXLCDM]{2,}$/,dl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,gl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ml=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===ll.test(o)&&!1===ul.test(o)?cl.find((e=>r.tags.has(e)))?null:(sl(e,t,n),r.tags.has("Noun")||r.tags.clear(),ol(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&hl.test(o)&&dl.test(o)&&!gl[r.normal]?(ol(r,"RomanNumeral","2-xvii"),!0):null};const pl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var fl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=pl(r.normal,n.two.suffixPatterns);if(null!==e)return ol(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=pl(r.implicit,n.two.suffixPatterns),null!==e))return ol(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const bl=/['‘’‛‵′`´]/,vl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ol(r,e,"2-prefix"),r.confidence=.5,!0}return null};const kl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Pl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!kl.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},Al=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},El=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var jl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Pl(a)||Pl(o))return ol(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Al(a)||Al(o))return ol(n,"Year","2-tagYear-close");if(El(e[t-2])||El(e[t+2]))return ol(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ol(n,"Year","2-tagYear-noun")}}}return null};const Nl=/^[A-Z]('s|,)?$/,Il=/^[A-Z-]+$/,Gl=/([A-Z]\.)+[A-Z]?,?$/,Dl=/[A-Z]{2,}('s|,)?$/,xl=/([a-z]\.)+[a-z]\.?$/,Tl={I:!0,A:!0};var Cl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Il.test(n)||n.length>5||Tl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Gl.test(n)&&!0!==xl.test(n)&&!0!==Nl.test(n)&&!0!==Dl.test(n))}(r,n)?(r.tags.clear(),ol(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Tl.hasOwnProperty(r.text)&&Nl.test(r.text)?(r.tags.clear(),ol(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ol(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Il.test(r.text)&&r.text.length<=6?(ol(r,"Acronym","3-titlecase-acronym"),!0):null};const Ol=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Bl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var zl=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ol(e[t-1],a),l=l||Ol(e[t+1],o),l=l||Bl(e[t-1],r),l=l||Bl(e[t+1],i),l)return ol(s,l,"3-[neighbour]"),sl(e,t,n),e[t].confidence=.2,!0}return null};const Vl=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Fl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Vl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Vl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var $l=function(e,t,n){0===e[t].tags.size&&(ol(e[t],"Noun","3-[fallback]"),sl(e,t,n),e[t].confidence=.1)};const Sl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Hl=(e,t,n)=>0!==t||e[1]?null:n,Jl={"Adj|Gerund":(e,t)=>Sl(e,t),"Adj|Noun":(e,t)=>Sl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Sl(e,t),"Adj|Present":(e,t)=>Sl(e,t),"Noun|Gerund":(e,t)=>Sl(e,t),"Noun|Verb":(e,t)=>Sl(e,t)||Hl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Sl(e,t)||Hl(e,t,"PresentTense"),"Person|Noun":(e,t)=>Sl(e,t),"Person|Verb":(e,t)=>0!==t?Sl(e,t):null};var Ll=Jl;const Ml="undefined"!=typeof process&&process.env?process.env:self.env||{},Wl=/^(under|over|mis|re|un|dis|semi)-?/,Kl=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Ml.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},ql=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&Ml.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var Ul=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Wl.test(l)&&!o[l]&&(l=l.replace(Wl,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Kl(e[t+1],n.afterWords);return o=o||Kl(e[t-1],n.beforeWords),o=o||ql(e[t-1],n.beforeTags,a),o=o||ql(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ll[o]&&(u=Ll[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),sl(e,t,r)):Ml.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};var Rl=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ol(o,"Verb","3-[prefix]"),ol(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ol(o,"Adjective","3-[prefix]"),ol(o,"Prefix","3-[prefix]")))};const Ql={tagSwitch:al,checkSuffix:fl,checkRegex:yl,checkCase:ml,checkPrefix:wl,checkHyphen:Rl,checkYear:jl},Zl={checkAcronym:Cl,neighbours:zl,orgWords:Fl,nounFallback:$l,switches:Ul},_l=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var tu=function(e){const t=e.world,n=Object.keys(eu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=gu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=du};var pu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const fu=/'/;var bu=function(e,t){let n=e[t].normal.split(fu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const vu=/'/;var yu=function(e,t){let n=e[t].normal.split(vu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var wu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const ku={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Pu={in:!0,by:!0,for:!0};var Au=(e,t)=>{let n=e[t];if(ku.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===Pu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Eu=/'/,ju=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Nu={d:(e,t)=>yu(e,t),t:(e,t)=>wu(e,t),s:(e,t,n)=>Au(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):bu(e,t)},Iu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Gu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Eu.test(r[o].normal)&&([,i]=r[o].normal.split(Eu));let s=null;Nu.hasOwnProperty(i)&&(s=Nu[i](r,o,t)),s&&(s=Iu(s,e),pu(n,[a,o],s),ju(n[a],e,o,s.length))}}))}},Du={compute:Gu,api:mu,hooks:["contractionTwo"]};const xu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const Tu=["i","we","they"];let Cu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${xu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${xu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${xu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Tu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Tu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Tu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let Ou=null;var Bu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Ou=Ou||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Ou),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const zu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Bu,model:{two:{matches:Cu}},hooks:["postTagger"]};var Vu=zu;var Fu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var $u=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Fu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Su={lib:{lazy:$u}};var Hu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var Ju=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Hu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Lu={api:function(e){e.prototype.swap=Ju}};b.plugin(uu),b.plugin(Du),b.plugin(Vu),b.plugin(Su),b.plugin(Lu);export{b as default}; diff --git a/scratch.js b/scratch.js index 4cfc145ee..90ea385f5 100644 --- a/scratch.js +++ b/scratch.js @@ -36,7 +36,12 @@ import nlp from './src/two.js' // doc.remove('Remove') // console.log(doc.text()) -console.log(nlp.parseMatch('{sweet/adjective}')) +// let doc = nlp('i strolled downtown') +// doc.match('{stroll}') +nlp.parseMatch('{stroll}') +// doc.swap('stroll', 'walk') + +// console.log(nlp.parseMatch('{kiss/verb}')) // const doc = nlp("These are the old-fashioned dilemmas").debug() // const doc = nlp("foobar. he was demanding his rights after. walking his plank after") diff --git a/src/1-one/match/methods/parseMatch/04-inflect-root.js b/src/1-one/match/methods/parseMatch/04-inflect-root.js index 2ebbcfc54..6764265fe 100644 --- a/src/1-one/match/methods/parseMatch/04-inflect-root.js +++ b/src/1-one/match/methods/parseMatch/04-inflect-root.js @@ -1,11 +1,11 @@ // add all conjugations of this verb const addVerbs = function (token, world) { - let { all, toInfinitive } = world.methods.two.transform.verb || {} + let { all } = world.methods.two.transform.verb || {} let str = token.root - if (toInfinitive) { - str = toInfinitive(str, world.model) - } + // if (toInfinitive) { + // str = toInfinitive(str, world.model) + // } if (!all) { return [] } diff --git a/src/2-two/preTagger/methods/transform/adverbs/lib.js b/src/2-two/preTagger/methods/transform/adjectives/adverbs/lib.js similarity index 100% rename from src/2-two/preTagger/methods/transform/adverbs/lib.js rename to src/2-two/preTagger/methods/transform/adjectives/adverbs/lib.js diff --git a/src/2-two/preTagger/methods/transform/adverbs/toAdjective.js b/src/2-two/preTagger/methods/transform/adjectives/adverbs/toAdjective.js similarity index 100% rename from src/2-two/preTagger/methods/transform/adverbs/toAdjective.js rename to src/2-two/preTagger/methods/transform/adjectives/adverbs/toAdjective.js diff --git a/src/2-two/preTagger/methods/transform/adverbs/toAdverb.js b/src/2-two/preTagger/methods/transform/adjectives/adverbs/toAdverb.js similarity index 100% rename from src/2-two/preTagger/methods/transform/adverbs/toAdverb.js rename to src/2-two/preTagger/methods/transform/adjectives/adverbs/toAdverb.js diff --git a/src/2-two/preTagger/methods/transform/adverbs/toNoun.js b/src/2-two/preTagger/methods/transform/adjectives/adverbs/toNoun.js similarity index 100% rename from src/2-two/preTagger/methods/transform/adverbs/toNoun.js rename to src/2-two/preTagger/methods/transform/adjectives/adverbs/toNoun.js diff --git a/src/2-two/preTagger/methods/transform/adjectives/index.js b/src/2-two/preTagger/methods/transform/adjectives/index.js index 4acba1748..4bf93d08c 100644 --- a/src/2-two/preTagger/methods/transform/adjectives/index.js +++ b/src/2-two/preTagger/methods/transform/adjectives/index.js @@ -1,23 +1,7 @@ -import { convert } from 'suffix-thumb' -import toAdverb from '../adverbs/toAdverb.js' - - -const toSuperlative = function (adj, model) { - const mod = model.two.models.toSuperlative - return convert(adj, mod) -} -const toComparative = function (adj, model) { - const mod = model.two.models.toComparative - return convert(adj, mod) -} -const fromComparative = function (adj, model) { - const mod = model.two.models.fromComparative - return convert(adj, mod) -} -const fromSuperlative = function (adj, model) { - const mod = model.two.models.fromSuperlative - return convert(adj, mod) -} +import { toSuperlative, toComparative, fromSuperlative, fromComparative } from './inflect.js' +import fromAdverb from './adverbs/toAdjective.js' +import toAdverb from './adverbs/toAdverb.js' +import toNoun from './adverbs/toNoun.js' const all = function (str, model) { let arr = [str] @@ -29,7 +13,8 @@ const all = function (str, model) { return Array.from(arr) } -export { +export default { + toSuperlative, toComparative, toAdverb, toNoun, + fromAdverb, fromSuperlative, fromComparative, all, - toSuperlative, toComparative, fromComparative, fromSuperlative -} +} \ No newline at end of file diff --git a/src/2-two/preTagger/methods/transform/adjectives/inflect.js b/src/2-two/preTagger/methods/transform/adjectives/inflect.js new file mode 100644 index 000000000..0c160780b --- /dev/null +++ b/src/2-two/preTagger/methods/transform/adjectives/inflect.js @@ -0,0 +1,25 @@ +import { convert } from 'suffix-thumb' +import toAdverb from './adverbs/toAdverb.js' + + +const toSuperlative = function (adj, model) { + const mod = model.two.models.toSuperlative + return convert(adj, mod) +} +const toComparative = function (adj, model) { + const mod = model.two.models.toComparative + return convert(adj, mod) +} +const fromComparative = function (adj, model) { + const mod = model.two.models.fromComparative + return convert(adj, mod) +} +const fromSuperlative = function (adj, model) { + const mod = model.two.models.fromSuperlative + return convert(adj, mod) +} + + +export { + toSuperlative, toComparative, fromComparative, fromSuperlative +} diff --git a/src/2-two/preTagger/methods/transform/index.js b/src/2-two/preTagger/methods/transform/index.js index c843ffac6..722f8c010 100644 --- a/src/2-two/preTagger/methods/transform/index.js +++ b/src/2-two/preTagger/methods/transform/index.js @@ -1,28 +1,10 @@ -import toPlural from './nouns/toPlural/index.js' -import toSingular from './nouns/toSingular/index.js' - -import toInfinitive from './verbs/toInfinitive/index.js' -import { conjugate, all as allVerb } from './verbs/conjugate/index.js' - -import { toSuperlative, toComparative, fromSuperlative, fromComparative, all as allAdj } from './adjectives/index.js' - -import fromAdverb from './adverbs/toAdjective.js' -import toAdverb from './adverbs/toAdverb.js' -import toNoun from './adverbs/toNoun.js' +import nouns from './nouns/index.js' +import verbs from './verbs/index.js' +import adjectives from './adjectives/index.js' export default { - noun: { - toPlural, toSingular, - all: toPlural - }, - verb: { - toInfinitive, - conjugate, - all: allVerb - }, - adjective: { - toSuperlative, toComparative, toAdverb, toNoun, - fromAdverb, fromSuperlative, fromComparative, - all: allAdj, - } + noun: nouns, + verb: verbs, + adjective: adjectives + } diff --git a/src/2-two/preTagger/methods/transform/nouns/index.js b/src/2-two/preTagger/methods/transform/nouns/index.js new file mode 100644 index 000000000..aacec5169 --- /dev/null +++ b/src/2-two/preTagger/methods/transform/nouns/index.js @@ -0,0 +1,17 @@ +import toPlural from './toPlural/index.js' +import toSingular from './toSingular/index.js' + +const all = function (str, model) { + let arr = [str] + let p = toPlural(str, model) + if (p !== str) { + arr.push(p) + } + let s = toSingular(str, model) + if (s !== str) { + arr.push(s) + } + return arr +} + +export default { toPlural, toSingular, all } diff --git a/src/2-two/preTagger/methods/transform/verbs/conjugate/index.js b/src/2-two/preTagger/methods/transform/verbs/conjugate/index.js index cc7103e68..9cc362dfc 100644 --- a/src/2-two/preTagger/methods/transform/verbs/conjugate/index.js +++ b/src/2-two/preTagger/methods/transform/verbs/conjugate/index.js @@ -45,11 +45,8 @@ const conjugate = function (inf, model) { return found } -const all = function (str, model) { - return Object.values(conjugate(str, model)).filter(s => s) -} -export { conjugate, all } +export default conjugate // console.log(toPresent.rules.y) // console.log(convert('buy', toPresent)) diff --git a/src/2-two/preTagger/methods/transform/verbs/index.js b/src/2-two/preTagger/methods/transform/verbs/index.js new file mode 100644 index 000000000..72f3c744c --- /dev/null +++ b/src/2-two/preTagger/methods/transform/verbs/index.js @@ -0,0 +1,11 @@ +import toInfinitive from './toInfinitive/index.js' +import conjugate from './conjugate/index.js' + +const all = function (str, model) { + let res = conjugate(str, model) + delete res.FutureTense + return Object.values(res).filter(s => s) +} +export default { + toInfinitive, conjugate, all +} diff --git a/src/2-two/preTagger/model/_expand/index.js b/src/2-two/preTagger/model/_expand/index.js index 064f3cd93..3f19959cd 100644 --- a/src/2-two/preTagger/model/_expand/index.js +++ b/src/2-two/preTagger/model/_expand/index.js @@ -1,8 +1,8 @@ import methods from '../../methods/index.js' import expandIrregulars from './irregulars.js' import expandModels from './models.js' -import { conjugate } from '../../methods/transform/verbs/conjugate/index.js' -import { toSuperlative, toComparative } from '../../methods/transform/adjectives/index.js' +import conjugate from '../../methods/transform/verbs/conjugate/index.js' +import { toSuperlative, toComparative } from '../../methods/transform/adjectives/inflect.js' import toInfinitive from '../../methods/transform/verbs/toInfinitive/index.js' import models from '../models/index.js' let tmpModel = { From 1042e021ceb84c3c350d1ffa20d1debdef82c914 Mon Sep 17 00:00:00 2001 From: Frazer Smith Date: Wed, 19 Oct 2022 09:01:31 +0100 Subject: [PATCH 10/33] ci: update github actions --- .github/workflows/build-and-test.yml | 6 +++--- .github/workflows/coverage.yml | 6 +++--- .github/workflows/release.yml | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index a05972133..44a637ed6 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -12,15 +12,15 @@ jobs: os: [macos-latest, ubuntu-latest, windows-latest] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: use node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - name: cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.npm key: ${{ runner.os }}-npm-${{ matrix.node-version }}-${{ hashFiles('package-lock.json') }} diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 4036e32b6..e74442409 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -11,12 +11,12 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2.1.2 + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 with: node-version: '16' - - uses: actions/cache@v2 + - uses: actions/cache@v3 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1f6276280..6c250dcf1 100755 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,14 +14,14 @@ jobs: # delegate to the build- and-test workflow, but I haven't found a way to do # that yet. steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - - uses: actions/setup-node@v2 + - uses: actions/setup-node@v3 with: node-version: 16.x - name: cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.npm key: ${{ runner.os }}-npm-10.x-${{ hashFiles('package-lock.json') }} From 52ab28b90a3df453389d6f189ed31a1f92f97b87 Mon Sep 17 00:00:00 2001 From: Frazer Smith Date: Wed, 19 Oct 2022 09:08:38 +0100 Subject: [PATCH 11/33] build(deps-dev): remove @rollup/plugin-alias --- package-lock.json | 54 ++--------------------------------------------- package.json | 3 +-- 2 files changed, 3 insertions(+), 54 deletions(-) diff --git a/package-lock.json b/package-lock.json index e47672e2f..26650f2dc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "compromise", - "version": "14.5.1", + "version": "14.5.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "compromise", - "version": "14.5.1", + "version": "14.5.2", "license": "MIT", "dependencies": { "efrt": "2.7.0", @@ -14,7 +14,6 @@ "suffix-thumb": "4.0.2" }, "devDependencies": { - "@rollup/plugin-alias": "4.0.0", "@rollup/plugin-node-resolve": "15.0.0", "amble": "1.3.0", "eslint": "8.25.0", @@ -215,38 +214,6 @@ "node": ">= 8" } }, - "node_modules/@rollup/plugin-alias": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-4.0.0.tgz", - "integrity": "sha512-fGRWzM2F6wXnzAqn4Db8SdB/2Ree0u2XOQaaTy9mhqA35NmUzJXevMBUcpZywPF2MIUUAw+SKfWogKxFSPh+Qw==", - "dev": true, - "dependencies": { - "slash": "^4.0.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/@rollup/plugin-alias/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@rollup/plugin-node-resolve": { "version": "15.0.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.0.tgz", @@ -3078,23 +3045,6 @@ "fastq": "^1.6.0" } }, - "@rollup/plugin-alias": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-4.0.0.tgz", - "integrity": "sha512-fGRWzM2F6wXnzAqn4Db8SdB/2Ree0u2XOQaaTy9mhqA35NmUzJXevMBUcpZywPF2MIUUAw+SKfWogKxFSPh+Qw==", - "dev": true, - "requires": { - "slash": "^4.0.0" - }, - "dependencies": { - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } - } - }, "@rollup/plugin-node-resolve": { "version": "15.0.0", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.0.tgz", diff --git a/package.json b/package.json index 5f9bf1f6e..6fd5c6a08 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,6 @@ "suffix-thumb": "4.0.2" }, "devDependencies": { - "@rollup/plugin-alias": "4.0.0", "@rollup/plugin-node-resolve": "15.0.0", "amble": "1.3.0", "eslint": "8.25.0", @@ -115,4 +114,4 @@ "_tests/**" ], "license": "MIT" -} \ No newline at end of file +} From 56e331da8c5e308db8e1d077d824e04e44a5e4ab Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 10:17:07 -0400 Subject: [PATCH 12/33] fixes to clause parser --- builds/compromise.js | 2 +- builds/three/compromise-three.cjs | 2 +- builds/three/compromise-three.mjs | 2 +- builds/two/compromise-two.cjs | 2 +- builds/two/compromise-two.mjs | 2 +- changelog.md | 6 +- scratch.js | 54 ++++++++++++- src/2-two/preTagger/model/lexicon/_data.js | 8 +- src/3-three/chunker/api/clauses.js | 90 ++++++++++++++-------- tests/three/chunker/clauses.test.js | 40 +++++++++- 10 files changed, 160 insertions(+), 48 deletions(-) diff --git a/builds/compromise.js b/builds/compromise.js index 80b42fe98..2a5241dd5 100644 --- a/builds/compromise.js +++ b/builds/compromise.js @@ -1 +1 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var p=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let m=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=p(e,l,m);return e&&n.compute(m.hooks),n};Object.defineProperty(f,"_world",{value:m,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=p(e,l,m);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},j=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},x=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?j(n):(j(n),j([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!k(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||k(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var G=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},D=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=G(e),e)))}(d),n?(T(t.update([u]).firstTerm()),N(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var $=z,F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=F(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const W={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};W.deHyphenate=W.dehyphenate,W.toQuotation=W.toQuotations;var M=W,J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var _={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}},Q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,H,M,U,_,Q);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(pe);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ke=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},je={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},xe=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=xe(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&je.hasOwnProperty(l)&&(c=je[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),ke(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ke(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]},Ge=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Oe,lib:Be,hooks:["lexicon"]},$e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const We=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=We(e.goNext,void 0),e.failTo=We(e.failTo,0),e.endAs=We(e.endAs,null),e};const Je={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};Je.compile=Je.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Je};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Qe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Qe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Qe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,pt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){pt.test(e)?(n.choices=e.split(pt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var kt=Pt;const At=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const xt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var It=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(xt(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(xt(e,t)),n=n.concat(Nt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Gt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>kt(e,t))),r=jt(r,n),r=It(r,n),r=Gt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Vt.test(e.pre)||Bt.test(e.post),hasComma:e=>Ft(e,","),hasPeriod:e=>!0===Ft(e,".")&&!1===Ft(e,"..."),hasExclamation:e=>Ft(e,"!"),hasQuestionMark:e=>Ft(e,"?")||Ft(e,"¿"),hasEllipses:e=>Ft(e,"..")||Ft(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>Ft(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Wt=Ht;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Wt[t.method]&&!0===Wt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Jt=Mt;const Lt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(qt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Jt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Jt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(qt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Qt=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Jt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Jt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Jt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Qt(e,r,t[e.r+1]):(e.t+=1,!0)},Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Jt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Jt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Xt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Lt(e,a)){if(e.negative){if(!Zt(a))return null}else if(!0!==Jt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!tn(a))return null}else if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else if(!_t(a))return null}else if(!Rt(a))return null}else if(!Kt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},ln={api:ot,methods:{one:{termMethods:Wt,parseMatch:Tt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(a)&&(a=" "),a=a.replace(gn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(pn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let Pn=[],kn=0;for(;kn<64;)Pn[kn]=0|4294967296*Math.sin(++kn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(kn=i=0;kn>4]+Pn[i]+~~o[kn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const jn={text:!0,terms:!0};let xn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},En={text:e=>bn(e,{keepPunct:!0},!1),normal:e=>bn(e,Nn(wn.normal,{keepPunct:!0}),!1),implicit:e=>bn(e,Nn(wn.implicit,{keepPunct:!0}),!1),machine:e=>bn(e,xn,!1),root:e=>bn(e,Nn(xn,{form:"root"}),!1),hash:e=>An(bn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const In={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},jn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};In.data=In.json;var Gn=In,Tn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Dn="";var Cn={green:e=>""+e+Dn,red:e=>""+e+Dn,blue:e=>""+e+Dn,magenta:e=>""+e+Dn,cyan:e=>""+e+Dn,yellow:e=>""+e+Dn,black:e=>""+e+Dn,dim:e=>""+e+Dn,i:e=>""+e+Dn},On=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Cn.blue("\n ──────")),t.forEach((e=>{console.log(Cn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Cn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Cn.blue(" │ ")+Cn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Cn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Vn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Cn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Tn(t),t):(!1!==e.tags&&(On(t),console.log("\n")),!0===e.chunks&&(Vn(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const $n=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Fn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Hn=Sn,Wn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Kn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},Rn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},_n={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>qn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Yn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>qn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},er=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},tr={union:function(e){e=Xn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)}};tr.and=tr.union,tr.intersection=function(e){e=Xn(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.not=function(e){e=Xn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.difference=tr.not,tr.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=er(t,this.document),this.toView(t)},tr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Qn(e,[t])})),e=er(e,this.document),this.update(e)};var nr=function(e){Object.assign(e.prototype,tr)},rr={methods:_n,api:nr},ar=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const or=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ir=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(or(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(or(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=or(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},sr=function(e,t){e=ir(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},lr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},ur=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},cr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},hr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=lr(a,t.hooks);return o=ur(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),cr(o,e,a,n,r)},dr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===dr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ar,methods:{one:{buildNet:sr,bulkMatch:hr,bulkTagger:pr}}};const gr=/ /,fr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},vr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),gr.test(t))!function(e,t,n,r){let a=t.split(gr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),vr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var yr=br,wr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Pr({id:e}))),t}return[Pr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},xr=e=>"[object Array]"===Object.prototype.toString.call(e),Nr=e=>(e=e||"").trim(),Er=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||kr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ar(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Pr({});return e.forEach((e=>{if((e=Pr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(jr(t=e).forEach(Pr),t);var t},Ir=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return jr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Gr=function(e){let t=jr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Tr={text:Ir,txt:Ir,array:Gr,flat:Gr},Dr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ir(e,!0)),null):Tr.hasOwnProperty(t)?Tr[t](e):e},Cr=e=>{jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Or=/\//;let Vr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Nr(e),!Or.test(e)){let t=this.json.children.find((t=>t.id===e));return new Vr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||Pr({});return new Vr(t)}add(e,t={}){if(xr(e))return e.forEach((e=>this.add(Nr(e),t))),this;e=Nr(e);let n=Pr({id:e,props:t});return this.json.children.push(n),new Vr(n)}remove(e){return e=Nr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return jr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return jr(this.json)}fillDown(){var e;return e=this.json,jr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else xr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Cr(this.json);let e=jr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Cr(this.json),Dr(this.json,e)}debug(){return Cr(this.json),Dr(this.json,"debug"),this}};const Br=function(e){let t=Er(e);return new Vr(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const $r=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Fr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:$r(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sr=function(e){return e?"string"==typeof e?[e]:e:[]};var Hr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sr(e[t].children),e[t].not=Sr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Wr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Hr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Fr(n)},Mr={one:{setTag:yr,unTag:wr,addTags:Wr}};const Jr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Lr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Jr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Jr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var qr=Lr,Kr=function(e){Object.assign(e.prototype,qr)},Ur={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Rr=new Set(["Auxiliary","Possessive"]);var _r=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Rr.has(e)||!t.hasOwnProperty(n))return 1;if(Rr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Qr={model:{one:{tagSet:{}}},compute:{tagRank:_r},methods:Mr,api:Kr,lib:Ur};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Yr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var ea=function(e){let t=[],n=e.split(Xr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const oa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ia=RegExp("("+Object.keys(oa).join("|")+")","g"),sa=RegExp("("+Object.values(oa).join("|")+")","g"),la=function(e){if(!e)return!1;let t=e.match(sa);return null!==t&&1===t.length};var ua=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var xa=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Aa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wa(n),n=ba(n),n=n.filter((e=>e)),n};let Na=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Ea=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ia=/[\p{Punctuation}\s]+$/u,Ga=/^[\p{Punctuation}\s]+/u,Ta=/['’]/,Da=/^[a-z]\.([a-z]\.)+/i,Ca=/^'[0-9]{2}/;var Oa=function(e){let t=e,n="",r="";return e=e.replace(Ga,(t=>{let r=t.match(Na);return r?(n=t.replace(Na,""),r):"'"===n&&Ca.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ia,(a=>{let o=a.match(Ea);return o?(r=a.replace(Ea,""),o):Ta.test(a)&&/[sn]['’]$/.test(t)&&!1===Ta.test(n)?(r=r.replace(Ta,""),"'"):!0===Da.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}},Va=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},Ba=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const za=/([A-Z]\.)+[A-Z]?,?$/,$a=/^[A-Z]\.,?$/,Fa=/[A-Z]{2,}('s|,)?$/,Sa=/([a-z]\.)+[a-z]\.?$/;var Ha=function(e){return function(e){return!0===za.test(e)||!0===Sa.test(e)||!0===$a.test(e)||!0===Fa.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Wa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ba(r),r=n(r,t),r=Ha(r),e.normal=r},Ma=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Wa(e,t)})),n})),e};const Ja=/[ .][A-Z]\.? *$/i,La=/(?:\u2026|\.{2,}) *$/,qa=/\p{L}/u,Ka=/^[A-Z]\. $/;var Ua=function(e,t){if(!1===qa.test(e))return!1;if(!0===Ja.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===La.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ra={one:{killUnicode:Va,tokenize:{splitSentences:ga,isSentence:Ua,splitTerms:xa,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Oa(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Ma}}},_a={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},Za={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qa[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])}))}));var Ya=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){eo[t]=e}))}));const to=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),to.test(n)&&!no.test(n)&&!ro.test(n)){let t=n.split(to);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const oo=/^\p{Letter}+-\p{Letter}+$/u;var io=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),oo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},so=function(e){let t=e.docs,n={};for(let e=0;eho(e,ao),machine:e=>ho(e,io),normal:e=>ho(e,Wa),freq:so,offset:lo,index:uo,wordCount:co},methods:Ra,model:{one:{aliases:_a,abbreviations:Qa,prefixes:Ya,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Za,unicode:eo}},hooks:["alias","machine","index","id"]},mo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var fo=function(e){e.prototype.autoFill=go},vo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const bo={safe:!0,min:3};var yo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},bo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=vo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},wo={model:{one:{typeahead:{}}},api:fo,lib:yo,compute:mo,hooks:["typeahead"]};v.extend(ee),v.extend(Ln),v.extend(ln),v.extend(rr),v.extend(Qr),v.plugin(Ie),v.extend(po),v.plugin(P),v.extend(Le),v.extend(wo),v.extend(ze),v.extend(mr);var Po={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ko={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ao=36,jo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",xo=jo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==xo[e])return xo[e];let t=0,n=1,r=Ao,a=1;for(;n=0;n--,a*=Ao){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Eo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Go(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=To(ko[e]);Vo.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Oo(t,$o);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Bo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Bo[e]="Emoticon")),delete Bo[""],delete Bo.null,delete Bo[" "];const Fo="Adjective";var So={beforeTags:{Determiner:Fo,Possessive:Fo},afterTags:{Adjective:Fo},beforeWords:{seem:Fo,seemed:Fo,seems:Fo,feel:Fo,feels:Fo,felt:Fo,appear:Fo,appears:Fo,appeared:Fo,also:Fo,over:Fo,under:Fo,too:Fo,it:Fo,but:Fo,still:Fo,really:Fo,quite:Fo,well:Fo,very:Fo,deeply:Fo,profoundly:Fo,extremely:Fo,so:Fo,badly:Fo,mostly:Fo,totally:Fo,awfully:Fo,rather:Fo,nothing:Fo,something:Fo,anything:Fo,not:Fo,me:Fo},afterWords:{too:Fo,also:Fo,or:Fo}};const Ho="Gerund";var Wo={beforeTags:{Adverb:Ho,Preposition:Ho,Conjunction:Ho},afterTags:{Adverb:Ho,Possessive:Ho,Person:Ho,Pronoun:Ho,Determiner:Ho,Copula:Ho,Preposition:Ho,Conjunction:Ho,Comparative:Ho},beforeWords:{been:Ho,keep:Ho,continue:Ho,stop:Ho,am:Ho,be:Ho,me:Ho,began:Ho,start:Ho,starts:Ho,started:Ho,stops:Ho,stopped:Ho,help:Ho,helps:Ho,avoid:Ho,avoids:Ho,love:Ho,loves:Ho,loved:Ho,hate:Ho,hates:Ho,hated:Ho},afterWords:{you:Ho,me:Ho,her:Ho,him:Ho,them:Ho,their:Ho,it:Ho,this:Ho,there:Ho,on:Ho,about:Ho,for:Ho}},Mo={beforeTags:Object.assign({},So.beforeTags,Wo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},So.afterTags,Wo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},So.beforeWords,Wo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},So.afterWords,Wo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Jo="Singular";var Lo={beforeTags:{Determiner:Jo,Possessive:Jo,Acronym:Jo,Noun:Jo,Adjective:Jo,PresentTense:Jo,Gerund:Jo,PastTense:Jo,Infinitive:Jo,Date:Jo},afterTags:{Value:Jo,Modal:Jo,Copula:Jo,PresentTense:Jo,PastTense:Jo,Demonym:Jo},beforeWords:{the:Jo,with:Jo,without:Jo,of:Jo,for:Jo,any:Jo,all:Jo,on:Jo,cut:Jo,cuts:Jo,save:Jo,saved:Jo,saves:Jo,make:Jo,makes:Jo,made:Jo,minus:Jo,plus:Jo,than:Jo,another:Jo,versus:Jo,neither:Jo,favorite:Jo,best:Jo,daily:Jo,weekly:Jo,linear:Jo,binary:Jo,mobile:Jo,lexical:Jo,technical:Jo,computer:Jo,scientific:Jo,formal:Jo},afterWords:{of:Jo,system:Jo,aid:Jo,method:Jo,utility:Jo,tool:Jo,reform:Jo,therapy:Jo,philosophy:Jo,room:Jo,authority:Jo,says:Jo,said:Jo,wants:Jo,wanted:Jo}};const qo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ko={beforeTags:Object.assign({},So.beforeTags,Lo.beforeTags,qo.beforeTags),afterTags:Object.assign({},So.afterTags,Lo.afterTags),beforeWords:Object.assign({},So.beforeWords,Lo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Lo.afterWords)};const Uo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ro={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},_o={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Qo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Zo={beforeTags:Object.assign({},So.beforeTags,Uo),afterTags:Object.assign({},So.afterTags,Ro),beforeWords:Object.assign({},So.beforeWords,_o),afterWords:Object.assign({},So.afterWords,Qo)};const Yo="Infinitive";var Xo={beforeTags:{Modal:Yo,Adverb:Yo,Negative:Yo,Plural:Yo},afterTags:{Determiner:Yo,Adverb:Yo,Possessive:Yo,Preposition:Yo},beforeWords:{i:Yo,we:Yo,you:Yo,they:Yo,to:Yo,please:Yo,will:Yo,have:Yo,had:Yo,would:Yo,could:Yo,should:Yo,do:Yo,did:Yo,does:Yo,can:Yo,must:Yo,us:Yo,me:Yo,he:Yo,she:Yo,it:Yo,being:Yo},afterWords:{the:Yo,me:Yo,you:Yo,him:Yo,her:Yo,them:Yo,it:Yo,a:Yo,an:Yo,up:Yo,down:Yo,by:Yo,out:Yo,off:Yo,under:Yo,when:Yo,all:Yo,to:Yo,because:Yo,although:Yo,before:Yo,how:Yo,otherwise:Yo,together:Yo,though:Yo,yet:Yo}};const ei={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ti={beforeTags:Object.assign({},So.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},So.afterTags,Xo.afterTags,ei.afterTags),beforeWords:Object.assign({},So.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Xo.afterWords,{to:void 0})};const ni={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ri={},ai={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oi={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ii={beforeTags:Object.assign({},Wo.beforeTags,Lo.beforeTags,ni),afterTags:Object.assign({},Wo.afterTags,Lo.afterTags,ri),beforeWords:Object.assign({},Wo.beforeWords,Lo.beforeWords,ai),afterWords:Object.assign({},Wo.afterWords,Lo.afterWords,oi)},si={beforeTags:Object.assign({},Xo.beforeTags,Lo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xo.afterTags,Lo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xo.beforeWords,Lo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xo.afterWords,Lo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const li="Person";var ui={beforeTags:{Honorific:li,Person:li,Preposition:li},afterTags:{Person:li,ProperNoun:li,Verb:li},ownTags:{ProperNoun:li},beforeWords:{hi:li,hey:li,yo:li,dear:li,hello:li},afterWords:{said:li,says:li,told:li,tells:li,feels:li,felt:li,seems:li,thinks:li,thought:li,spends:li,spendt:li,plays:li,played:li,sing:li,sang:li,learn:li,learned:li,wants:li,wanted:li}};const ci="Month",hi={beforeTags:{Date:ci,Value:ci},afterTags:{Date:ci,Value:ci},beforeWords:{by:ci,in:ci,on:ci,during:ci,after:ci,before:ci,between:ci,until:ci,til:ci,sometime:ci,of:ci,this:ci,next:ci,last:ci,previous:ci,following:ci},afterWords:{sometime:ci,in:ci,of:ci,until:ci,the:ci}};var di={beforeTags:Object.assign({},ui.beforeTags,hi.beforeTags),afterTags:Object.assign({},ui.afterTags,hi.afterTags),beforeWords:Object.assign({},ui.beforeWords,hi.beforeWords),afterWords:Object.assign({},ui.afterWords,hi.afterWords)};const pi={Place:"Place"},mi={Place:"Place",Abbreviation:"Place"},gi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},fi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let vi="Unit";const bi="Honorific";let yi={first:bi,general:bi,royal:bi,vice:bi,rear:bi,major:bi};const wi={"Adj|Gerund":Mo,"Adj|Noun":Ko,"Adj|Past":Zo,"Adj|Present":ti,"Noun|Verb":si,"Noun|Gerund":ii,"Person|Noun":{beforeTags:Object.assign({},Lo.beforeTags,ui.beforeTags),afterTags:Object.assign({},Lo.afterTags,ui.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ui.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Lo.afterWords,ui.afterWords)},"Person|Date":di,"Person|Verb":{beforeTags:Object.assign({},ui.beforeTags,Xo.beforeTags),afterTags:Object.assign({},ui.afterTags,Xo.afterTags),beforeWords:Object.assign({},ui.beforeWords,Xo.beforeWords),afterWords:Object.assign({},ui.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},pi,ui.beforeTags),afterTags:Object.assign({},mi,ui.afterTags),beforeWords:Object.assign({},gi,ui.beforeWords),afterWords:Object.assign({},fi,ui.afterWords)},"Unit|Noun":{beforeTags:{Value:vi},afterTags:{},beforeWords:{per:vi,every:vi,each:vi,square:vi,cubic:vi,sq:vi,metric:vi},afterWords:{per:vi,squared:vi,cubed:vi,long:vi}},"Honorific|Noun":{beforeTags:{Honorific:bi,ProperNoun:bi,Ordinal:bi},afterTags:{Person:bi,ProperNoun:bi},beforeWords:Object.assign({},yi,{honorable:bi,honourable:bi,worship:bi,excellency:bi,majesty:bi,right:bi}),afterWords:yi}},Pi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};wi["Plural|Verb"]={beforeWords:Pi(wi["Noun|Verb"].beforeWords,{}),afterWords:Pi(wi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:Pi(wi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Pi(wi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ki=wi;const Ai="Adjective",ji="Infinitive",xi="PresentTense",Ni="Singular",Ei="PastTense",Ii="Adverb",Gi="Plural",Ti="Actor",Di="Verb",Ci="Noun",Oi="LastName",Vi="Modal",Bi="Participle";var zi=[null,null,{ea:Ni,ia:Ci,ic:Ai,ly:Ii,"'n":Di,"'t":Di},{oed:Ei,ued:Ei,xed:Ei," so":Ii,"'ll":Vi,"'re":"Copula",azy:Ai,eer:Ci,end:Di,ped:Ei,ffy:Ai,ify:ji,ing:"Gerund",ize:ji,ibe:ji,lar:Ai,mum:Ai,nes:xi,nny:Ai,ous:Ai,que:Ai,rol:Ni,sis:Ni,ogy:Ni,oid:Ni,ian:Ni,zes:xi,eld:Ei,ken:Bi,ven:Bi,ten:Bi,ect:ji,ict:ji,ign:ji,ful:Ai,bal:Ai},{amed:Ei,aped:Ei,ched:Ei,lked:Ei,rked:Ei,reed:Ei,nded:Ei,mned:Ai,cted:Ei,dged:Ei,ield:Ni,akis:Oi,cede:ji,chuk:Oi,czyk:Oi,ects:xi,ends:Di,enko:Oi,ette:Ni,wner:Ni,fies:xi,fore:Ii,gate:ji,gone:Ai,ices:Gi,ints:Gi,ruct:ji,ines:Gi,ions:Gi,less:Ai,llen:Ai,made:Ai,nsen:Oi,oses:xi,ould:Vi,some:Ai,sson:Oi,tion:Ni,tage:Ci,ique:Ni,tive:Ai,tors:Ci,vice:Ni,lier:Ni,fier:Ni,wned:Ei,gent:Ni,tist:Ni,pist:Ni,rist:Ni,mist:Ni,yist:Ni,vist:Ni,lite:Ni,site:Ni,rite:Ni,mite:Ni,bite:Ni,mate:Ni,date:Ni,ndal:Ni,vent:Ni,uist:Ni,gist:Ni,note:Ni,cide:Ni,wide:Ai,vide:ji,ract:ji,duce:ji,pose:ji,eive:ji,lyze:ji,lyse:ji,iant:Ai,nary:Ai},{elist:Ni,holic:Ni,phite:Ni,tized:Ei,urned:Ei,eased:Ei,ances:Gi,bound:Ai,ettes:Gi,fully:Ii,ishes:xi,ities:Gi,marek:Oi,nssen:Oi,ology:Ci,osome:Ni,tment:Ni,ports:Gi,rough:Ai,tches:xi,tieth:"Ordinal",tures:Gi,wards:Ii,where:Ii,archy:Ci,pathy:Ci,opoly:Ci,embly:Ci,phate:Ci,ndent:Ni,scent:Ni,onist:Ni,anist:Ni,alist:Ni,olist:Ni,icist:Ni,ounce:ji,iable:Ai,borne:Ai,gnant:Ai,inant:Ai,igent:Ai,atory:Ai,rient:Ni,dient:Ni},{auskas:Oi,parent:Ni,cedent:Ni,ionary:Ni,cklist:Ni,keeper:Ti,logist:Ti,teenth:"Value"},{opoulos:Oi,borough:"Place",sdottir:Oi}];const $i="Adjective",Fi="Noun",Si="Verb";var Hi=[null,null,{},{neo:Fi,bio:Fi,"de-":Si,"re-":Si,"un-":Si},{anti:Fi,auto:Fi,faux:$i,hexa:Fi,kilo:Fi,mono:Fi,nano:Fi,octa:Fi,poly:Fi,semi:$i,tele:Fi,"pro-":$i,"mis-":Si,"dis-":Si,"pre-":$i},{anglo:Fi,centi:Fi,ethno:Fi,ferro:Fi,grand:Fi,hepta:Fi,hydro:Fi,intro:Fi,macro:Fi,micro:Fi,milli:Fi,nitro:Fi,penta:Fi,quasi:$i,radio:Fi,tetra:Fi,"omni-":$i,"post-":$i},{pseudo:$i,"extra-":$i,"hyper-":$i,"inter-":$i,"intra-":$i,"deca-":$i},{electro:Fi}];const Wi="Adjective",Mi="Infinitive",Ji="PresentTense",Li="Singular",qi="PastTense",Ki="Adverb",Ui="Expression",Ri="Actor",_i="Verb",Qi="Noun",Zi="LastName";var Yi={a:[[/.[aeiou]na$/,Qi,"tuna"],[/.[oau][wvl]ska$/,Zi],[/.[^aeiou]ica$/,Li,"harmonica"],[/^([hyj]a+)+$/,Ui,"haha"]],c:[[/.[^aeiou]ic$/,Wi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,qi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,qi,"rammed"],[/.[aeiou][sg]hed$/,qi,"gushed"],[/.[aeiou]red$/,qi,"hired"],[/.[aeiou]r?ried$/,qi,"hurried"],[/[^aeiou]ard$/,Li,"steward"],[/[aeiou][^aeiou]id$/,Wi,""],[/.[vrl]id$/,Wi,"livid"],[/..led$/,qi,"hurled"],[/.[iao]sed$/,qi,""],[/[aeiou]n?[cs]ed$/,qi,""],[/[aeiou][rl]?[mnf]ed$/,qi,""],[/[aeiou][ns]?c?ked$/,qi,"bunked"],[/[aeiou]gned$/,qi],[/[aeiou][nl]?ged$/,qi],[/.[tdbwxyz]ed$/,qi],[/[^aeiou][aeiou][tvx]ed$/,qi],[/.[cdflmnprstv]ied$/,qi,"emptied"]],e:[[/.[lnr]ize$/,Mi,"antagonize"],[/.[^aeiou]ise$/,Mi,"antagonise"],[/.[aeiou]te$/,Mi,"bite"],[/.[^aeiou][ai]ble$/,Wi,"fixable"],[/.[^aeiou]eable$/,Wi,"maleable"],[/.[ts]ive$/,Wi,"festive"],[/[a-z]-like$/,Wi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Wi,"cornish"],[/.v[iy]ch$/,Zi,"..ovich"],[/^ug?h+$/,Ui,"ughh"],[/^uh[ -]?oh$/,Ui,"uhoh"],[/[a-z]-ish$/,Wi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Zi,"polish-male"]],k:[[/^(k){2}$/,Ui,"kkkk"]],l:[[/.[gl]ial$/,Wi,"familial"],[/.[^aeiou]ful$/,Wi,"fitful"],[/.[nrtumcd]al$/,Wi,"natal"],[/.[^aeiou][ei]al$/,Wi,"familial"]],m:[[/.[^aeiou]ium$/,Li,"magnesium"],[/[^aeiou]ism$/,Li,"schism"],[/^[hu]m+$/,Ui,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Wi,"republican"],[/[^aeiou]ician$/,Ri,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ui,"noooo"],[/^(yo)+$/,Ui,"yoo"],[/^wo{2,}[pt]?$/,Ui,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Li],[/[^i]fer$/,Mi],[/.[^aeiou][ao]pher$/,Ri],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Wi],[/[aeiou].*ist$/,Wi],[/^[a-z]et$/,_i]],s:[[/.[^aeiou]ises$/,Ji],[/.[rln]ates$/,Ji],[/.[^z]ens$/,_i],[/.[lstrn]us$/,Li],[/.[aeiou]sks$/,Ji],[/.[aeiou]kes$/,Ji],[/[aeiou][^aeiou]is$/,Li],[/[a-z]'s$/,Qi],[/^yes+$/,Ui]],v:[[/.[^aeiou][ai][kln]ov$/,Zi]],y:[[/.[cts]hy$/,Wi],[/.[st]ty$/,Wi],[/.[tnl]ary$/,Wi],[/.[oe]ry$/,Li],[/[rdntkbhs]ly$/,Ki],[/.(gg|bb|zz)ly$/,Wi],[/...lly$/,Ki],[/.[gk]y$/,Wi],[/[bszmp]{2}y$/,Wi],[/.[ai]my$/,Wi],[/[ea]{2}zy$/,Wi],[/.[^aeiou]ity$/,Li]]};const Xi="Verb",es="Noun";var ts={leftTags:[["Adjective",es],["Possessive",es],["Determiner",es],["Adverb",Xi],["Pronoun",Xi],["Value",es],["Ordinal",es],["Modal",Xi],["Superlative",es],["Demonym",es],["Honorific","Person"]],leftWords:[["i",Xi],["first",es],["it",Xi],["there",Xi],["not",Xi],["because",es],["if",es],["but",es],["who",Xi],["this",es],["his",es],["when",es],["you",Xi],["very","Adjective"],["old",es],["never",Xi],["before",es],["a","Singular"],["the",es],["been",Xi]],rightTags:[["Copula",es],["PastTense",es],["Conjunction",es],["Modal",es]],rightWords:[["there",Xi],["me",Xi],["man","Adjective"],["only",Xi],["him",Xi],["it",Xi],["were",es],["took",es],["himself",Xi],["went",es],["who",es],["jr","Person"]]},ns={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},rs={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},as={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},os={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},is={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ss=/^.([0-9]+)/;var ls=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ss);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ss,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},cs=/^([0-9]+)/,hs=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(cs);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(cs,"")]}(n[0],n[1])}))};var ds=function(e={}){return(e=Object.assign({},e)).rules=hs(e.rules),e.rules=us(e.rules),e.rev&&(e.rev=hs(e.rev),e.rev=us(e.rev)),e.exceptions=hs(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},ps=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const ms=ds({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),gs=ds(os),fs=ds(rs),vs=ds(as),bs=ps(ms),ys=ps(gs),ws=ps(fs),Ps=ps(vs),ks=ds(ns),As=ds(is);var js={fromPast:ms,fromPresent:gs,fromGerund:fs,fromParticiple:vs,toPast:bs,toPresent:ys,toGerund:ws,toParticiple:Ps,toComparative:ks,toSuperlative:As,fromComparative:ps(ks),fromSuperlative:ps(As)},xs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ns=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Es=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Is[t].forEach((n=>e[n]=t)),e)),{});var Gs=Is,Ts=function(e){let t=e.substring(e.length-3);if(!0===Gs.hasOwnProperty(t))return Gs[t];let n=e.substring(e.length-2);return!0===Gs.hasOwnProperty(n)?Gs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ds={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Cs=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ts(e)),Ds.hasOwnProperty(e))c=Ds[e];else if("Participle"===n)c=ls(l,i);else if("PastTense"===n)c=ls(l,r);else if("PresentTense"===n)c=ls(l,a);else{if("Gerund"!==n)return e;c=ls(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};const Os=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ls(i,n),PresentTense:ls(i,r),Gerund:ls(i,a),FutureTense:"will "+e},u=ls(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Vs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Bs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],zs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var $s=function(e){if(zs.hasOwnProperty(e))return zs[e];let t=Vs(e,Bs);return t||e+"ly"};const Fs=function(e,t){const n=t.two.models.toSuperlative;return ls(e,n)},Ss=function(e,t){const n=t.two.models.toComparative;return ls(e,n)},Hs="ically",Ws=new Set(["analyt"+Hs,"chem"+Hs,"class"+Hs,"clin"+Hs,"crit"+Hs,"ecolog"+Hs,"electr"+Hs,"empir"+Hs,"frant"+Hs,"grammat"+Hs,"ident"+Hs,"ideolog"+Hs,"log"+Hs,"mag"+Hs,"mathemat"+Hs,"mechan"+Hs,"med"+Hs,"method"+Hs,"method"+Hs,"mus"+Hs,"phys"+Hs,"phys"+Hs,"polit"+Hs,"pract"+Hs,"rad"+Hs,"satir"+Hs,"statist"+Hs,"techn"+Hs,"technolog"+Hs,"theoret"+Hs,"typ"+Hs,"vert"+Hs,"whims"+Hs]),Ms=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Js=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ls={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var qs=function(e){return e.endsWith("ly")?Ws.has(e)?e.replace(/ically/,"ical"):Js.has(e)?null:Ls.hasOwnProperty(e)?Ls[e]:Vs(e,Ms)||e:null};const Ks=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Us={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Rs=new Set(["terrible","annoying"]);var _s={noun:{toPlural:Oo,toSingular:Es,all:Oo},verb:{toInfinitive:Cs,conjugate:Os,all:function(e,t){let n=Os(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},adjective:{toSuperlative:Fs,toComparative:Ss,toAdverb:$s,toNoun:function(e){if(Us.hasOwnProperty(e))return Us[e];if(Rs.has(e))return null;let t=Vs(e,Ks);return t||e+"ness"},fromAdverb:qs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ls(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ls(e,n)},all:function(e,t){let n=[e];return n.push(Fs(e,t)),n.push(Ss(e,t)),n.push($s(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}}},Qs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Zs=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Qs.hasOwnProperty(i)&&Qs[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},Ys=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!tl.find((t=>e.endsWith(t)))},rl={two:{quickSplit:Ys,expandLexicon:Zs,transform:_s,looksPlural:nl}},al=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const ol=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var il=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=ol(n,"Infinitive","PastTense"),Object.assign(s,l),l=ol(r,"Infinitive","Verb"),Object.assign(s,l),l=ol(a,"Infinitive","Gerund"),Object.assign(s,l),l=ol(o,"Adjective","Superlative"),Object.assign(s,l),l=ol(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let sl={two:{models:js}};const ll={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},ul=function(e,t){const n={model:t,methods:rl};let{lex:r,_multi:a}=rl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},cl=function(e,t,n){let r=Os(e,sl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},hl=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=ll[o],"Noun|Verb"!==o&&"Person|Verb"!==o||cl(a,r,!1),"Adj|Present"===o&&(cl(a,r,!0),function(e,t,n){let r=Fs(e,n);t[r]=t[r]||"Superlative";let a=Ss(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Cs(a,sl,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Cs(a,sl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=ul(n,t)};var dl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=ul(e.one.lexicon,e)).one.lexicon,e),e=hl(e.two.switches,e),e=il(e),e=al(e)};let pl={one:{_multiCache:{},lexicon:Bo},two:{irregularPlurals:Po,models:js,suffixPatterns:zi,prefixPatterns:Hi,endsWith:Yi,neighbours:ts,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:zo,clues:ki,uncountable:{},orgWords:xs}};pl=dl(pl);var ml=pl;const gl=/^(under|over|mis|re|un|dis|semi)-?/;var fl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(gl.test(a.normal)){let e=a.normal.replace(gl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},vl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const bl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var yl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(nl(e.normal)?vl(e,"Plural","3-plural-guess"):vl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ts(e.normal);t&&vl(e,t,"3-verb-tense-guess")}}(r)};const wl=/^\p{Lu}[\p{Ll}'’]/u,Pl=/[0-9]/,kl=["Date","Month","WeekDay","Unit"],Al=/^[IVXLCDM]{2,}$/,jl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,xl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Nl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===wl.test(o)&&!1===Pl.test(o)?kl.find((e=>r.tags.has(e)))?null:(yl(e,t,n),r.tags.has("Noun")||r.tags.clear(),vl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Al.test(o)&&jl.test(o)&&!xl[r.normal]?(vl(r,"RomanNumeral","2-xvii"),!0):null};const El=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var Il=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=El(r.normal,n.two.suffixPatterns);if(null!==e)return vl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=El(r.implicit,n.two.suffixPatterns),null!==e))return vl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Gl=/['‘’‛‵′`´]/,Tl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return vl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Ol=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Vl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Ol.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Bl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},zl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var $l=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Vl(a)||Vl(o))return vl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Bl(a)||Bl(o))return vl(n,"Year","2-tagYear-close");if(zl(e[t-2])||zl(e[t+2]))return vl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return vl(n,"Year","2-tagYear-noun")}}}return null};const Fl=/^[A-Z]('s|,)?$/,Sl=/^[A-Z-]+$/,Hl=/([A-Z]\.)+[A-Z]?,?$/,Wl=/[A-Z]{2,}('s|,)?$/,Ml=/([a-z]\.)+[a-z]\.?$/,Jl={I:!0,A:!0};var Ll=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Sl.test(n)||n.length>5||Jl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Hl.test(n)&&!0!==Ml.test(n)&&!0!==Fl.test(n)&&!0!==Wl.test(n))}(r,n)?(r.tags.clear(),vl(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Jl.hasOwnProperty(r.text)&&Fl.test(r.text)?(r.tags.clear(),vl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(vl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Sl.test(r.text)&&r.text.length<=6?(vl(r,"Acronym","3-titlecase-acronym"),!0):null};const ql=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Kl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ul=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||ql(e[t-1],a),l=l||ql(e[t+1],o),l=l||Kl(e[t-1],r),l=l||Kl(e[t+1],i),l)return vl(s,l,"3-[neighbour]"),yl(e,t,n),e[t].confidence=.2,!0}return null};const Rl=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var _l=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Rl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Rl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ql=function(e,t,n){0===e[t].tags.size&&(vl(e[t],"Noun","3-[fallback]"),yl(e,t,n),e[t].confidence=.1)};const Zl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Yl=(e,t,n)=>0!==t||e[1]?null:n,Xl={"Adj|Gerund":(e,t)=>Zl(e,t),"Adj|Noun":(e,t)=>Zl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Zl(e,t),"Adj|Present":(e,t)=>Zl(e,t),"Noun|Gerund":(e,t)=>Zl(e,t),"Noun|Verb":(e,t)=>Zl(e,t)||Yl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Zl(e,t)||Yl(e,t,"PresentTense"),"Person|Noun":(e,t)=>Zl(e,t),"Person|Verb":(e,t)=>0!==t?Zl(e,t):null};var eu=Xl;const tu="undefined"!=typeof process&&process.env?process.env:self.env||{},nu=/^(under|over|mis|re|un|dis|semi)-?/,ru=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&tu.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},au=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&tu.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var ou=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(nu.test(l)&&!o[l]&&(l=l.replace(nu,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=ru(e[t+1],n.afterWords);return o=o||ru(e[t-1],n.beforeWords),o=o||au(e[t-1],n.beforeTags,a),o=o||au(e[t+1],n.afterTags,a),o}(e,t,i[o],r);eu[o]&&(u=eu[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),yl(e,t,r)):tu.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},iu=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(vl(o,"Verb","3-[prefix]"),vl(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(vl(o,"Adjective","3-[prefix]"),vl(o,"Prefix","3-[prefix]")))};const su={tagSwitch:fl,checkSuffix:Il,checkRegex:Dl,checkCase:Nl,checkPrefix:Cl,checkHyphen:iu,checkYear:$l},lu={checkAcronym:Ll,neighbours:Ul,orgWords:_l,nounFallback:Ql,switches:ou},uu=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var pu=function(e){const t=e.world,n=Object.keys(du);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=xu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=ju},Eu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Iu=/'/;var Gu=function(e,t){let n=e[t].normal.split(Iu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Tu=/'/;var Du=function(e,t){let n=e[t].normal.split(Tu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Cu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Ou={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Vu={in:!0,by:!0,for:!0};var Bu=(e,t)=>{let n=e[t];if(Ou.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Vu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const zu=/'/,$u=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Fu={d:(e,t)=>Du(e,t),t:(e,t)=>Cu(e,t),s:(e,t,n)=>Bu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Gu(e,t)},Su=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Hu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===zu.test(r[o].normal)&&([,i]=r[o].normal.split(zu));let s=null;Fu.hasOwnProperty(i)&&(s=Fu[i](r,o,t)),s&&(s=Su(s,e),Eu(n,[a,o],s),$u(n[a],e,o,s.length))}}))}},Wu={compute:Hu,api:Nu,hooks:["contractionTwo"]};const Mu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Ju=["i","we","they"];let Lu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Mu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Mu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Mu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ju,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ju,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ju,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),qu=null;var Ku={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;qu=qu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(qu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Uu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ku,model:{two:{matches:Lu}},hooks:["postTagger"]};var Ru=Uu,_u=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},Qu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=_u(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Zu={lib:{lazy:Qu}},Yu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},Xu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Yu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},ec={api:function(e){e.prototype.swap=Xu}};v.plugin(Pu),v.plugin(Wu),v.plugin(Ru),v.plugin(Zu),v.plugin(ec);var tc=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter((e=>e.wordCount()>5&&e.match("#Verb+").length>=2));if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},nc=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r},rc=function(e){e.prototype.chunks=nc,e.prototype.clauses=tc};const ac={this:"Noun",then:"Pivot"};var oc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},pc={chunks:function(e){const{document:t,world:n}=e;oc(t),ic(t),uc(e,t,n),hc(t),dc(t)}},mc={compute:pc,api:rc,hooks:["chunks"]};const gc=/'s$/;var fc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(gc,""),e.normal=e.normal.replace(gc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const vc=/\(/,bc=/\)/,yc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(vc,"");let t=e[e.length-1];t.post=t.post.replace(bc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const Pc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},kc=RegExp("("+Object.keys(Pc).join("|")+")"),Ac=RegExp("("+Object.values(Pc).join("|")+")"),jc=function(e,t){const n=e[t].pre.match(kc)[0]||"";if(!n||!Pc[n])return null;const r=Pc[n];for(;t{e[0].pre=e[0].pre.replace(kc,"");let t=e[e.length-1];t.post=t.post.replace(Ac,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Nc=/\./g;var Ec=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Nc,""),e.normal=e.normal.replace(Nc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Nc,""),e.normal=e.normal.replace(Nc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},Ic=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Gc=(e,t)=>"number"==typeof t?e.eq(t):e,Tc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Dc=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Tc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let o=Tc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Gc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Gc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Gc(t,e),new Adjectives(t.document,t.pointer)}};const Cc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},Oc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let Vc=[["emojis","emoji"],["atmentions","atMentions"]];var Bc=function(e){Oc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Cc,Vc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},zc={api:function(e){Bc(e),fc(e),wc(e),xc(e),Dc(e),Ic(e),Ec(e)}};const $c=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Fc={case:e=>{$c(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;$c(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{$c(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{$c(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Sc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Hc="unicode|punctuation|whitespace|acronyms",Wc="|case|contractions|parentheses|quotations|emoji|honorifics",Mc={light:Sc(Hc),medium:Sc(Hc+Wc),heavy:Sc(Hc+Wc+"|possessives|adverbs|nouns|verbs")};var Jc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Mc[e]),Object.keys(e).forEach((t=>{Fc.hasOwnProperty(t)&&Fc[t](this,e[t])})),this}}},Lc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const qc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Kc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Rc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Uc(e,t),isSubordinate:Kc(e),root:t}};const _c=e=>e.text(),Qc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Zc=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Yc=function(e){let t=Rc(e);return{root:_c(t.root),number:Zc(t.number),determiner:_c(t.determiner),adjectives:Qc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Xc={tags:!0};var eh=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Xc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Xc),e};const th={tags:!0};var nh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,th).tag("Singular","toPlural"),e};const rh=(e,t)=>"number"==typeof t?e.eq(t):e;var ah=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return rh(this,e).map(Rc)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Yc(t)),n}),[])}isPlural(e){let t=this.filter((e=>Rc(e).isPlural));return rh(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Rc(e).adjectives;n.found&&(t=t.concat(n))})),rh(t,e)}toPlural(e){return rh(this,e).map((e=>eh(e,Rc(e))))}toSingular(e){return rh(this,e).map((e=>{let t=Rc(e);return nh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Lc(this);return t=rh(t,e),new Nouns(this.document,t.pointer)}},oh={api:ah},ih=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},sh=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(lh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(lh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(lh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},ch=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const dh=/^([0-9,. ]+)\/([0-9,. ]+)$/,ph={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},mh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var gh=function(e){if(!0===ph.hasOwnProperty(e))return ph[e];if("a"===e||"an"===e)return 1;const t=sh(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=vh(n),r=vh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:vh(n);let a=r.text("reduced");return fh.test(a)&&(a=a.replace(fh,""),r=r.replaceWith(a)),r=bh.hasOwnProperty(a)?bh[a]:vh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:vh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},wh=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const Ph=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],kh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Ah=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],jh=function(e){let t=[];if(e>100)return t;for(let n=0;n=Ph[n][1]&&(e-=Ph[n][1],t.push(Ph[n][0]));return kh[e]&&t.push(kh[e]),t};var xh=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=wh(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Ah.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(jh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=wh(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Nh=function(e){return e.numerator&&e.denominator?`${xh({num:e.numerator})} out of ${xh({num:e.denominator})}`:""};const Eh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Ih=e=>{let t=xh(e).split(" "),n=t[t.length-1];return Eh.hasOwnProperty(n)?t[t.length-1]=Eh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Gh=function(e){if(!e.numerator||!e.denominator)return"";let t=xh({num:e.numerator}),n=Ih({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Th=(e,t)=>"number"==typeof t?e.eq(t):e;var Dh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Th(this,e).map(yh)}get(e){return Th(this,e).map(yh)}json(e){return Th(this,e).map((t=>{let n=t.toView().json(e)[0],r=yh(t);return n.fraction=r,n}),[])}toDecimal(e){return Th(this,e).forEach((e=>{let{decimal:t}=yh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return Th(this,e).forEach((e=>{let t=yh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return Th(this,e).forEach((e=>{let t=yh(e),n=Gh(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return Th(this,e).forEach((e=>{let t=yh(e),n=Nh(t);e.replaceWith(n)})),this}toPercentage(e){return Th(this,e).forEach((e=>{let{decimal:t}=yh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=ih(this);return t=Th(t,e),new Fractions(this.document,t.pointer)}};const Ch="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Oh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Ch+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Ch+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Ch+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Ch+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Ch})`),r=e.has("("+Ch+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Ch+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Ch+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},Vh=function(e){if("string"==typeof e)return{num:gh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=yh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=gh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Bh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=wh(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const zh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},$h={"%":"percent","°":"degrees"};var Fh=function(e){let t={suffix:"",prefix:e.prefix};return zh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+zh[e.prefix],t.prefix=""),$h.hasOwnProperty(e.suffix)&&(t.suffix+=" "+$h[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},Sh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Fh(e);return t+Ih(e)+n}if("Ordinal"===t)return e.prefix+Bh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Fh(e);return t+xh(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Hh=(e,t)=>"number"==typeof t?e.eq(t):e;var Wh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Hh(this,e).map(Vh)}get(e){return Hh(this,e).map(Vh).map((e=>e.num))}json(e){return Hh(this,e).map((t=>{let n=t.toView().json(e)[0],r=Vh(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=Vh(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Sh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=Vh(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Sh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Sh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Sh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Sh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>Vh(t).num===e))}greaterThan(e){return this.filter((t=>Vh(t).num>e))}lessThan(e){return this.filter((t=>Vh(t).num{let r=Vh(n).num;return r>e&&r{let n=Vh(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Sh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=Vh(e).num);let t=this.map((t=>{let n=Vh(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Sh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Oh(this);return t=Hh(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Oh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=Hh(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Oh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=Hh(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Mh={api:function(e){Dh(e),Wh(e)}};const Jh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Lh=function(e={}){return!1!==(e=Object.assign({},Jh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},qh={api:function(e){e.prototype.redact=Lh}};var Kh=qh,Uh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},Rh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},_h=function(e){let t=e.clauses(),n=Rh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Qh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Zh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},Yh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},Xh=function(e){return e.verbs().toInfinitive(),e};const ed=(e,t)=>"number"==typeof t?e.eq(t):e;var td=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=_h(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n}),[])}toPastTense(e){return ed(this,e).map((e=>(_h(e),Qh(e))))}toPresentTense(e){return ed(this,e).map((e=>(_h(e),Zh(e))))}toFutureTense(e){return ed(this,e).map((e=>(_h(e),e=Yh(e))))}toInfinitive(e){return ed(this,e).map((e=>(_h(e),Xh(e))))}toNegative(e){return ed(this,e).map((e=>(_h(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return ed(this,e).map((e=>(_h(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return ed(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return ed(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=ed(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Uh(this);return ed(t,e)}};Object.assign(e.prototype,t)},nd={api:td},rd=function(e){return e.match("#Honorific+? #Person+")},ad=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const od="male",id="female",sd={mr:od,mrs:id,miss:id,madam:id,king:od,queen:id,duke:od,duchess:id,baron:od,baroness:id,count:od,countess:id,prince:od,princess:id,sire:od,dame:id,lady:id,ayatullah:od,congressman:od,congresswoman:id,"first lady":id,mx:null};var ld=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return id;if(n.has("#MaleName"))return od;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),sd.hasOwnProperty(e))return sd[e];if(/^her /.test(e))return id;if(/^his /.test(e))return od}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return od;if(n&&!t)return id}return null};const ud=(e,t)=>"number"==typeof t?e.eq(t):e;var cd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return ud(this,e).map(ad)}json(e){return ud(this,e).map((t=>{let n=t.toView().json(e)[0],r=ad(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:ld(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=rd(this);return t=ud(t,e),new People(this.document,t.pointer)}},hd=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},dd=function(e){e.prototype.places=function(t){let n=hd(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},pd=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const md=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var gd=function(e){e.prototype.topics=md},fd={api:function(e){cd(e),dd(e),pd(e),gd(e)}},vd=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},bd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},yd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const wd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Pd=function(e){return e.match("#Negative")},kd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Ad=function(e){let t=e.clone();t.contractions().expand();const n=bd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:yd(t,n),auxiliary:wd(t,n),negative:Pd(t),phrasal:kd(n)}};const jd={tense:"PresentTense"},xd={conditional:!0},Nd={tense:"FutureTense"},Ed={progressive:!0},Id={tense:"PastTense"},Gd={complete:!0,progressive:!1},Td={passive:!0},Dd=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Cd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[jd]],["^wanted to #Infinitive$",[Id]],["^will want to #Infinitive$",[Nd]]],"gerund-phrase":[["^#PastTense #Gerund$",[Id]],["^#PresentTense #Gerund$",[jd]],["^#Infinitive #Gerund$",[jd]],["^will #Infinitive #Gerund$",[Nd]],["^have #PastTense #Gerund$",[Id]],["^will have #PastTense #Gerund$",[Id]]],"simple-present":[["^#PresentTense$",[jd]],["^#Infinitive$",[jd]]],"simple-past":[["^#PastTense$",[Id]]],"simple-future":[["^will #Adverb? #Infinitive",[Nd]]],"present-progressive":[["^(is|are|am) #Gerund$",[jd,Ed]]],"past-progressive":[["^(was|were) #Gerund$",[Id,Ed]]],"future-progressive":[["^will be #Gerund$",[Nd,Ed]]],"present-perfect":[["^(has|have) #PastTense$",[Id,Gd]]],"past-perfect":[["^had #PastTense$",[Id,Gd]],["^had #PastTense to #Infinitive",[Id,Gd]]],"future-perfect":[["^will have #PastTense$",[Nd,Gd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Id,Ed]]],"past-perfect-progressive":[["^had been #Gerund$",[Id,Ed]]],"future-perfect-progressive":[["^will have been #Gerund$",[Nd,Ed]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Id,Td]],["^(was|were) being (#PastTense|#Participle)",[Id,Td]],["^(had|have) been (#PastTense|#Participle)",[Id,Td]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[jd,Td]],["^(is|are|am) being (#PastTense|#Participle)",[jd,Td]],["^has been (#PastTense|#Participle)",[jd,Td]]],"passive-future":[["will have been (#PastTense|#Participle)",[Nd,Td,xd]],["will be being? (#PastTense|#Participle)",[Nd,Td,xd]]],"present-conditional":[["would be #PastTense",[jd,xd]]],"past-conditional":[["would have been #PastTense",[Id,xd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Nd]]],"auxiliary-past":[["^did #Infinitive$",[Id,{plural:!1}]],["^used to #Infinitive$",[Id,Gd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[jd,Gd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Id]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Od=[];Object.keys(Cd).map((e=>{Cd[e].forEach((t=>{Od.push({name:e,match:t[0],data:Dd(t[1])})}))}));var Vd=Od,Bd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),zd(r)&&(n.remove(r),r=n.last()),zd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:$d(t,e)}};const Sd=e=>e,Hd=(e,t)=>{let n=Fd(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Wd=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Fd(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Md=function(e,t){let n=Fd(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Jd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Ld=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Jd(e)),r&&e.replace(t.root,r),e},qd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Kd=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Ud=function(e){return e&&e.isView?e.text("normal"):""},Rd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Jd(e))};var _d=function(e){let t=Ad(e);e=e.clone().toView();const n=Bd(e,t);return{root:t.root.text(),preAdverbs:Kd(t.adverbs.pre),postAdverbs:Kd(t.adverbs.post),auxiliary:Ud(t.auxiliary),negative:t.negative.found,prefix:Ud(t.prefix),infinitive:Rd(t.root),grammar:n}};const Qd={tags:!0};var Zd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Jd(r)),i&&e.replace(r,i,Qd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Md(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Yd={tags:!0},Xd={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Jd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Fd(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Yd),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Xd.simple(e,t),e=Xd.noAux(e,t))},hasHad:e=>(e.replace("has","had",Yd),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Jd(a)),n(o,e.model).Participle}},ep={infinitive:Xd.simple,"simple-present":Xd.simple,"simple-past":Sd,"simple-future":Xd.both,"present-progressive":e=>(e.replace("are","were",Yd),e.replace("(is|are|am)","was",Yd),e),"past-progressive":Sd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Xd.hasHad,"past-perfect":Sd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=qd(e)),e.remove("have"),e),"present-perfect-progressive":Xd.hasHad,"past-perfect-progressive":Sd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Yd),e),"passive-past":e=>(e.replace("have","had",Yd),e),"passive-present":e=>(e.replace("(is|are)","was",Yd),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Yd),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Sd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Yd),e),"auxiliary-past":Sd,"auxiliary-present":e=>(e.replace("(do|does)","did",Yd),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Yd):(Xd.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Sd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Yd),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Xd.simple(e,t),qd(e),e)};var tp=function(e,t,n){return ep.hasOwnProperty(n)?((e=ep[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const np={tags:!0},rp=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Jd(a)),!1===Hd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Wd(e)),o&&(e=e.replace(a,o,np)).not("#Particle").tag("PresentTense"),e},ap=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Jd(a)),!1===Hd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,np)).not("#Particle").tag("Gerund"),e},op={infinitive:rp,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return rp(e,t);{let t=Fd(e).subject;if(Hd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,np)}return e},"simple-past":rp,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Wd(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else rp(e,t),e=e.remove("will");return e},"present-progressive":Sd,"past-progressive":(e,t)=>{let n=Wd(e);return e.replace("(were|was)",n,np)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(rp(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Fd(e).subject;return Hd(e)||n.has("i")?((e=Ld(e,t)).remove("had"),e):(e.replace("had","has",np),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Sd,"past-perfect-progressive":e=>e.replace("had","has",np),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Wd(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,np),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Sd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Sd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(ap(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Md(e);return e.replace(t.auxiliary,n),e}return ap(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Sd,"modal-infinitive":Sd,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Jd(r)),a&&(e=e.replace(t.root,a,np))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),rp(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Hd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,np),e.remove("will"),e}};var ip=function(e,t,n){return op.hasOwnProperty(n)?((e=op[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const sp={tags:!0},lp=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Jd(r)),o&&(e=e.replace(r,o,sp)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},up=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Jd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,sp),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},cp={infinitive:lp,"simple-present":lp,"simple-past":lp,"simple-future":Sd,"present-progressive":up,"past-progressive":up,"future-progressive":Sd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Sd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Sd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Sd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Sd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Sd,"modal-past":Sd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),lp(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var hp=function(e,t,n){return e.has("will")||e.has("going to")?e:cp.hasOwnProperty(n)?((e=cp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const dp={tags:!0};var pp=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Jd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Wd(e)} ${s}`,e.replace(a,s,dp)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const mp={tags:!0},gp=function(e,t){let n=Md(e);return e.prepend(n+" not"),e},fp=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},vp=e=>e.has("(is|was|am|are|will|were|be)"),bp={"simple-present":(e,t)=>!0===vp(e)?fp(e):(e=Ld(e,t),e=gp(e)),"simple-past":(e,t)=>!0===vp(e)?fp(e):((e=Ld(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===vp(e)?fp(e):gp(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",mp),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=gp(e)).replace("wants","want",mp)};var yp=function(e,t,n){if(e.has("#Negative"))return e;if(bp.hasOwnProperty(n))return e=bp[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===vp(e)?fp(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const wp=(e,t)=>"number"==typeof t?e.eq(t):e;var Pp=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return wp(this,e).map(Ad)}json(e,t){let n=wp(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=_d(t),n}),[]);return n}subjects(e){return wp(this,e).map((e=>(Ad(e),Fd(e).subject)))}adverbs(e){return wp(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return wp(this,e).filter((e=>!0!==Fd(e).plural))}isPlural(e){return wp(this,e).filter((e=>!0===Fd(e).plural))}isImperative(e){return wp(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return Zd(e,t,n.form)}))}toPresentTense(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return ip(e,t,n.form)}))}toPastTense(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return tp(e,t,n.form)}))}toFutureTense(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return hp(e,t,n.form)}))}toGerund(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return pp(e,t,n.form)}))}conjugate(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Zd(e.clone(),t,n.form).text("normal"),PastTense:tp(e.clone(),t,n.form).text("normal"),PresentTense:ip(e.clone(),t,n.form).text("normal"),FutureTense:hp(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return yp(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=vd(this);return t=wp(t,e),new Verbs(this.document,t.pointer)}},kp={api:Pp};return v.plugin(mc),v.plugin(zc),v.plugin(Jc),v.plugin(oh),v.plugin(Mh),v.plugin(Kh),v.plugin(nd),v.plugin(fd),v.plugin(kp),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var p=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let m=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=p(e,l,m);return e&&n.compute(m.hooks),n};Object.defineProperty(f,"_world",{value:m,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=p(e,l,m);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},j=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},x=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?j(n):(j(n),j([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!k(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||k(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var G=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},D=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=G(e),e)))}(d),n?(T(t.update([u]).firstTerm()),N(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var $=z,F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=F(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const W={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};W.deHyphenate=W.dehyphenate,W.toQuotation=W.toQuotations;var M=W,J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var _={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}},Q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,H,M,U,_,Q);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(pe);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ke=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},je={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},xe=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=xe(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&je.hasOwnProperty(l)&&(c=je[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),ke(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ke(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]},Ge=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Oe,lib:Be,hooks:["lexicon"]},$e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const We=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=We(e.goNext,void 0),e.failTo=We(e.failTo,0),e.endAs=We(e.endAs,null),e};const Je={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};Je.compile=Je.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Je};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Qe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Qe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Qe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,pt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){pt.test(e)?(n.choices=e.split(pt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var kt=Pt;const At=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const xt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var It=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(xt(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(xt(e,t)),n=n.concat(Nt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Gt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>kt(e,t))),r=jt(r,n),r=It(r,n),r=Gt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Vt.test(e.pre)||Bt.test(e.post),hasComma:e=>Ft(e,","),hasPeriod:e=>!0===Ft(e,".")&&!1===Ft(e,"..."),hasExclamation:e=>Ft(e,"!"),hasQuestionMark:e=>Ft(e,"?")||Ft(e,"¿"),hasEllipses:e=>Ft(e,"..")||Ft(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>Ft(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Wt=Ht;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Wt[t.method]&&!0===Wt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Jt=Mt;const Lt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(qt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Jt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Jt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(qt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Qt=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Jt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Jt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Jt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Qt(e,r,t[e.r+1]):(e.t+=1,!0)},Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Jt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Jt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Xt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Lt(e,a)){if(e.negative){if(!Zt(a))return null}else if(!0!==Jt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!tn(a))return null}else if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else if(!_t(a))return null}else if(!Rt(a))return null}else if(!Kt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},ln={api:ot,methods:{one:{termMethods:Wt,parseMatch:Tt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(a)&&(a=" "),a=a.replace(gn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(pn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let Pn=[],kn=0;for(;kn<64;)Pn[kn]=0|4294967296*Math.sin(++kn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(kn=i=0;kn>4]+Pn[i]+~~o[kn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const jn={text:!0,terms:!0};let xn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},En={text:e=>bn(e,{keepPunct:!0},!1),normal:e=>bn(e,Nn(wn.normal,{keepPunct:!0}),!1),implicit:e=>bn(e,Nn(wn.implicit,{keepPunct:!0}),!1),machine:e=>bn(e,xn,!1),root:e=>bn(e,Nn(xn,{form:"root"}),!1),hash:e=>An(bn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const In={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},jn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};In.data=In.json;var Gn=In,Tn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Dn="";var Cn={green:e=>""+e+Dn,red:e=>""+e+Dn,blue:e=>""+e+Dn,magenta:e=>""+e+Dn,cyan:e=>""+e+Dn,yellow:e=>""+e+Dn,black:e=>""+e+Dn,dim:e=>""+e+Dn,i:e=>""+e+Dn},On=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Cn.blue("\n ──────")),t.forEach((e=>{console.log(Cn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Cn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Cn.blue(" │ ")+Cn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Cn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Vn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Cn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Tn(t),t):(!1!==e.tags&&(On(t),console.log("\n")),!0===e.chunks&&(Vn(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const $n=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Fn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Hn=Sn,Wn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Kn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},Rn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},_n={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>qn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Yn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>qn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},er=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},tr={union:function(e){e=Xn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)}};tr.and=tr.union,tr.intersection=function(e){e=Xn(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.not=function(e){e=Xn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.difference=tr.not,tr.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=er(t,this.document),this.toView(t)},tr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Qn(e,[t])})),e=er(e,this.document),this.update(e)};var nr=function(e){Object.assign(e.prototype,tr)},rr={methods:_n,api:nr},ar=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const or=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ir=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(or(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(or(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=or(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},sr=function(e,t){e=ir(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},lr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},ur=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},cr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},hr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=lr(a,t.hooks);return o=ur(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),cr(o,e,a,n,r)},dr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===dr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ar,methods:{one:{buildNet:sr,bulkMatch:hr,bulkTagger:pr}}};const gr=/ /,fr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},vr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),gr.test(t))!function(e,t,n,r){let a=t.split(gr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),vr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var yr=br,wr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Pr({id:e}))),t}return[Pr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},xr=e=>"[object Array]"===Object.prototype.toString.call(e),Nr=e=>(e=e||"").trim(),Er=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||kr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ar(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Pr({});return e.forEach((e=>{if((e=Pr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(jr(t=e).forEach(Pr),t);var t},Ir=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return jr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Gr=function(e){let t=jr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Tr={text:Ir,txt:Ir,array:Gr,flat:Gr},Dr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ir(e,!0)),null):Tr.hasOwnProperty(t)?Tr[t](e):e},Cr=e=>{jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Or=/\//;let Vr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Nr(e),!Or.test(e)){let t=this.json.children.find((t=>t.id===e));return new Vr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||Pr({});return new Vr(t)}add(e,t={}){if(xr(e))return e.forEach((e=>this.add(Nr(e),t))),this;e=Nr(e);let n=Pr({id:e,props:t});return this.json.children.push(n),new Vr(n)}remove(e){return e=Nr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return jr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return jr(this.json)}fillDown(){var e;return e=this.json,jr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else xr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Cr(this.json);let e=jr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Cr(this.json),Dr(this.json,e)}debug(){return Cr(this.json),Dr(this.json,"debug"),this}};const Br=function(e){let t=Er(e);return new Vr(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const $r=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Fr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:$r(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sr=function(e){return e?"string"==typeof e?[e]:e:[]};var Hr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sr(e[t].children),e[t].not=Sr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Wr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Hr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Fr(n)},Mr={one:{setTag:yr,unTag:wr,addTags:Wr}};const Jr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Lr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Jr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Jr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var qr=Lr,Kr=function(e){Object.assign(e.prototype,qr)},Ur={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Rr=new Set(["Auxiliary","Possessive"]);var _r=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Rr.has(e)||!t.hasOwnProperty(n))return 1;if(Rr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Qr={model:{one:{tagSet:{}}},compute:{tagRank:_r},methods:Mr,api:Kr,lib:Ur};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Yr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var ea=function(e){let t=[],n=e.split(Xr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const oa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ia=RegExp("("+Object.keys(oa).join("|")+")","g"),sa=RegExp("("+Object.values(oa).join("|")+")","g"),la=function(e){if(!e)return!1;let t=e.match(sa);return null!==t&&1===t.length};var ua=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var xa=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Aa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wa(n),n=ba(n),n=n.filter((e=>e)),n};let Na=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Ea=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ia=/[\p{Punctuation}\s]+$/u,Ga=/^[\p{Punctuation}\s]+/u,Ta=/['’]/,Da=/^[a-z]\.([a-z]\.)+/i,Ca=/^'[0-9]{2}/;var Oa=function(e){let t=e,n="",r="";return e=e.replace(Ga,(t=>{let r=t.match(Na);return r?(n=t.replace(Na,""),r):"'"===n&&Ca.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ia,(a=>{let o=a.match(Ea);return o?(r=a.replace(Ea,""),o):Ta.test(a)&&/[sn]['’]$/.test(t)&&!1===Ta.test(n)?(r=r.replace(Ta,""),"'"):!0===Da.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}},Va=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},Ba=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const za=/([A-Z]\.)+[A-Z]?,?$/,$a=/^[A-Z]\.,?$/,Fa=/[A-Z]{2,}('s|,)?$/,Sa=/([a-z]\.)+[a-z]\.?$/;var Ha=function(e){return function(e){return!0===za.test(e)||!0===Sa.test(e)||!0===$a.test(e)||!0===Fa.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Wa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ba(r),r=n(r,t),r=Ha(r),e.normal=r},Ma=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Wa(e,t)})),n})),e};const Ja=/[ .][A-Z]\.? *$/i,La=/(?:\u2026|\.{2,}) *$/,qa=/\p{L}/u,Ka=/^[A-Z]\. $/;var Ua=function(e,t){if(!1===qa.test(e))return!1;if(!0===Ja.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===La.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ra={one:{killUnicode:Va,tokenize:{splitSentences:ga,isSentence:Ua,splitTerms:xa,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Oa(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Ma}}},_a={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},Za={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qa[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])}))}));var Ya=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){eo[t]=e}))}));const to=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),to.test(n)&&!no.test(n)&&!ro.test(n)){let t=n.split(to);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const oo=/^\p{Letter}+-\p{Letter}+$/u;var io=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),oo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},so=function(e){let t=e.docs,n={};for(let e=0;eho(e,ao),machine:e=>ho(e,io),normal:e=>ho(e,Wa),freq:so,offset:lo,index:uo,wordCount:co},methods:Ra,model:{one:{aliases:_a,abbreviations:Qa,prefixes:Ya,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Za,unicode:eo}},hooks:["alias","machine","index","id"]},mo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var fo=function(e){e.prototype.autoFill=go},vo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const bo={safe:!0,min:3};var yo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},bo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=vo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},wo={model:{one:{typeahead:{}}},api:fo,lib:yo,compute:mo,hooks:["typeahead"]};v.extend(ee),v.extend(Ln),v.extend(ln),v.extend(rr),v.extend(Qr),v.plugin(Ie),v.extend(po),v.plugin(P),v.extend(Le),v.extend(wo),v.extend(ze),v.extend(mr);var Po={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ko={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ao=36,jo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",xo=jo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==xo[e])return xo[e];let t=0,n=1,r=Ao,a=1;for(;n=0;n--,a*=Ao){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Eo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Go(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=To(ko[e]);Vo.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Oo(t,$o);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Bo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Bo[e]="Emoticon")),delete Bo[""],delete Bo.null,delete Bo[" "];const Fo="Adjective";var So={beforeTags:{Determiner:Fo,Possessive:Fo},afterTags:{Adjective:Fo},beforeWords:{seem:Fo,seemed:Fo,seems:Fo,feel:Fo,feels:Fo,felt:Fo,appear:Fo,appears:Fo,appeared:Fo,also:Fo,over:Fo,under:Fo,too:Fo,it:Fo,but:Fo,still:Fo,really:Fo,quite:Fo,well:Fo,very:Fo,deeply:Fo,profoundly:Fo,extremely:Fo,so:Fo,badly:Fo,mostly:Fo,totally:Fo,awfully:Fo,rather:Fo,nothing:Fo,something:Fo,anything:Fo,not:Fo,me:Fo},afterWords:{too:Fo,also:Fo,or:Fo}};const Ho="Gerund";var Wo={beforeTags:{Adverb:Ho,Preposition:Ho,Conjunction:Ho},afterTags:{Adverb:Ho,Possessive:Ho,Person:Ho,Pronoun:Ho,Determiner:Ho,Copula:Ho,Preposition:Ho,Conjunction:Ho,Comparative:Ho},beforeWords:{been:Ho,keep:Ho,continue:Ho,stop:Ho,am:Ho,be:Ho,me:Ho,began:Ho,start:Ho,starts:Ho,started:Ho,stops:Ho,stopped:Ho,help:Ho,helps:Ho,avoid:Ho,avoids:Ho,love:Ho,loves:Ho,loved:Ho,hate:Ho,hates:Ho,hated:Ho},afterWords:{you:Ho,me:Ho,her:Ho,him:Ho,them:Ho,their:Ho,it:Ho,this:Ho,there:Ho,on:Ho,about:Ho,for:Ho}},Mo={beforeTags:Object.assign({},So.beforeTags,Wo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},So.afterTags,Wo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},So.beforeWords,Wo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},So.afterWords,Wo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Jo="Singular";var Lo={beforeTags:{Determiner:Jo,Possessive:Jo,Acronym:Jo,Noun:Jo,Adjective:Jo,PresentTense:Jo,Gerund:Jo,PastTense:Jo,Infinitive:Jo,Date:Jo},afterTags:{Value:Jo,Modal:Jo,Copula:Jo,PresentTense:Jo,PastTense:Jo,Demonym:Jo},beforeWords:{the:Jo,with:Jo,without:Jo,of:Jo,for:Jo,any:Jo,all:Jo,on:Jo,cut:Jo,cuts:Jo,save:Jo,saved:Jo,saves:Jo,make:Jo,makes:Jo,made:Jo,minus:Jo,plus:Jo,than:Jo,another:Jo,versus:Jo,neither:Jo,favorite:Jo,best:Jo,daily:Jo,weekly:Jo,linear:Jo,binary:Jo,mobile:Jo,lexical:Jo,technical:Jo,computer:Jo,scientific:Jo,formal:Jo},afterWords:{of:Jo,system:Jo,aid:Jo,method:Jo,utility:Jo,tool:Jo,reform:Jo,therapy:Jo,philosophy:Jo,room:Jo,authority:Jo,says:Jo,said:Jo,wants:Jo,wanted:Jo}};const qo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ko={beforeTags:Object.assign({},So.beforeTags,Lo.beforeTags,qo.beforeTags),afterTags:Object.assign({},So.afterTags,Lo.afterTags),beforeWords:Object.assign({},So.beforeWords,Lo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Lo.afterWords)};const Uo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ro={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},_o={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Qo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Zo={beforeTags:Object.assign({},So.beforeTags,Uo),afterTags:Object.assign({},So.afterTags,Ro),beforeWords:Object.assign({},So.beforeWords,_o),afterWords:Object.assign({},So.afterWords,Qo)};const Yo="Infinitive";var Xo={beforeTags:{Modal:Yo,Adverb:Yo,Negative:Yo,Plural:Yo},afterTags:{Determiner:Yo,Adverb:Yo,Possessive:Yo,Preposition:Yo},beforeWords:{i:Yo,we:Yo,you:Yo,they:Yo,to:Yo,please:Yo,will:Yo,have:Yo,had:Yo,would:Yo,could:Yo,should:Yo,do:Yo,did:Yo,does:Yo,can:Yo,must:Yo,us:Yo,me:Yo,he:Yo,she:Yo,it:Yo,being:Yo},afterWords:{the:Yo,me:Yo,you:Yo,him:Yo,her:Yo,them:Yo,it:Yo,a:Yo,an:Yo,up:Yo,down:Yo,by:Yo,out:Yo,off:Yo,under:Yo,when:Yo,all:Yo,to:Yo,because:Yo,although:Yo,before:Yo,how:Yo,otherwise:Yo,together:Yo,though:Yo,yet:Yo}};const ei={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ti={beforeTags:Object.assign({},So.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},So.afterTags,Xo.afterTags,ei.afterTags),beforeWords:Object.assign({},So.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Xo.afterWords,{to:void 0})};const ni={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ri={},ai={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oi={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ii={beforeTags:Object.assign({},Wo.beforeTags,Lo.beforeTags,ni),afterTags:Object.assign({},Wo.afterTags,Lo.afterTags,ri),beforeWords:Object.assign({},Wo.beforeWords,Lo.beforeWords,ai),afterWords:Object.assign({},Wo.afterWords,Lo.afterWords,oi)},si={beforeTags:Object.assign({},Xo.beforeTags,Lo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xo.afterTags,Lo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xo.beforeWords,Lo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xo.afterWords,Lo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const li="Person";var ui={beforeTags:{Honorific:li,Person:li,Preposition:li},afterTags:{Person:li,ProperNoun:li,Verb:li},ownTags:{ProperNoun:li},beforeWords:{hi:li,hey:li,yo:li,dear:li,hello:li},afterWords:{said:li,says:li,told:li,tells:li,feels:li,felt:li,seems:li,thinks:li,thought:li,spends:li,spendt:li,plays:li,played:li,sing:li,sang:li,learn:li,learned:li,wants:li,wanted:li}};const ci="Month",hi={beforeTags:{Date:ci,Value:ci},afterTags:{Date:ci,Value:ci},beforeWords:{by:ci,in:ci,on:ci,during:ci,after:ci,before:ci,between:ci,until:ci,til:ci,sometime:ci,of:ci,this:ci,next:ci,last:ci,previous:ci,following:ci},afterWords:{sometime:ci,in:ci,of:ci,until:ci,the:ci}};var di={beforeTags:Object.assign({},ui.beforeTags,hi.beforeTags),afterTags:Object.assign({},ui.afterTags,hi.afterTags),beforeWords:Object.assign({},ui.beforeWords,hi.beforeWords),afterWords:Object.assign({},ui.afterWords,hi.afterWords)};const pi={Place:"Place"},mi={Place:"Place",Abbreviation:"Place"},gi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},fi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let vi="Unit";const bi="Honorific";let yi={first:bi,general:bi,royal:bi,vice:bi,rear:bi,major:bi};const wi={"Adj|Gerund":Mo,"Adj|Noun":Ko,"Adj|Past":Zo,"Adj|Present":ti,"Noun|Verb":si,"Noun|Gerund":ii,"Person|Noun":{beforeTags:Object.assign({},Lo.beforeTags,ui.beforeTags),afterTags:Object.assign({},Lo.afterTags,ui.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ui.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Lo.afterWords,ui.afterWords)},"Person|Date":di,"Person|Verb":{beforeTags:Object.assign({},ui.beforeTags,Xo.beforeTags),afterTags:Object.assign({},ui.afterTags,Xo.afterTags),beforeWords:Object.assign({},ui.beforeWords,Xo.beforeWords),afterWords:Object.assign({},ui.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},pi,ui.beforeTags),afterTags:Object.assign({},mi,ui.afterTags),beforeWords:Object.assign({},gi,ui.beforeWords),afterWords:Object.assign({},fi,ui.afterWords)},"Unit|Noun":{beforeTags:{Value:vi},afterTags:{},beforeWords:{per:vi,every:vi,each:vi,square:vi,cubic:vi,sq:vi,metric:vi},afterWords:{per:vi,squared:vi,cubed:vi,long:vi}},"Honorific|Noun":{beforeTags:{Honorific:bi,ProperNoun:bi,Ordinal:bi},afterTags:{Person:bi,ProperNoun:bi},beforeWords:Object.assign({},yi,{honorable:bi,honourable:bi,worship:bi,excellency:bi,majesty:bi,right:bi}),afterWords:yi}},Pi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};wi["Plural|Verb"]={beforeWords:Pi(wi["Noun|Verb"].beforeWords,{}),afterWords:Pi(wi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:Pi(wi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Pi(wi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ki=wi;const Ai="Adjective",ji="Infinitive",xi="PresentTense",Ni="Singular",Ei="PastTense",Ii="Adverb",Gi="Plural",Ti="Actor",Di="Verb",Ci="Noun",Oi="LastName",Vi="Modal",Bi="Participle";var zi=[null,null,{ea:Ni,ia:Ci,ic:Ai,ly:Ii,"'n":Di,"'t":Di},{oed:Ei,ued:Ei,xed:Ei," so":Ii,"'ll":Vi,"'re":"Copula",azy:Ai,eer:Ci,end:Di,ped:Ei,ffy:Ai,ify:ji,ing:"Gerund",ize:ji,ibe:ji,lar:Ai,mum:Ai,nes:xi,nny:Ai,ous:Ai,que:Ai,rol:Ni,sis:Ni,ogy:Ni,oid:Ni,ian:Ni,zes:xi,eld:Ei,ken:Bi,ven:Bi,ten:Bi,ect:ji,ict:ji,ign:ji,ful:Ai,bal:Ai},{amed:Ei,aped:Ei,ched:Ei,lked:Ei,rked:Ei,reed:Ei,nded:Ei,mned:Ai,cted:Ei,dged:Ei,ield:Ni,akis:Oi,cede:ji,chuk:Oi,czyk:Oi,ects:xi,ends:Di,enko:Oi,ette:Ni,wner:Ni,fies:xi,fore:Ii,gate:ji,gone:Ai,ices:Gi,ints:Gi,ruct:ji,ines:Gi,ions:Gi,less:Ai,llen:Ai,made:Ai,nsen:Oi,oses:xi,ould:Vi,some:Ai,sson:Oi,tion:Ni,tage:Ci,ique:Ni,tive:Ai,tors:Ci,vice:Ni,lier:Ni,fier:Ni,wned:Ei,gent:Ni,tist:Ni,pist:Ni,rist:Ni,mist:Ni,yist:Ni,vist:Ni,lite:Ni,site:Ni,rite:Ni,mite:Ni,bite:Ni,mate:Ni,date:Ni,ndal:Ni,vent:Ni,uist:Ni,gist:Ni,note:Ni,cide:Ni,wide:Ai,vide:ji,ract:ji,duce:ji,pose:ji,eive:ji,lyze:ji,lyse:ji,iant:Ai,nary:Ai},{elist:Ni,holic:Ni,phite:Ni,tized:Ei,urned:Ei,eased:Ei,ances:Gi,bound:Ai,ettes:Gi,fully:Ii,ishes:xi,ities:Gi,marek:Oi,nssen:Oi,ology:Ci,osome:Ni,tment:Ni,ports:Gi,rough:Ai,tches:xi,tieth:"Ordinal",tures:Gi,wards:Ii,where:Ii,archy:Ci,pathy:Ci,opoly:Ci,embly:Ci,phate:Ci,ndent:Ni,scent:Ni,onist:Ni,anist:Ni,alist:Ni,olist:Ni,icist:Ni,ounce:ji,iable:Ai,borne:Ai,gnant:Ai,inant:Ai,igent:Ai,atory:Ai,rient:Ni,dient:Ni},{auskas:Oi,parent:Ni,cedent:Ni,ionary:Ni,cklist:Ni,keeper:Ti,logist:Ti,teenth:"Value"},{opoulos:Oi,borough:"Place",sdottir:Oi}];const $i="Adjective",Fi="Noun",Si="Verb";var Hi=[null,null,{},{neo:Fi,bio:Fi,"de-":Si,"re-":Si,"un-":Si},{anti:Fi,auto:Fi,faux:$i,hexa:Fi,kilo:Fi,mono:Fi,nano:Fi,octa:Fi,poly:Fi,semi:$i,tele:Fi,"pro-":$i,"mis-":Si,"dis-":Si,"pre-":$i},{anglo:Fi,centi:Fi,ethno:Fi,ferro:Fi,grand:Fi,hepta:Fi,hydro:Fi,intro:Fi,macro:Fi,micro:Fi,milli:Fi,nitro:Fi,penta:Fi,quasi:$i,radio:Fi,tetra:Fi,"omni-":$i,"post-":$i},{pseudo:$i,"extra-":$i,"hyper-":$i,"inter-":$i,"intra-":$i,"deca-":$i},{electro:Fi}];const Wi="Adjective",Mi="Infinitive",Ji="PresentTense",Li="Singular",qi="PastTense",Ki="Adverb",Ui="Expression",Ri="Actor",_i="Verb",Qi="Noun",Zi="LastName";var Yi={a:[[/.[aeiou]na$/,Qi,"tuna"],[/.[oau][wvl]ska$/,Zi],[/.[^aeiou]ica$/,Li,"harmonica"],[/^([hyj]a+)+$/,Ui,"haha"]],c:[[/.[^aeiou]ic$/,Wi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,qi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,qi,"rammed"],[/.[aeiou][sg]hed$/,qi,"gushed"],[/.[aeiou]red$/,qi,"hired"],[/.[aeiou]r?ried$/,qi,"hurried"],[/[^aeiou]ard$/,Li,"steward"],[/[aeiou][^aeiou]id$/,Wi,""],[/.[vrl]id$/,Wi,"livid"],[/..led$/,qi,"hurled"],[/.[iao]sed$/,qi,""],[/[aeiou]n?[cs]ed$/,qi,""],[/[aeiou][rl]?[mnf]ed$/,qi,""],[/[aeiou][ns]?c?ked$/,qi,"bunked"],[/[aeiou]gned$/,qi],[/[aeiou][nl]?ged$/,qi],[/.[tdbwxyz]ed$/,qi],[/[^aeiou][aeiou][tvx]ed$/,qi],[/.[cdflmnprstv]ied$/,qi,"emptied"]],e:[[/.[lnr]ize$/,Mi,"antagonize"],[/.[^aeiou]ise$/,Mi,"antagonise"],[/.[aeiou]te$/,Mi,"bite"],[/.[^aeiou][ai]ble$/,Wi,"fixable"],[/.[^aeiou]eable$/,Wi,"maleable"],[/.[ts]ive$/,Wi,"festive"],[/[a-z]-like$/,Wi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Wi,"cornish"],[/.v[iy]ch$/,Zi,"..ovich"],[/^ug?h+$/,Ui,"ughh"],[/^uh[ -]?oh$/,Ui,"uhoh"],[/[a-z]-ish$/,Wi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Zi,"polish-male"]],k:[[/^(k){2}$/,Ui,"kkkk"]],l:[[/.[gl]ial$/,Wi,"familial"],[/.[^aeiou]ful$/,Wi,"fitful"],[/.[nrtumcd]al$/,Wi,"natal"],[/.[^aeiou][ei]al$/,Wi,"familial"]],m:[[/.[^aeiou]ium$/,Li,"magnesium"],[/[^aeiou]ism$/,Li,"schism"],[/^[hu]m+$/,Ui,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Wi,"republican"],[/[^aeiou]ician$/,Ri,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ui,"noooo"],[/^(yo)+$/,Ui,"yoo"],[/^wo{2,}[pt]?$/,Ui,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Li],[/[^i]fer$/,Mi],[/.[^aeiou][ao]pher$/,Ri],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Wi],[/[aeiou].*ist$/,Wi],[/^[a-z]et$/,_i]],s:[[/.[^aeiou]ises$/,Ji],[/.[rln]ates$/,Ji],[/.[^z]ens$/,_i],[/.[lstrn]us$/,Li],[/.[aeiou]sks$/,Ji],[/.[aeiou]kes$/,Ji],[/[aeiou][^aeiou]is$/,Li],[/[a-z]'s$/,Qi],[/^yes+$/,Ui]],v:[[/.[^aeiou][ai][kln]ov$/,Zi]],y:[[/.[cts]hy$/,Wi],[/.[st]ty$/,Wi],[/.[tnl]ary$/,Wi],[/.[oe]ry$/,Li],[/[rdntkbhs]ly$/,Ki],[/.(gg|bb|zz)ly$/,Wi],[/...lly$/,Ki],[/.[gk]y$/,Wi],[/[bszmp]{2}y$/,Wi],[/.[ai]my$/,Wi],[/[ea]{2}zy$/,Wi],[/.[^aeiou]ity$/,Li]]};const Xi="Verb",es="Noun";var ts={leftTags:[["Adjective",es],["Possessive",es],["Determiner",es],["Adverb",Xi],["Pronoun",Xi],["Value",es],["Ordinal",es],["Modal",Xi],["Superlative",es],["Demonym",es],["Honorific","Person"]],leftWords:[["i",Xi],["first",es],["it",Xi],["there",Xi],["not",Xi],["because",es],["if",es],["but",es],["who",Xi],["this",es],["his",es],["when",es],["you",Xi],["very","Adjective"],["old",es],["never",Xi],["before",es],["a","Singular"],["the",es],["been",Xi]],rightTags:[["Copula",es],["PastTense",es],["Conjunction",es],["Modal",es]],rightWords:[["there",Xi],["me",Xi],["man","Adjective"],["only",Xi],["him",Xi],["it",Xi],["were",es],["took",es],["himself",Xi],["went",es],["who",es],["jr","Person"]]},ns={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},rs={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},as={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},os={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},is={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ss=/^.([0-9]+)/;var ls=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ss);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ss,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},cs=/^([0-9]+)/,hs=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(cs);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(cs,"")]}(n[0],n[1])}))};var ds=function(e={}){return(e=Object.assign({},e)).rules=hs(e.rules),e.rules=us(e.rules),e.rev&&(e.rev=hs(e.rev),e.rev=us(e.rev)),e.exceptions=hs(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},ps=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const ms=ds({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),gs=ds(os),fs=ds(rs),vs=ds(as),bs=ps(ms),ys=ps(gs),ws=ps(fs),Ps=ps(vs),ks=ds(ns),As=ds(is);var js={fromPast:ms,fromPresent:gs,fromGerund:fs,fromParticiple:vs,toPast:bs,toPresent:ys,toGerund:ws,toParticiple:Ps,toComparative:ks,toSuperlative:As,fromComparative:ps(ks),fromSuperlative:ps(As)},xs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ns=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Es=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Gs[t].forEach((n=>e[n]=t)),e)),{});var Ts=Gs,Ds=function(e){let t=e.substring(e.length-3);if(!0===Ts.hasOwnProperty(t))return Ts[t];let n=e.substring(e.length-2);return!0===Ts.hasOwnProperty(n)?Ts[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Cs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Os=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ds(e)),Cs.hasOwnProperty(e))c=Cs[e];else if("Participle"===n)c=ls(l,i);else if("PastTense"===n)c=ls(l,r);else if("PresentTense"===n)c=ls(l,a);else{if("Gerund"!==n)return e;c=ls(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Vs=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ls(i,n),PresentTense:ls(i,r),Gerund:ls(i,a),FutureTense:"will "+e},u=ls(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Bs={toInfinitive:Os,conjugate:Vs,all:function(e,t){let n=Vs(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},zs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const $s=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Fs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ss=function(e){if(Fs.hasOwnProperty(e))return Fs[e];let t=zs(e,$s);return t||e+"ly"};const Hs=function(e,t){const n=t.two.models.toSuperlative;return ls(e,n)},Ws=function(e,t){const n=t.two.models.toComparative;return ls(e,n)},Ms="ically",Js=new Set(["analyt"+Ms,"chem"+Ms,"class"+Ms,"clin"+Ms,"crit"+Ms,"ecolog"+Ms,"electr"+Ms,"empir"+Ms,"frant"+Ms,"grammat"+Ms,"ident"+Ms,"ideolog"+Ms,"log"+Ms,"mag"+Ms,"mathemat"+Ms,"mechan"+Ms,"med"+Ms,"method"+Ms,"method"+Ms,"mus"+Ms,"phys"+Ms,"phys"+Ms,"polit"+Ms,"pract"+Ms,"rad"+Ms,"satir"+Ms,"statist"+Ms,"techn"+Ms,"technolog"+Ms,"theoret"+Ms,"typ"+Ms,"vert"+Ms,"whims"+Ms]),Ls=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],qs=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ks={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Us=function(e){return e.endsWith("ly")?Js.has(e)?e.replace(/ically/,"ical"):qs.has(e)?null:Ks.hasOwnProperty(e)?Ks[e]:zs(e,Ls)||e:null};const Rs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],_s={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Qs=new Set(["terrible","annoying"]);var Zs={toSuperlative:Hs,toComparative:Ws,toAdverb:Ss,toNoun:function(e){if(_s.hasOwnProperty(e))return _s[e];if(Qs.has(e))return null;let t=zs(e,Rs);return t||e+"ness"},fromAdverb:Us,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ls(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ls(e,n)},all:function(e,t){let n=[e];return n.push(Hs(e,t)),n.push(Ws(e,t)),n.push(Ss(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Ys={noun:Is,verb:Bs,adjective:Zs},Xs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},el=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Xs.hasOwnProperty(i)&&Xs[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},tl=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!al.find((t=>e.endsWith(t)))},il={two:{quickSplit:tl,expandLexicon:el,transform:Ys,looksPlural:ol}},sl=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const ll=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var ul=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=ll(n,"Infinitive","PastTense"),Object.assign(s,l),l=ll(r,"Infinitive","Verb"),Object.assign(s,l),l=ll(a,"Infinitive","Gerund"),Object.assign(s,l),l=ll(o,"Adjective","Superlative"),Object.assign(s,l),l=ll(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let cl={two:{models:js}};const hl={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},dl=function(e,t){const n={model:t,methods:il};let{lex:r,_multi:a}=il.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},pl=function(e,t,n){let r=Vs(e,cl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},ml=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=hl[o],"Noun|Verb"!==o&&"Person|Verb"!==o||pl(a,r,!1),"Adj|Present"===o&&(pl(a,r,!0),function(e,t,n){let r=Hs(e,n);t[r]=t[r]||"Superlative";let a=Ws(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Os(a,cl,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Os(a,cl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=dl(n,t)};var gl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=dl(e.one.lexicon,e)).one.lexicon,e),e=ml(e.two.switches,e),e=ul(e),e=sl(e)};let fl={one:{_multiCache:{},lexicon:Bo},two:{irregularPlurals:Po,models:js,suffixPatterns:zi,prefixPatterns:Hi,endsWith:Yi,neighbours:ts,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:zo,clues:ki,uncountable:{},orgWords:xs}};fl=gl(fl);var vl=fl;const bl=/^(under|over|mis|re|un|dis|semi)-?/;var yl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(bl.test(a.normal)){let e=a.normal.replace(bl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},wl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const Pl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var kl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(ol(e.normal)?wl(e,"Plural","3-plural-guess"):wl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ds(e.normal);t&&wl(e,t,"3-verb-tense-guess")}}(r)};const Al=/^\p{Lu}[\p{Ll}'’]/u,jl=/[0-9]/,xl=["Date","Month","WeekDay","Unit"],Nl=/^[IVXLCDM]{2,}$/,El=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Il={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Gl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===Al.test(o)&&!1===jl.test(o)?xl.find((e=>r.tags.has(e)))?null:(kl(e,t,n),r.tags.has("Noun")||r.tags.clear(),wl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Nl.test(o)&&El.test(o)&&!Il[r.normal]?(wl(r,"RomanNumeral","2-xvii"),!0):null};const Tl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var Dl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Tl(r.normal,n.two.suffixPatterns);if(null!==e)return wl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Tl(r.implicit,n.two.suffixPatterns),null!==e))return wl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Cl=/['‘’‛‵′`´]/,Ol=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return wl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const zl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),$l=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!zl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Fl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Sl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Hl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if($l(a)||$l(o))return wl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Fl(a)||Fl(o))return wl(n,"Year","2-tagYear-close");if(Sl(e[t-2])||Sl(e[t+2]))return wl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return wl(n,"Year","2-tagYear-noun")}}}return null};const Wl=/^[A-Z]('s|,)?$/,Ml=/^[A-Z-]+$/,Jl=/([A-Z]\.)+[A-Z]?,?$/,Ll=/[A-Z]{2,}('s|,)?$/,ql=/([a-z]\.)+[a-z]\.?$/,Kl={I:!0,A:!0};var Ul=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Ml.test(n)||n.length>5||Kl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Jl.test(n)&&!0!==ql.test(n)&&!0!==Wl.test(n)&&!0!==Ll.test(n))}(r,n)?(r.tags.clear(),wl(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Kl.hasOwnProperty(r.text)&&Wl.test(r.text)?(r.tags.clear(),wl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(wl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Ml.test(r.text)&&r.text.length<=6?(wl(r,"Acronym","3-titlecase-acronym"),!0):null};const Rl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},_l=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ql=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Rl(e[t-1],a),l=l||Rl(e[t+1],o),l=l||_l(e[t-1],r),l=l||_l(e[t+1],i),l)return wl(s,l,"3-[neighbour]"),kl(e,t,n),e[t].confidence=.2,!0}return null};const Zl=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Yl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Zl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Zl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Xl=function(e,t,n){0===e[t].tags.size&&(wl(e[t],"Noun","3-[fallback]"),kl(e,t,n),e[t].confidence=.1)};const eu=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,tu=(e,t,n)=>0!==t||e[1]?null:n,nu={"Adj|Gerund":(e,t)=>eu(e,t),"Adj|Noun":(e,t)=>eu(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>eu(e,t),"Adj|Present":(e,t)=>eu(e,t),"Noun|Gerund":(e,t)=>eu(e,t),"Noun|Verb":(e,t)=>eu(e,t)||tu(e,t,"Infinitive"),"Plural|Verb":(e,t)=>eu(e,t)||tu(e,t,"PresentTense"),"Person|Noun":(e,t)=>eu(e,t),"Person|Verb":(e,t)=>0!==t?eu(e,t):null};var ru=nu;const au="undefined"!=typeof process&&process.env?process.env:self.env||{},ou=/^(under|over|mis|re|un|dis|semi)-?/,iu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&au.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},su=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&au.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var lu=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(ou.test(l)&&!o[l]&&(l=l.replace(ou,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=iu(e[t+1],n.afterWords);return o=o||iu(e[t-1],n.beforeWords),o=o||su(e[t-1],n.beforeTags,a),o=o||su(e[t+1],n.afterTags,a),o}(e,t,i[o],r);ru[o]&&(u=ru[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),kl(e,t,r)):au.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},uu=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(wl(o,"Verb","3-[prefix]"),wl(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(wl(o,"Adjective","3-[prefix]"),wl(o,"Prefix","3-[prefix]")))};const cu={tagSwitch:yl,checkSuffix:Dl,checkRegex:Vl,checkCase:Gl,checkPrefix:Bl,checkHyphen:uu,checkYear:Hl},hu={checkAcronym:Ul,neighbours:Ql,orgWords:Yl,nounFallback:Xl,switches:lu},du=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var fu=function(e){const t=e.world,n=Object.keys(gu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=Iu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Eu},Tu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Du=/'/;var Cu=function(e,t){let n=e[t].normal.split(Du)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Ou=/'/;var Vu=function(e,t){let n=e[t].normal.split(Ou)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Bu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const zu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},$u={in:!0,by:!0,for:!0};var Fu=(e,t)=>{let n=e[t];if(zu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===$u[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Su=/'/,Hu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Wu={d:(e,t)=>Vu(e,t),t:(e,t)=>Bu(e,t),s:(e,t,n)=>Fu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Cu(e,t)},Mu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Ju={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Su.test(r[o].normal)&&([,i]=r[o].normal.split(Su));let s=null;Wu.hasOwnProperty(i)&&(s=Wu[i](r,o,t)),s&&(s=Mu(s,e),Tu(n,[a,o],s),Hu(n[a],e,o,s.length))}}))}},Lu={compute:Ju,api:Gu,hooks:["contractionTwo"]};const qu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Ku=["i","we","they"];let Uu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${qu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${qu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${qu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ku,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Ru=null;var _u={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Ru=Ru||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Ru),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Qu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:_u,model:{two:{matches:Uu}},hooks:["postTagger"]};var Zu=Qu,Yu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},Xu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Yu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},ec={lib:{lazy:Xu}},tc=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},nc=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?tc(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},rc={api:function(e){e.prototype.swap=nc}};v.plugin(ju),v.plugin(Lu),v.plugin(Zu),v.plugin(ec),v.plugin(rc);var ac=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter((e=>e.wordCount()>5&&e.match("#Verb+").length>=2));if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},oc=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r},ic=function(e){e.prototype.chunks=oc,e.prototype.clauses=ac};const sc={this:"Noun",then:"Pivot"};var lc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},fc={chunks:function(e){const{document:t,world:n}=e;lc(t),uc(t),dc(e,t,n),mc(t),gc(t)}},vc={compute:fc,api:ic,hooks:["chunks"]};const bc=/'s$/;var yc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(bc,""),e.normal=e.normal.replace(bc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const wc=/\(/,Pc=/\)/,kc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(wc,"");let t=e[e.length-1];t.post=t.post.replace(Pc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const jc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},xc=RegExp("("+Object.keys(jc).join("|")+")"),Nc=RegExp("("+Object.values(jc).join("|")+")"),Ec=function(e,t){const n=e[t].pre.match(xc)[0]||"";if(!n||!jc[n])return null;const r=jc[n];for(;t{e[0].pre=e[0].pre.replace(xc,"");let t=e[e.length-1];t.post=t.post.replace(Nc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Gc=/\./g;var Tc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Gc,""),e.normal=e.normal.replace(Gc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Gc,""),e.normal=e.normal.replace(Gc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},Dc=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Cc=(e,t)=>"number"==typeof t?e.eq(t):e,Oc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Vc=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Oc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let o=Oc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Cc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Cc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Cc(t,e),new Adjectives(t.document,t.pointer)}};const Bc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},zc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let $c=[["emojis","emoji"],["atmentions","atMentions"]];var Fc=function(e){zc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Bc,$c.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},Sc={api:function(e){Fc(e),yc(e),Ac(e),Ic(e),Vc(e),Dc(e),Tc(e)}};const Hc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Wc={case:e=>{Hc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Hc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{Hc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{Hc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Mc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Jc="unicode|punctuation|whitespace|acronyms",Lc="|case|contractions|parentheses|quotations|emoji|honorifics",qc={light:Mc(Jc),medium:Mc(Jc+Lc),heavy:Mc(Jc+Lc+"|possessives|adverbs|nouns|verbs")};var Kc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=qc[e]),Object.keys(e).forEach((t=>{Wc.hasOwnProperty(t)&&Wc[t](this,e[t])})),this}}},Uc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Rc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var _c=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Zc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Qc(e,t),isSubordinate:_c(e),root:t}};const Yc=e=>e.text(),Xc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),eh=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var th=function(e){let t=Zc(e);return{root:Yc(t.root),number:eh(t.number),determiner:Yc(t.determiner),adjectives:Xc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const nh={tags:!0};var rh=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,nh).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",nh),e};const ah={tags:!0};var oh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,ah).tag("Singular","toPlural"),e};const ih=(e,t)=>"number"==typeof t?e.eq(t):e;var sh=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return ih(this,e).map(Zc)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=th(t)),n}),[])}isPlural(e){let t=this.filter((e=>Zc(e).isPlural));return ih(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Zc(e).adjectives;n.found&&(t=t.concat(n))})),ih(t,e)}toPlural(e){return ih(this,e).map((e=>rh(e,Zc(e))))}toSingular(e){return ih(this,e).map((e=>{let t=Zc(e);return oh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Uc(this);return t=ih(t,e),new Nouns(this.document,t.pointer)}},lh={api:sh},uh=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},ch=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(hh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(hh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(hh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},ph=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const gh=/^([0-9,. ]+)\/([0-9,. ]+)$/,fh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},vh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var bh=function(e){if(!0===fh.hasOwnProperty(e))return fh[e];if("a"===e||"an"===e)return 1;const t=ch(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=wh(n),r=wh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:wh(n);let a=r.text("reduced");return yh.test(a)&&(a=a.replace(yh,""),r=r.replaceWith(a)),r=Ph.hasOwnProperty(a)?Ph[a]:wh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:wh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},Ah=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const jh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],xh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Nh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Eh=function(e){let t=[];if(e>100)return t;for(let n=0;n=jh[n][1]&&(e-=jh[n][1],t.push(jh[n][0]));return xh[e]&&t.push(xh[e]),t};var Ih=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ah(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Nh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Eh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ah(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Gh=function(e){return e.numerator&&e.denominator?`${Ih({num:e.numerator})} out of ${Ih({num:e.denominator})}`:""};const Th={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Dh=e=>{let t=Ih(e).split(" "),n=t[t.length-1];return Th.hasOwnProperty(n)?t[t.length-1]=Th[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Ch=function(e){if(!e.numerator||!e.denominator)return"";let t=Ih({num:e.numerator}),n=Dh({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Oh=(e,t)=>"number"==typeof t?e.eq(t):e;var Vh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Oh(this,e).map(kh)}get(e){return Oh(this,e).map(kh)}json(e){return Oh(this,e).map((t=>{let n=t.toView().json(e)[0],r=kh(t);return n.fraction=r,n}),[])}toDecimal(e){return Oh(this,e).forEach((e=>{let{decimal:t}=kh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return Oh(this,e).forEach((e=>{let t=kh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return Oh(this,e).forEach((e=>{let t=kh(e),n=Ch(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return Oh(this,e).forEach((e=>{let t=kh(e),n=Gh(t);e.replaceWith(n)})),this}toPercentage(e){return Oh(this,e).forEach((e=>{let{decimal:t}=kh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=uh(this);return t=Oh(t,e),new Fractions(this.document,t.pointer)}};const Bh="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var zh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Bh+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Bh+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Bh+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Bh+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Bh})`),r=e.has("("+Bh+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Bh+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Bh+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},$h=function(e){if("string"==typeof e)return{num:bh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=kh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=bh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Fh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Ah(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Sh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Hh={"%":"percent","°":"degrees"};var Wh=function(e){let t={suffix:"",prefix:e.prefix};return Sh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Sh[e.prefix],t.prefix=""),Hh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Hh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},Mh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Wh(e);return t+Dh(e)+n}if("Ordinal"===t)return e.prefix+Fh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Wh(e);return t+Ih(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Jh=(e,t)=>"number"==typeof t?e.eq(t):e;var Lh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Jh(this,e).map($h)}get(e){return Jh(this,e).map($h).map((e=>e.num))}json(e){return Jh(this,e).map((t=>{let n=t.toView().json(e)[0],r=$h(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=$h(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Mh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=$h(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Mh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=$h(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Mh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=$h(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Mh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=$h(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Mh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>$h(t).num===e))}greaterThan(e){return this.filter((t=>$h(t).num>e))}lessThan(e){return this.filter((t=>$h(t).num{let r=$h(n).num;return r>e&&r{let n=$h(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Mh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=$h(e).num);let t=this.map((t=>{let n=$h(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Mh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=zh(this);return t=Jh(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=zh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=Jh(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=zh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=Jh(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},qh={api:function(e){Vh(e),Lh(e)}};const Kh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Uh=function(e={}){return!1!==(e=Object.assign({},Kh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},Rh={api:function(e){e.prototype.redact=Uh}};var _h=Rh,Qh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},Zh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},Yh=function(e){let t=e.clauses(),n=Zh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Xh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},ed=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},td=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},nd=function(e){return e.verbs().toInfinitive(),e};const rd=(e,t)=>"number"==typeof t?e.eq(t):e;var ad=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Yh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n}),[])}toPastTense(e){return rd(this,e).map((e=>(Yh(e),Xh(e))))}toPresentTense(e){return rd(this,e).map((e=>(Yh(e),ed(e))))}toFutureTense(e){return rd(this,e).map((e=>(Yh(e),e=td(e))))}toInfinitive(e){return rd(this,e).map((e=>(Yh(e),nd(e))))}toNegative(e){return rd(this,e).map((e=>(Yh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return rd(this,e).map((e=>(Yh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return rd(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return rd(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=rd(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Qh(this);return rd(t,e)}};Object.assign(e.prototype,t)},od={api:ad},id=function(e){return e.match("#Honorific+? #Person+")},sd=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const ld="male",ud="female",cd={mr:ld,mrs:ud,miss:ud,madam:ud,king:ld,queen:ud,duke:ld,duchess:ud,baron:ld,baroness:ud,count:ld,countess:ud,prince:ld,princess:ud,sire:ld,dame:ud,lady:ud,ayatullah:ld,congressman:ld,congresswoman:ud,"first lady":ud,mx:null};var hd=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return ud;if(n.has("#MaleName"))return ld;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),cd.hasOwnProperty(e))return cd[e];if(/^her /.test(e))return ud;if(/^his /.test(e))return ld}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return ld;if(n&&!t)return ud}return null};const dd=(e,t)=>"number"==typeof t?e.eq(t):e;var pd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return dd(this,e).map(sd)}json(e){return dd(this,e).map((t=>{let n=t.toView().json(e)[0],r=sd(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:hd(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=id(this);return t=dd(t,e),new People(this.document,t.pointer)}},md=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},gd=function(e){e.prototype.places=function(t){let n=md(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},fd=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const vd=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var bd=function(e){e.prototype.topics=vd},yd={api:function(e){pd(e),gd(e),fd(e),bd(e)}},wd=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},Pd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},kd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const Ad=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},jd=function(e){return e.match("#Negative")},xd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Nd=function(e){let t=e.clone();t.contractions().expand();const n=Pd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:kd(t,n),auxiliary:Ad(t,n),negative:jd(t),phrasal:xd(n)}};const Ed={tense:"PresentTense"},Id={conditional:!0},Gd={tense:"FutureTense"},Td={progressive:!0},Dd={tense:"PastTense"},Cd={complete:!0,progressive:!1},Od={passive:!0},Vd=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Bd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Ed]],["^wanted to #Infinitive$",[Dd]],["^will want to #Infinitive$",[Gd]]],"gerund-phrase":[["^#PastTense #Gerund$",[Dd]],["^#PresentTense #Gerund$",[Ed]],["^#Infinitive #Gerund$",[Ed]],["^will #Infinitive #Gerund$",[Gd]],["^have #PastTense #Gerund$",[Dd]],["^will have #PastTense #Gerund$",[Dd]]],"simple-present":[["^#PresentTense$",[Ed]],["^#Infinitive$",[Ed]]],"simple-past":[["^#PastTense$",[Dd]]],"simple-future":[["^will #Adverb? #Infinitive",[Gd]]],"present-progressive":[["^(is|are|am) #Gerund$",[Ed,Td]]],"past-progressive":[["^(was|were) #Gerund$",[Dd,Td]]],"future-progressive":[["^will be #Gerund$",[Gd,Td]]],"present-perfect":[["^(has|have) #PastTense$",[Dd,Cd]]],"past-perfect":[["^had #PastTense$",[Dd,Cd]],["^had #PastTense to #Infinitive",[Dd,Cd]]],"future-perfect":[["^will have #PastTense$",[Gd,Cd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Dd,Td]]],"past-perfect-progressive":[["^had been #Gerund$",[Dd,Td]]],"future-perfect-progressive":[["^will have been #Gerund$",[Gd,Td]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Dd,Od]],["^(was|were) being (#PastTense|#Participle)",[Dd,Od]],["^(had|have) been (#PastTense|#Participle)",[Dd,Od]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Ed,Od]],["^(is|are|am) being (#PastTense|#Participle)",[Ed,Od]],["^has been (#PastTense|#Participle)",[Ed,Od]]],"passive-future":[["will have been (#PastTense|#Participle)",[Gd,Od,Id]],["will be being? (#PastTense|#Participle)",[Gd,Od,Id]]],"present-conditional":[["would be #PastTense",[Ed,Id]]],"past-conditional":[["would have been #PastTense",[Dd,Id]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Gd]]],"auxiliary-past":[["^did #Infinitive$",[Dd,{plural:!1}]],["^used to #Infinitive$",[Dd,Cd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Ed,Cd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Dd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let zd=[];Object.keys(Bd).map((e=>{Bd[e].forEach((t=>{zd.push({name:e,match:t[0],data:Vd(t[1])})}))}));var $d=zd,Fd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t<$d.length;t+=1){let r=$d[t];if(!0===e.has(r.match)){n.form=r.name,Object.assign(n,r.data);break}}return n.form||e.has("^#Verb$")&&(n.form="infinitive"),n.tense||(n.tense=t.root.has("#PastTense")?"PastTense":"PresentTense"),n.copula=t.root.has("#Copula"),n};const Sd=function(e){return!(e.length<=1)&&(e.parse()[0]||{}).isSubordinate},Hd=function(e,t){return!!t.has("(are|were|does)")||!!e.has("(those|they|we)")||!(!e.found||!e.isPlural)&&e.isPlural().found};var Wd=function(e){let t=function(e){let t=e.before();t=function(e){let t=e.clauses();return t=t.filter(((e,t)=>!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),Sd(r)&&(n.remove(r),r=n.last()),Sd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Hd(t,e)}};const Md=e=>e,Jd=(e,t)=>{let n=Wd(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Ld=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Wd(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},qd=function(e,t){let n=Wd(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Kd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Ud=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Kd(e)),r&&e.replace(t.root,r),e},Rd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),_d=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Qd=function(e){return e&&e.isView?e.text("normal"):""},Zd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Kd(e))};var Yd=function(e){let t=Nd(e);e=e.clone().toView();const n=Fd(e,t);return{root:t.root.text(),preAdverbs:_d(t.adverbs.pre),postAdverbs:_d(t.adverbs.post),auxiliary:Qd(t.auxiliary),negative:t.negative.found,prefix:Qd(t.prefix),infinitive:Zd(t.root),grammar:n}};const Xd={tags:!0};var ep=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Kd(r)),i&&e.replace(r,i,Xd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=qd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const tp={tags:!0},np={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Kd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Wd(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,tp),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=np.simple(e,t),e=np.noAux(e,t))},hasHad:e=>(e.replace("has","had",tp),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Kd(a)),n(o,e.model).Participle}},rp={infinitive:np.simple,"simple-present":np.simple,"simple-past":Md,"simple-future":np.both,"present-progressive":e=>(e.replace("are","were",tp),e.replace("(is|are|am)","was",tp),e),"past-progressive":Md,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":np.hasHad,"past-perfect":Md,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Rd(e)),e.remove("have"),e),"present-perfect-progressive":np.hasHad,"past-perfect-progressive":Md,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",tp),e),"passive-past":e=>(e.replace("have","had",tp),e),"passive-present":e=>(e.replace("(is|are)","was",tp),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",tp),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Md,"auxiliary-future":e=>(e.replace("(is|are|am)","was",tp),e),"auxiliary-past":Md,"auxiliary-present":e=>(e.replace("(do|does)","did",tp),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",tp):(np.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Md,"want-infinitive":e=>(e.replace("(want|wants)","wanted",tp),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),np.simple(e,t),Rd(e),e)};var ap=function(e,t,n){return rp.hasOwnProperty(n)?((e=rp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const op={tags:!0},ip=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Kd(a)),!1===Jd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Ld(e)),o&&(e=e.replace(a,o,op)).not("#Particle").tag("PresentTense"),e},sp=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Kd(a)),!1===Jd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,op)).not("#Particle").tag("Gerund"),e},lp={infinitive:ip,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return ip(e,t);{let t=Wd(e).subject;if(Jd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,op)}return e},"simple-past":ip,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Ld(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else ip(e,t),e=e.remove("will");return e},"present-progressive":Md,"past-progressive":(e,t)=>{let n=Ld(e);return e.replace("(were|was)",n,op)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(ip(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Wd(e).subject;return Jd(e)||n.has("i")?((e=Ud(e,t)).remove("had"),e):(e.replace("had","has",op),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Md,"past-perfect-progressive":e=>e.replace("had","has",op),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Ld(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,op),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Md,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Md,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(sp(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=qd(e);return e.replace(t.auxiliary,n),e}return sp(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Md,"modal-infinitive":Md,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Kd(r)),a&&(e=e.replace(t.root,a,op))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ip(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Jd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,op),e.remove("will"),e}};var up=function(e,t,n){return lp.hasOwnProperty(n)?((e=lp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const cp={tags:!0},hp=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Kd(r)),o&&(e=e.replace(r,o,cp)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},dp=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Kd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,cp),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},pp={infinitive:hp,"simple-present":hp,"simple-past":hp,"simple-future":Md,"present-progressive":dp,"past-progressive":dp,"future-progressive":Md,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Md,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Md,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Md,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Md,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Md,"modal-past":Md,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),hp(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var mp=function(e,t,n){return e.has("will")||e.has("going to")?e:pp.hasOwnProperty(n)?((e=pp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const gp={tags:!0};var fp=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Kd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Ld(e)} ${s}`,e.replace(a,s,gp)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const vp={tags:!0},bp=function(e,t){let n=qd(e);return e.prepend(n+" not"),e},yp=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},wp=e=>e.has("(is|was|am|are|will|were|be)"),Pp={"simple-present":(e,t)=>!0===wp(e)?yp(e):(e=Ud(e,t),e=bp(e)),"simple-past":(e,t)=>!0===wp(e)?yp(e):((e=Ud(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===wp(e)?yp(e):bp(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",vp),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=bp(e)).replace("wants","want",vp)};var kp=function(e,t,n){if(e.has("#Negative"))return e;if(Pp.hasOwnProperty(n))return e=Pp[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===wp(e)?yp(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Ap=(e,t)=>"number"==typeof t?e.eq(t):e;var jp=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Ap(this,e).map(Nd)}json(e,t){let n=Ap(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Yd(t),n}),[]);return n}subjects(e){return Ap(this,e).map((e=>(Nd(e),Wd(e).subject)))}adverbs(e){return Ap(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return Ap(this,e).filter((e=>!0!==Wd(e).plural))}isPlural(e){return Ap(this,e).filter((e=>!0===Wd(e).plural))}isImperative(e){return Ap(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return ep(e,t,n.form)}))}toPresentTense(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return up(e,t,n.form)}))}toPastTense(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return ap(e,t,n.form)}))}toFutureTense(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return mp(e,t,n.form)}))}toGerund(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return fp(e,t,n.form)}))}conjugate(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:ep(e.clone(),t,n.form).text("normal"),PastTense:ap(e.clone(),t,n.form).text("normal"),PresentTense:up(e.clone(),t,n.form).text("normal"),FutureTense:mp(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return kp(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=wd(this);return t=Ap(t,e),new Verbs(this.document,t.pointer)}},xp={api:jp};return v.plugin(vc),v.plugin(Sc),v.plugin(Kc),v.plugin(lh),v.plugin(qh),v.plugin(_h),v.plugin(od),v.plugin(yd),v.plugin(xp),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/three/compromise-three.cjs b/builds/three/compromise-three.cjs index 80b42fe98..2a5241dd5 100644 --- a/builds/three/compromise-three.cjs +++ b/builds/three/compromise-three.cjs @@ -1 +1 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var p=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let m=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=p(e,l,m);return e&&n.compute(m.hooks),n};Object.defineProperty(f,"_world",{value:m,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=p(e,l,m);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},j=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},x=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?j(n):(j(n),j([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!k(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||k(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var G=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},D=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=G(e),e)))}(d),n?(T(t.update([u]).firstTerm()),N(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var $=z,F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=F(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const W={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};W.deHyphenate=W.dehyphenate,W.toQuotation=W.toQuotations;var M=W,J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var _={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}},Q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,H,M,U,_,Q);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(pe);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ke=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},je={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},xe=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=xe(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&je.hasOwnProperty(l)&&(c=je[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),ke(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ke(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]},Ge=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Oe,lib:Be,hooks:["lexicon"]},$e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const We=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=We(e.goNext,void 0),e.failTo=We(e.failTo,0),e.endAs=We(e.endAs,null),e};const Je={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};Je.compile=Je.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Je};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Qe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Qe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Qe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,pt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){pt.test(e)?(n.choices=e.split(pt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var kt=Pt;const At=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const xt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var It=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(xt(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(xt(e,t)),n=n.concat(Nt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Gt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>kt(e,t))),r=jt(r,n),r=It(r,n),r=Gt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Vt.test(e.pre)||Bt.test(e.post),hasComma:e=>Ft(e,","),hasPeriod:e=>!0===Ft(e,".")&&!1===Ft(e,"..."),hasExclamation:e=>Ft(e,"!"),hasQuestionMark:e=>Ft(e,"?")||Ft(e,"¿"),hasEllipses:e=>Ft(e,"..")||Ft(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>Ft(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Wt=Ht;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Wt[t.method]&&!0===Wt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Jt=Mt;const Lt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(qt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Jt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Jt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(qt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Qt=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Jt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Jt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Jt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Qt(e,r,t[e.r+1]):(e.t+=1,!0)},Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Jt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Jt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Xt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Lt(e,a)){if(e.negative){if(!Zt(a))return null}else if(!0!==Jt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!tn(a))return null}else if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else if(!_t(a))return null}else if(!Rt(a))return null}else if(!Kt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},ln={api:ot,methods:{one:{termMethods:Wt,parseMatch:Tt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(a)&&(a=" "),a=a.replace(gn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(pn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let Pn=[],kn=0;for(;kn<64;)Pn[kn]=0|4294967296*Math.sin(++kn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(kn=i=0;kn>4]+Pn[i]+~~o[kn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const jn={text:!0,terms:!0};let xn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},En={text:e=>bn(e,{keepPunct:!0},!1),normal:e=>bn(e,Nn(wn.normal,{keepPunct:!0}),!1),implicit:e=>bn(e,Nn(wn.implicit,{keepPunct:!0}),!1),machine:e=>bn(e,xn,!1),root:e=>bn(e,Nn(xn,{form:"root"}),!1),hash:e=>An(bn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const In={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},jn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};In.data=In.json;var Gn=In,Tn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Dn="";var Cn={green:e=>""+e+Dn,red:e=>""+e+Dn,blue:e=>""+e+Dn,magenta:e=>""+e+Dn,cyan:e=>""+e+Dn,yellow:e=>""+e+Dn,black:e=>""+e+Dn,dim:e=>""+e+Dn,i:e=>""+e+Dn},On=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Cn.blue("\n ──────")),t.forEach((e=>{console.log(Cn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Cn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Cn.blue(" │ ")+Cn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Cn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Vn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Cn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Tn(t),t):(!1!==e.tags&&(On(t),console.log("\n")),!0===e.chunks&&(Vn(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const $n=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Fn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Hn=Sn,Wn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Kn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},Rn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},_n={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>qn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Yn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>qn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},er=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},tr={union:function(e){e=Xn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)}};tr.and=tr.union,tr.intersection=function(e){e=Xn(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.not=function(e){e=Xn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.difference=tr.not,tr.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=er(t,this.document),this.toView(t)},tr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Qn(e,[t])})),e=er(e,this.document),this.update(e)};var nr=function(e){Object.assign(e.prototype,tr)},rr={methods:_n,api:nr},ar=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const or=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ir=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(or(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(or(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=or(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},sr=function(e,t){e=ir(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},lr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},ur=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},cr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},hr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=lr(a,t.hooks);return o=ur(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),cr(o,e,a,n,r)},dr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===dr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ar,methods:{one:{buildNet:sr,bulkMatch:hr,bulkTagger:pr}}};const gr=/ /,fr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},vr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),gr.test(t))!function(e,t,n,r){let a=t.split(gr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),vr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var yr=br,wr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Pr({id:e}))),t}return[Pr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},xr=e=>"[object Array]"===Object.prototype.toString.call(e),Nr=e=>(e=e||"").trim(),Er=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||kr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ar(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Pr({});return e.forEach((e=>{if((e=Pr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(jr(t=e).forEach(Pr),t);var t},Ir=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return jr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Gr=function(e){let t=jr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Tr={text:Ir,txt:Ir,array:Gr,flat:Gr},Dr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ir(e,!0)),null):Tr.hasOwnProperty(t)?Tr[t](e):e},Cr=e=>{jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Or=/\//;let Vr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Nr(e),!Or.test(e)){let t=this.json.children.find((t=>t.id===e));return new Vr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||Pr({});return new Vr(t)}add(e,t={}){if(xr(e))return e.forEach((e=>this.add(Nr(e),t))),this;e=Nr(e);let n=Pr({id:e,props:t});return this.json.children.push(n),new Vr(n)}remove(e){return e=Nr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return jr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return jr(this.json)}fillDown(){var e;return e=this.json,jr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else xr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Cr(this.json);let e=jr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Cr(this.json),Dr(this.json,e)}debug(){return Cr(this.json),Dr(this.json,"debug"),this}};const Br=function(e){let t=Er(e);return new Vr(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const $r=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Fr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:$r(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sr=function(e){return e?"string"==typeof e?[e]:e:[]};var Hr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sr(e[t].children),e[t].not=Sr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Wr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Hr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Fr(n)},Mr={one:{setTag:yr,unTag:wr,addTags:Wr}};const Jr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Lr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Jr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Jr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var qr=Lr,Kr=function(e){Object.assign(e.prototype,qr)},Ur={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Rr=new Set(["Auxiliary","Possessive"]);var _r=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Rr.has(e)||!t.hasOwnProperty(n))return 1;if(Rr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Qr={model:{one:{tagSet:{}}},compute:{tagRank:_r},methods:Mr,api:Kr,lib:Ur};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Yr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var ea=function(e){let t=[],n=e.split(Xr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const oa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ia=RegExp("("+Object.keys(oa).join("|")+")","g"),sa=RegExp("("+Object.values(oa).join("|")+")","g"),la=function(e){if(!e)return!1;let t=e.match(sa);return null!==t&&1===t.length};var ua=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var xa=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Aa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wa(n),n=ba(n),n=n.filter((e=>e)),n};let Na=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Ea=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ia=/[\p{Punctuation}\s]+$/u,Ga=/^[\p{Punctuation}\s]+/u,Ta=/['’]/,Da=/^[a-z]\.([a-z]\.)+/i,Ca=/^'[0-9]{2}/;var Oa=function(e){let t=e,n="",r="";return e=e.replace(Ga,(t=>{let r=t.match(Na);return r?(n=t.replace(Na,""),r):"'"===n&&Ca.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ia,(a=>{let o=a.match(Ea);return o?(r=a.replace(Ea,""),o):Ta.test(a)&&/[sn]['’]$/.test(t)&&!1===Ta.test(n)?(r=r.replace(Ta,""),"'"):!0===Da.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}},Va=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},Ba=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const za=/([A-Z]\.)+[A-Z]?,?$/,$a=/^[A-Z]\.,?$/,Fa=/[A-Z]{2,}('s|,)?$/,Sa=/([a-z]\.)+[a-z]\.?$/;var Ha=function(e){return function(e){return!0===za.test(e)||!0===Sa.test(e)||!0===$a.test(e)||!0===Fa.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Wa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ba(r),r=n(r,t),r=Ha(r),e.normal=r},Ma=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Wa(e,t)})),n})),e};const Ja=/[ .][A-Z]\.? *$/i,La=/(?:\u2026|\.{2,}) *$/,qa=/\p{L}/u,Ka=/^[A-Z]\. $/;var Ua=function(e,t){if(!1===qa.test(e))return!1;if(!0===Ja.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===La.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ra={one:{killUnicode:Va,tokenize:{splitSentences:ga,isSentence:Ua,splitTerms:xa,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Oa(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Ma}}},_a={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},Za={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qa[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])}))}));var Ya=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){eo[t]=e}))}));const to=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),to.test(n)&&!no.test(n)&&!ro.test(n)){let t=n.split(to);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const oo=/^\p{Letter}+-\p{Letter}+$/u;var io=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),oo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},so=function(e){let t=e.docs,n={};for(let e=0;eho(e,ao),machine:e=>ho(e,io),normal:e=>ho(e,Wa),freq:so,offset:lo,index:uo,wordCount:co},methods:Ra,model:{one:{aliases:_a,abbreviations:Qa,prefixes:Ya,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Za,unicode:eo}},hooks:["alias","machine","index","id"]},mo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var fo=function(e){e.prototype.autoFill=go},vo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const bo={safe:!0,min:3};var yo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},bo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=vo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},wo={model:{one:{typeahead:{}}},api:fo,lib:yo,compute:mo,hooks:["typeahead"]};v.extend(ee),v.extend(Ln),v.extend(ln),v.extend(rr),v.extend(Qr),v.plugin(Ie),v.extend(po),v.plugin(P),v.extend(Le),v.extend(wo),v.extend(ze),v.extend(mr);var Po={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ko={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ao=36,jo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",xo=jo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==xo[e])return xo[e];let t=0,n=1,r=Ao,a=1;for(;n=0;n--,a*=Ao){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Eo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Go(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=To(ko[e]);Vo.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Oo(t,$o);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Bo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Bo[e]="Emoticon")),delete Bo[""],delete Bo.null,delete Bo[" "];const Fo="Adjective";var So={beforeTags:{Determiner:Fo,Possessive:Fo},afterTags:{Adjective:Fo},beforeWords:{seem:Fo,seemed:Fo,seems:Fo,feel:Fo,feels:Fo,felt:Fo,appear:Fo,appears:Fo,appeared:Fo,also:Fo,over:Fo,under:Fo,too:Fo,it:Fo,but:Fo,still:Fo,really:Fo,quite:Fo,well:Fo,very:Fo,deeply:Fo,profoundly:Fo,extremely:Fo,so:Fo,badly:Fo,mostly:Fo,totally:Fo,awfully:Fo,rather:Fo,nothing:Fo,something:Fo,anything:Fo,not:Fo,me:Fo},afterWords:{too:Fo,also:Fo,or:Fo}};const Ho="Gerund";var Wo={beforeTags:{Adverb:Ho,Preposition:Ho,Conjunction:Ho},afterTags:{Adverb:Ho,Possessive:Ho,Person:Ho,Pronoun:Ho,Determiner:Ho,Copula:Ho,Preposition:Ho,Conjunction:Ho,Comparative:Ho},beforeWords:{been:Ho,keep:Ho,continue:Ho,stop:Ho,am:Ho,be:Ho,me:Ho,began:Ho,start:Ho,starts:Ho,started:Ho,stops:Ho,stopped:Ho,help:Ho,helps:Ho,avoid:Ho,avoids:Ho,love:Ho,loves:Ho,loved:Ho,hate:Ho,hates:Ho,hated:Ho},afterWords:{you:Ho,me:Ho,her:Ho,him:Ho,them:Ho,their:Ho,it:Ho,this:Ho,there:Ho,on:Ho,about:Ho,for:Ho}},Mo={beforeTags:Object.assign({},So.beforeTags,Wo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},So.afterTags,Wo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},So.beforeWords,Wo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},So.afterWords,Wo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Jo="Singular";var Lo={beforeTags:{Determiner:Jo,Possessive:Jo,Acronym:Jo,Noun:Jo,Adjective:Jo,PresentTense:Jo,Gerund:Jo,PastTense:Jo,Infinitive:Jo,Date:Jo},afterTags:{Value:Jo,Modal:Jo,Copula:Jo,PresentTense:Jo,PastTense:Jo,Demonym:Jo},beforeWords:{the:Jo,with:Jo,without:Jo,of:Jo,for:Jo,any:Jo,all:Jo,on:Jo,cut:Jo,cuts:Jo,save:Jo,saved:Jo,saves:Jo,make:Jo,makes:Jo,made:Jo,minus:Jo,plus:Jo,than:Jo,another:Jo,versus:Jo,neither:Jo,favorite:Jo,best:Jo,daily:Jo,weekly:Jo,linear:Jo,binary:Jo,mobile:Jo,lexical:Jo,technical:Jo,computer:Jo,scientific:Jo,formal:Jo},afterWords:{of:Jo,system:Jo,aid:Jo,method:Jo,utility:Jo,tool:Jo,reform:Jo,therapy:Jo,philosophy:Jo,room:Jo,authority:Jo,says:Jo,said:Jo,wants:Jo,wanted:Jo}};const qo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ko={beforeTags:Object.assign({},So.beforeTags,Lo.beforeTags,qo.beforeTags),afterTags:Object.assign({},So.afterTags,Lo.afterTags),beforeWords:Object.assign({},So.beforeWords,Lo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Lo.afterWords)};const Uo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ro={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},_o={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Qo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Zo={beforeTags:Object.assign({},So.beforeTags,Uo),afterTags:Object.assign({},So.afterTags,Ro),beforeWords:Object.assign({},So.beforeWords,_o),afterWords:Object.assign({},So.afterWords,Qo)};const Yo="Infinitive";var Xo={beforeTags:{Modal:Yo,Adverb:Yo,Negative:Yo,Plural:Yo},afterTags:{Determiner:Yo,Adverb:Yo,Possessive:Yo,Preposition:Yo},beforeWords:{i:Yo,we:Yo,you:Yo,they:Yo,to:Yo,please:Yo,will:Yo,have:Yo,had:Yo,would:Yo,could:Yo,should:Yo,do:Yo,did:Yo,does:Yo,can:Yo,must:Yo,us:Yo,me:Yo,he:Yo,she:Yo,it:Yo,being:Yo},afterWords:{the:Yo,me:Yo,you:Yo,him:Yo,her:Yo,them:Yo,it:Yo,a:Yo,an:Yo,up:Yo,down:Yo,by:Yo,out:Yo,off:Yo,under:Yo,when:Yo,all:Yo,to:Yo,because:Yo,although:Yo,before:Yo,how:Yo,otherwise:Yo,together:Yo,though:Yo,yet:Yo}};const ei={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ti={beforeTags:Object.assign({},So.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},So.afterTags,Xo.afterTags,ei.afterTags),beforeWords:Object.assign({},So.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Xo.afterWords,{to:void 0})};const ni={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ri={},ai={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oi={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ii={beforeTags:Object.assign({},Wo.beforeTags,Lo.beforeTags,ni),afterTags:Object.assign({},Wo.afterTags,Lo.afterTags,ri),beforeWords:Object.assign({},Wo.beforeWords,Lo.beforeWords,ai),afterWords:Object.assign({},Wo.afterWords,Lo.afterWords,oi)},si={beforeTags:Object.assign({},Xo.beforeTags,Lo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xo.afterTags,Lo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xo.beforeWords,Lo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xo.afterWords,Lo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const li="Person";var ui={beforeTags:{Honorific:li,Person:li,Preposition:li},afterTags:{Person:li,ProperNoun:li,Verb:li},ownTags:{ProperNoun:li},beforeWords:{hi:li,hey:li,yo:li,dear:li,hello:li},afterWords:{said:li,says:li,told:li,tells:li,feels:li,felt:li,seems:li,thinks:li,thought:li,spends:li,spendt:li,plays:li,played:li,sing:li,sang:li,learn:li,learned:li,wants:li,wanted:li}};const ci="Month",hi={beforeTags:{Date:ci,Value:ci},afterTags:{Date:ci,Value:ci},beforeWords:{by:ci,in:ci,on:ci,during:ci,after:ci,before:ci,between:ci,until:ci,til:ci,sometime:ci,of:ci,this:ci,next:ci,last:ci,previous:ci,following:ci},afterWords:{sometime:ci,in:ci,of:ci,until:ci,the:ci}};var di={beforeTags:Object.assign({},ui.beforeTags,hi.beforeTags),afterTags:Object.assign({},ui.afterTags,hi.afterTags),beforeWords:Object.assign({},ui.beforeWords,hi.beforeWords),afterWords:Object.assign({},ui.afterWords,hi.afterWords)};const pi={Place:"Place"},mi={Place:"Place",Abbreviation:"Place"},gi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},fi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let vi="Unit";const bi="Honorific";let yi={first:bi,general:bi,royal:bi,vice:bi,rear:bi,major:bi};const wi={"Adj|Gerund":Mo,"Adj|Noun":Ko,"Adj|Past":Zo,"Adj|Present":ti,"Noun|Verb":si,"Noun|Gerund":ii,"Person|Noun":{beforeTags:Object.assign({},Lo.beforeTags,ui.beforeTags),afterTags:Object.assign({},Lo.afterTags,ui.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ui.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Lo.afterWords,ui.afterWords)},"Person|Date":di,"Person|Verb":{beforeTags:Object.assign({},ui.beforeTags,Xo.beforeTags),afterTags:Object.assign({},ui.afterTags,Xo.afterTags),beforeWords:Object.assign({},ui.beforeWords,Xo.beforeWords),afterWords:Object.assign({},ui.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},pi,ui.beforeTags),afterTags:Object.assign({},mi,ui.afterTags),beforeWords:Object.assign({},gi,ui.beforeWords),afterWords:Object.assign({},fi,ui.afterWords)},"Unit|Noun":{beforeTags:{Value:vi},afterTags:{},beforeWords:{per:vi,every:vi,each:vi,square:vi,cubic:vi,sq:vi,metric:vi},afterWords:{per:vi,squared:vi,cubed:vi,long:vi}},"Honorific|Noun":{beforeTags:{Honorific:bi,ProperNoun:bi,Ordinal:bi},afterTags:{Person:bi,ProperNoun:bi},beforeWords:Object.assign({},yi,{honorable:bi,honourable:bi,worship:bi,excellency:bi,majesty:bi,right:bi}),afterWords:yi}},Pi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};wi["Plural|Verb"]={beforeWords:Pi(wi["Noun|Verb"].beforeWords,{}),afterWords:Pi(wi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:Pi(wi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Pi(wi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ki=wi;const Ai="Adjective",ji="Infinitive",xi="PresentTense",Ni="Singular",Ei="PastTense",Ii="Adverb",Gi="Plural",Ti="Actor",Di="Verb",Ci="Noun",Oi="LastName",Vi="Modal",Bi="Participle";var zi=[null,null,{ea:Ni,ia:Ci,ic:Ai,ly:Ii,"'n":Di,"'t":Di},{oed:Ei,ued:Ei,xed:Ei," so":Ii,"'ll":Vi,"'re":"Copula",azy:Ai,eer:Ci,end:Di,ped:Ei,ffy:Ai,ify:ji,ing:"Gerund",ize:ji,ibe:ji,lar:Ai,mum:Ai,nes:xi,nny:Ai,ous:Ai,que:Ai,rol:Ni,sis:Ni,ogy:Ni,oid:Ni,ian:Ni,zes:xi,eld:Ei,ken:Bi,ven:Bi,ten:Bi,ect:ji,ict:ji,ign:ji,ful:Ai,bal:Ai},{amed:Ei,aped:Ei,ched:Ei,lked:Ei,rked:Ei,reed:Ei,nded:Ei,mned:Ai,cted:Ei,dged:Ei,ield:Ni,akis:Oi,cede:ji,chuk:Oi,czyk:Oi,ects:xi,ends:Di,enko:Oi,ette:Ni,wner:Ni,fies:xi,fore:Ii,gate:ji,gone:Ai,ices:Gi,ints:Gi,ruct:ji,ines:Gi,ions:Gi,less:Ai,llen:Ai,made:Ai,nsen:Oi,oses:xi,ould:Vi,some:Ai,sson:Oi,tion:Ni,tage:Ci,ique:Ni,tive:Ai,tors:Ci,vice:Ni,lier:Ni,fier:Ni,wned:Ei,gent:Ni,tist:Ni,pist:Ni,rist:Ni,mist:Ni,yist:Ni,vist:Ni,lite:Ni,site:Ni,rite:Ni,mite:Ni,bite:Ni,mate:Ni,date:Ni,ndal:Ni,vent:Ni,uist:Ni,gist:Ni,note:Ni,cide:Ni,wide:Ai,vide:ji,ract:ji,duce:ji,pose:ji,eive:ji,lyze:ji,lyse:ji,iant:Ai,nary:Ai},{elist:Ni,holic:Ni,phite:Ni,tized:Ei,urned:Ei,eased:Ei,ances:Gi,bound:Ai,ettes:Gi,fully:Ii,ishes:xi,ities:Gi,marek:Oi,nssen:Oi,ology:Ci,osome:Ni,tment:Ni,ports:Gi,rough:Ai,tches:xi,tieth:"Ordinal",tures:Gi,wards:Ii,where:Ii,archy:Ci,pathy:Ci,opoly:Ci,embly:Ci,phate:Ci,ndent:Ni,scent:Ni,onist:Ni,anist:Ni,alist:Ni,olist:Ni,icist:Ni,ounce:ji,iable:Ai,borne:Ai,gnant:Ai,inant:Ai,igent:Ai,atory:Ai,rient:Ni,dient:Ni},{auskas:Oi,parent:Ni,cedent:Ni,ionary:Ni,cklist:Ni,keeper:Ti,logist:Ti,teenth:"Value"},{opoulos:Oi,borough:"Place",sdottir:Oi}];const $i="Adjective",Fi="Noun",Si="Verb";var Hi=[null,null,{},{neo:Fi,bio:Fi,"de-":Si,"re-":Si,"un-":Si},{anti:Fi,auto:Fi,faux:$i,hexa:Fi,kilo:Fi,mono:Fi,nano:Fi,octa:Fi,poly:Fi,semi:$i,tele:Fi,"pro-":$i,"mis-":Si,"dis-":Si,"pre-":$i},{anglo:Fi,centi:Fi,ethno:Fi,ferro:Fi,grand:Fi,hepta:Fi,hydro:Fi,intro:Fi,macro:Fi,micro:Fi,milli:Fi,nitro:Fi,penta:Fi,quasi:$i,radio:Fi,tetra:Fi,"omni-":$i,"post-":$i},{pseudo:$i,"extra-":$i,"hyper-":$i,"inter-":$i,"intra-":$i,"deca-":$i},{electro:Fi}];const Wi="Adjective",Mi="Infinitive",Ji="PresentTense",Li="Singular",qi="PastTense",Ki="Adverb",Ui="Expression",Ri="Actor",_i="Verb",Qi="Noun",Zi="LastName";var Yi={a:[[/.[aeiou]na$/,Qi,"tuna"],[/.[oau][wvl]ska$/,Zi],[/.[^aeiou]ica$/,Li,"harmonica"],[/^([hyj]a+)+$/,Ui,"haha"]],c:[[/.[^aeiou]ic$/,Wi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,qi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,qi,"rammed"],[/.[aeiou][sg]hed$/,qi,"gushed"],[/.[aeiou]red$/,qi,"hired"],[/.[aeiou]r?ried$/,qi,"hurried"],[/[^aeiou]ard$/,Li,"steward"],[/[aeiou][^aeiou]id$/,Wi,""],[/.[vrl]id$/,Wi,"livid"],[/..led$/,qi,"hurled"],[/.[iao]sed$/,qi,""],[/[aeiou]n?[cs]ed$/,qi,""],[/[aeiou][rl]?[mnf]ed$/,qi,""],[/[aeiou][ns]?c?ked$/,qi,"bunked"],[/[aeiou]gned$/,qi],[/[aeiou][nl]?ged$/,qi],[/.[tdbwxyz]ed$/,qi],[/[^aeiou][aeiou][tvx]ed$/,qi],[/.[cdflmnprstv]ied$/,qi,"emptied"]],e:[[/.[lnr]ize$/,Mi,"antagonize"],[/.[^aeiou]ise$/,Mi,"antagonise"],[/.[aeiou]te$/,Mi,"bite"],[/.[^aeiou][ai]ble$/,Wi,"fixable"],[/.[^aeiou]eable$/,Wi,"maleable"],[/.[ts]ive$/,Wi,"festive"],[/[a-z]-like$/,Wi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Wi,"cornish"],[/.v[iy]ch$/,Zi,"..ovich"],[/^ug?h+$/,Ui,"ughh"],[/^uh[ -]?oh$/,Ui,"uhoh"],[/[a-z]-ish$/,Wi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Zi,"polish-male"]],k:[[/^(k){2}$/,Ui,"kkkk"]],l:[[/.[gl]ial$/,Wi,"familial"],[/.[^aeiou]ful$/,Wi,"fitful"],[/.[nrtumcd]al$/,Wi,"natal"],[/.[^aeiou][ei]al$/,Wi,"familial"]],m:[[/.[^aeiou]ium$/,Li,"magnesium"],[/[^aeiou]ism$/,Li,"schism"],[/^[hu]m+$/,Ui,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Wi,"republican"],[/[^aeiou]ician$/,Ri,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ui,"noooo"],[/^(yo)+$/,Ui,"yoo"],[/^wo{2,}[pt]?$/,Ui,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Li],[/[^i]fer$/,Mi],[/.[^aeiou][ao]pher$/,Ri],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Wi],[/[aeiou].*ist$/,Wi],[/^[a-z]et$/,_i]],s:[[/.[^aeiou]ises$/,Ji],[/.[rln]ates$/,Ji],[/.[^z]ens$/,_i],[/.[lstrn]us$/,Li],[/.[aeiou]sks$/,Ji],[/.[aeiou]kes$/,Ji],[/[aeiou][^aeiou]is$/,Li],[/[a-z]'s$/,Qi],[/^yes+$/,Ui]],v:[[/.[^aeiou][ai][kln]ov$/,Zi]],y:[[/.[cts]hy$/,Wi],[/.[st]ty$/,Wi],[/.[tnl]ary$/,Wi],[/.[oe]ry$/,Li],[/[rdntkbhs]ly$/,Ki],[/.(gg|bb|zz)ly$/,Wi],[/...lly$/,Ki],[/.[gk]y$/,Wi],[/[bszmp]{2}y$/,Wi],[/.[ai]my$/,Wi],[/[ea]{2}zy$/,Wi],[/.[^aeiou]ity$/,Li]]};const Xi="Verb",es="Noun";var ts={leftTags:[["Adjective",es],["Possessive",es],["Determiner",es],["Adverb",Xi],["Pronoun",Xi],["Value",es],["Ordinal",es],["Modal",Xi],["Superlative",es],["Demonym",es],["Honorific","Person"]],leftWords:[["i",Xi],["first",es],["it",Xi],["there",Xi],["not",Xi],["because",es],["if",es],["but",es],["who",Xi],["this",es],["his",es],["when",es],["you",Xi],["very","Adjective"],["old",es],["never",Xi],["before",es],["a","Singular"],["the",es],["been",Xi]],rightTags:[["Copula",es],["PastTense",es],["Conjunction",es],["Modal",es]],rightWords:[["there",Xi],["me",Xi],["man","Adjective"],["only",Xi],["him",Xi],["it",Xi],["were",es],["took",es],["himself",Xi],["went",es],["who",es],["jr","Person"]]},ns={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},rs={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},as={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},os={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},is={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ss=/^.([0-9]+)/;var ls=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ss);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ss,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},cs=/^([0-9]+)/,hs=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(cs);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(cs,"")]}(n[0],n[1])}))};var ds=function(e={}){return(e=Object.assign({},e)).rules=hs(e.rules),e.rules=us(e.rules),e.rev&&(e.rev=hs(e.rev),e.rev=us(e.rev)),e.exceptions=hs(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},ps=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const ms=ds({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),gs=ds(os),fs=ds(rs),vs=ds(as),bs=ps(ms),ys=ps(gs),ws=ps(fs),Ps=ps(vs),ks=ds(ns),As=ds(is);var js={fromPast:ms,fromPresent:gs,fromGerund:fs,fromParticiple:vs,toPast:bs,toPresent:ys,toGerund:ws,toParticiple:Ps,toComparative:ks,toSuperlative:As,fromComparative:ps(ks),fromSuperlative:ps(As)},xs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ns=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Es=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Is[t].forEach((n=>e[n]=t)),e)),{});var Gs=Is,Ts=function(e){let t=e.substring(e.length-3);if(!0===Gs.hasOwnProperty(t))return Gs[t];let n=e.substring(e.length-2);return!0===Gs.hasOwnProperty(n)?Gs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ds={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Cs=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ts(e)),Ds.hasOwnProperty(e))c=Ds[e];else if("Participle"===n)c=ls(l,i);else if("PastTense"===n)c=ls(l,r);else if("PresentTense"===n)c=ls(l,a);else{if("Gerund"!==n)return e;c=ls(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};const Os=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ls(i,n),PresentTense:ls(i,r),Gerund:ls(i,a),FutureTense:"will "+e},u=ls(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Vs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Bs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],zs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var $s=function(e){if(zs.hasOwnProperty(e))return zs[e];let t=Vs(e,Bs);return t||e+"ly"};const Fs=function(e,t){const n=t.two.models.toSuperlative;return ls(e,n)},Ss=function(e,t){const n=t.two.models.toComparative;return ls(e,n)},Hs="ically",Ws=new Set(["analyt"+Hs,"chem"+Hs,"class"+Hs,"clin"+Hs,"crit"+Hs,"ecolog"+Hs,"electr"+Hs,"empir"+Hs,"frant"+Hs,"grammat"+Hs,"ident"+Hs,"ideolog"+Hs,"log"+Hs,"mag"+Hs,"mathemat"+Hs,"mechan"+Hs,"med"+Hs,"method"+Hs,"method"+Hs,"mus"+Hs,"phys"+Hs,"phys"+Hs,"polit"+Hs,"pract"+Hs,"rad"+Hs,"satir"+Hs,"statist"+Hs,"techn"+Hs,"technolog"+Hs,"theoret"+Hs,"typ"+Hs,"vert"+Hs,"whims"+Hs]),Ms=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Js=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ls={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var qs=function(e){return e.endsWith("ly")?Ws.has(e)?e.replace(/ically/,"ical"):Js.has(e)?null:Ls.hasOwnProperty(e)?Ls[e]:Vs(e,Ms)||e:null};const Ks=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Us={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Rs=new Set(["terrible","annoying"]);var _s={noun:{toPlural:Oo,toSingular:Es,all:Oo},verb:{toInfinitive:Cs,conjugate:Os,all:function(e,t){let n=Os(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},adjective:{toSuperlative:Fs,toComparative:Ss,toAdverb:$s,toNoun:function(e){if(Us.hasOwnProperty(e))return Us[e];if(Rs.has(e))return null;let t=Vs(e,Ks);return t||e+"ness"},fromAdverb:qs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ls(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ls(e,n)},all:function(e,t){let n=[e];return n.push(Fs(e,t)),n.push(Ss(e,t)),n.push($s(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}}},Qs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Zs=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Qs.hasOwnProperty(i)&&Qs[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},Ys=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!tl.find((t=>e.endsWith(t)))},rl={two:{quickSplit:Ys,expandLexicon:Zs,transform:_s,looksPlural:nl}},al=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const ol=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var il=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=ol(n,"Infinitive","PastTense"),Object.assign(s,l),l=ol(r,"Infinitive","Verb"),Object.assign(s,l),l=ol(a,"Infinitive","Gerund"),Object.assign(s,l),l=ol(o,"Adjective","Superlative"),Object.assign(s,l),l=ol(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let sl={two:{models:js}};const ll={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},ul=function(e,t){const n={model:t,methods:rl};let{lex:r,_multi:a}=rl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},cl=function(e,t,n){let r=Os(e,sl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},hl=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=ll[o],"Noun|Verb"!==o&&"Person|Verb"!==o||cl(a,r,!1),"Adj|Present"===o&&(cl(a,r,!0),function(e,t,n){let r=Fs(e,n);t[r]=t[r]||"Superlative";let a=Ss(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Cs(a,sl,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Cs(a,sl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=ul(n,t)};var dl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=ul(e.one.lexicon,e)).one.lexicon,e),e=hl(e.two.switches,e),e=il(e),e=al(e)};let pl={one:{_multiCache:{},lexicon:Bo},two:{irregularPlurals:Po,models:js,suffixPatterns:zi,prefixPatterns:Hi,endsWith:Yi,neighbours:ts,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:zo,clues:ki,uncountable:{},orgWords:xs}};pl=dl(pl);var ml=pl;const gl=/^(under|over|mis|re|un|dis|semi)-?/;var fl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(gl.test(a.normal)){let e=a.normal.replace(gl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},vl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const bl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var yl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(nl(e.normal)?vl(e,"Plural","3-plural-guess"):vl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ts(e.normal);t&&vl(e,t,"3-verb-tense-guess")}}(r)};const wl=/^\p{Lu}[\p{Ll}'’]/u,Pl=/[0-9]/,kl=["Date","Month","WeekDay","Unit"],Al=/^[IVXLCDM]{2,}$/,jl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,xl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Nl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===wl.test(o)&&!1===Pl.test(o)?kl.find((e=>r.tags.has(e)))?null:(yl(e,t,n),r.tags.has("Noun")||r.tags.clear(),vl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Al.test(o)&&jl.test(o)&&!xl[r.normal]?(vl(r,"RomanNumeral","2-xvii"),!0):null};const El=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var Il=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=El(r.normal,n.two.suffixPatterns);if(null!==e)return vl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=El(r.implicit,n.two.suffixPatterns),null!==e))return vl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Gl=/['‘’‛‵′`´]/,Tl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return vl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Ol=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Vl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Ol.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Bl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},zl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var $l=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Vl(a)||Vl(o))return vl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Bl(a)||Bl(o))return vl(n,"Year","2-tagYear-close");if(zl(e[t-2])||zl(e[t+2]))return vl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return vl(n,"Year","2-tagYear-noun")}}}return null};const Fl=/^[A-Z]('s|,)?$/,Sl=/^[A-Z-]+$/,Hl=/([A-Z]\.)+[A-Z]?,?$/,Wl=/[A-Z]{2,}('s|,)?$/,Ml=/([a-z]\.)+[a-z]\.?$/,Jl={I:!0,A:!0};var Ll=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Sl.test(n)||n.length>5||Jl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Hl.test(n)&&!0!==Ml.test(n)&&!0!==Fl.test(n)&&!0!==Wl.test(n))}(r,n)?(r.tags.clear(),vl(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Jl.hasOwnProperty(r.text)&&Fl.test(r.text)?(r.tags.clear(),vl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(vl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Sl.test(r.text)&&r.text.length<=6?(vl(r,"Acronym","3-titlecase-acronym"),!0):null};const ql=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Kl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ul=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||ql(e[t-1],a),l=l||ql(e[t+1],o),l=l||Kl(e[t-1],r),l=l||Kl(e[t+1],i),l)return vl(s,l,"3-[neighbour]"),yl(e,t,n),e[t].confidence=.2,!0}return null};const Rl=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var _l=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Rl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Rl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ql=function(e,t,n){0===e[t].tags.size&&(vl(e[t],"Noun","3-[fallback]"),yl(e,t,n),e[t].confidence=.1)};const Zl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Yl=(e,t,n)=>0!==t||e[1]?null:n,Xl={"Adj|Gerund":(e,t)=>Zl(e,t),"Adj|Noun":(e,t)=>Zl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Zl(e,t),"Adj|Present":(e,t)=>Zl(e,t),"Noun|Gerund":(e,t)=>Zl(e,t),"Noun|Verb":(e,t)=>Zl(e,t)||Yl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Zl(e,t)||Yl(e,t,"PresentTense"),"Person|Noun":(e,t)=>Zl(e,t),"Person|Verb":(e,t)=>0!==t?Zl(e,t):null};var eu=Xl;const tu="undefined"!=typeof process&&process.env?process.env:self.env||{},nu=/^(under|over|mis|re|un|dis|semi)-?/,ru=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&tu.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},au=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&tu.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var ou=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(nu.test(l)&&!o[l]&&(l=l.replace(nu,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=ru(e[t+1],n.afterWords);return o=o||ru(e[t-1],n.beforeWords),o=o||au(e[t-1],n.beforeTags,a),o=o||au(e[t+1],n.afterTags,a),o}(e,t,i[o],r);eu[o]&&(u=eu[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),yl(e,t,r)):tu.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},iu=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(vl(o,"Verb","3-[prefix]"),vl(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(vl(o,"Adjective","3-[prefix]"),vl(o,"Prefix","3-[prefix]")))};const su={tagSwitch:fl,checkSuffix:Il,checkRegex:Dl,checkCase:Nl,checkPrefix:Cl,checkHyphen:iu,checkYear:$l},lu={checkAcronym:Ll,neighbours:Ul,orgWords:_l,nounFallback:Ql,switches:ou},uu=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var pu=function(e){const t=e.world,n=Object.keys(du);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=xu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=ju},Eu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Iu=/'/;var Gu=function(e,t){let n=e[t].normal.split(Iu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Tu=/'/;var Du=function(e,t){let n=e[t].normal.split(Tu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Cu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Ou={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Vu={in:!0,by:!0,for:!0};var Bu=(e,t)=>{let n=e[t];if(Ou.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Vu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const zu=/'/,$u=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Fu={d:(e,t)=>Du(e,t),t:(e,t)=>Cu(e,t),s:(e,t,n)=>Bu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Gu(e,t)},Su=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Hu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===zu.test(r[o].normal)&&([,i]=r[o].normal.split(zu));let s=null;Fu.hasOwnProperty(i)&&(s=Fu[i](r,o,t)),s&&(s=Su(s,e),Eu(n,[a,o],s),$u(n[a],e,o,s.length))}}))}},Wu={compute:Hu,api:Nu,hooks:["contractionTwo"]};const Mu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Ju=["i","we","they"];let Lu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Mu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Mu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Mu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ju,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ju,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ju,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),qu=null;var Ku={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;qu=qu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(qu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Uu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ku,model:{two:{matches:Lu}},hooks:["postTagger"]};var Ru=Uu,_u=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},Qu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=_u(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Zu={lib:{lazy:Qu}},Yu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},Xu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Yu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},ec={api:function(e){e.prototype.swap=Xu}};v.plugin(Pu),v.plugin(Wu),v.plugin(Ru),v.plugin(Zu),v.plugin(ec);var tc=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter((e=>e.wordCount()>5&&e.match("#Verb+").length>=2));if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},nc=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r},rc=function(e){e.prototype.chunks=nc,e.prototype.clauses=tc};const ac={this:"Noun",then:"Pivot"};var oc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},pc={chunks:function(e){const{document:t,world:n}=e;oc(t),ic(t),uc(e,t,n),hc(t),dc(t)}},mc={compute:pc,api:rc,hooks:["chunks"]};const gc=/'s$/;var fc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(gc,""),e.normal=e.normal.replace(gc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const vc=/\(/,bc=/\)/,yc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(vc,"");let t=e[e.length-1];t.post=t.post.replace(bc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const Pc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},kc=RegExp("("+Object.keys(Pc).join("|")+")"),Ac=RegExp("("+Object.values(Pc).join("|")+")"),jc=function(e,t){const n=e[t].pre.match(kc)[0]||"";if(!n||!Pc[n])return null;const r=Pc[n];for(;t{e[0].pre=e[0].pre.replace(kc,"");let t=e[e.length-1];t.post=t.post.replace(Ac,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Nc=/\./g;var Ec=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Nc,""),e.normal=e.normal.replace(Nc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Nc,""),e.normal=e.normal.replace(Nc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},Ic=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Gc=(e,t)=>"number"==typeof t?e.eq(t):e,Tc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Dc=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Tc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let o=Tc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return Gc(this,e).map((e=>{let n=Tc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Gc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Gc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Gc(t,e),new Adjectives(t.document,t.pointer)}};const Cc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},Oc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let Vc=[["emojis","emoji"],["atmentions","atMentions"]];var Bc=function(e){Oc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Cc,Vc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},zc={api:function(e){Bc(e),fc(e),wc(e),xc(e),Dc(e),Ic(e),Ec(e)}};const $c=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Fc={case:e=>{$c(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;$c(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{$c(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{$c(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Sc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Hc="unicode|punctuation|whitespace|acronyms",Wc="|case|contractions|parentheses|quotations|emoji|honorifics",Mc={light:Sc(Hc),medium:Sc(Hc+Wc),heavy:Sc(Hc+Wc+"|possessives|adverbs|nouns|verbs")};var Jc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Mc[e]),Object.keys(e).forEach((t=>{Fc.hasOwnProperty(t)&&Fc[t](this,e[t])})),this}}},Lc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const qc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Kc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Rc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Uc(e,t),isSubordinate:Kc(e),root:t}};const _c=e=>e.text(),Qc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Zc=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Yc=function(e){let t=Rc(e);return{root:_c(t.root),number:Zc(t.number),determiner:_c(t.determiner),adjectives:Qc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Xc={tags:!0};var eh=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Xc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Xc),e};const th={tags:!0};var nh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,th).tag("Singular","toPlural"),e};const rh=(e,t)=>"number"==typeof t?e.eq(t):e;var ah=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return rh(this,e).map(Rc)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Yc(t)),n}),[])}isPlural(e){let t=this.filter((e=>Rc(e).isPlural));return rh(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Rc(e).adjectives;n.found&&(t=t.concat(n))})),rh(t,e)}toPlural(e){return rh(this,e).map((e=>eh(e,Rc(e))))}toSingular(e){return rh(this,e).map((e=>{let t=Rc(e);return nh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Lc(this);return t=rh(t,e),new Nouns(this.document,t.pointer)}},oh={api:ah},ih=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},sh=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(lh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(lh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(lh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},ch=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const dh=/^([0-9,. ]+)\/([0-9,. ]+)$/,ph={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},mh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var gh=function(e){if(!0===ph.hasOwnProperty(e))return ph[e];if("a"===e||"an"===e)return 1;const t=sh(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=vh(n),r=vh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:vh(n);let a=r.text("reduced");return fh.test(a)&&(a=a.replace(fh,""),r=r.replaceWith(a)),r=bh.hasOwnProperty(a)?bh[a]:vh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:vh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},wh=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const Ph=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],kh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Ah=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],jh=function(e){let t=[];if(e>100)return t;for(let n=0;n=Ph[n][1]&&(e-=Ph[n][1],t.push(Ph[n][0]));return kh[e]&&t.push(kh[e]),t};var xh=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=wh(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Ah.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(jh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=wh(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Nh=function(e){return e.numerator&&e.denominator?`${xh({num:e.numerator})} out of ${xh({num:e.denominator})}`:""};const Eh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Ih=e=>{let t=xh(e).split(" "),n=t[t.length-1];return Eh.hasOwnProperty(n)?t[t.length-1]=Eh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Gh=function(e){if(!e.numerator||!e.denominator)return"";let t=xh({num:e.numerator}),n=Ih({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Th=(e,t)=>"number"==typeof t?e.eq(t):e;var Dh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Th(this,e).map(yh)}get(e){return Th(this,e).map(yh)}json(e){return Th(this,e).map((t=>{let n=t.toView().json(e)[0],r=yh(t);return n.fraction=r,n}),[])}toDecimal(e){return Th(this,e).forEach((e=>{let{decimal:t}=yh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return Th(this,e).forEach((e=>{let t=yh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return Th(this,e).forEach((e=>{let t=yh(e),n=Gh(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return Th(this,e).forEach((e=>{let t=yh(e),n=Nh(t);e.replaceWith(n)})),this}toPercentage(e){return Th(this,e).forEach((e=>{let{decimal:t}=yh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=ih(this);return t=Th(t,e),new Fractions(this.document,t.pointer)}};const Ch="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Oh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Ch+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Ch+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Ch+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Ch+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Ch})`),r=e.has("("+Ch+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Ch+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Ch+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},Vh=function(e){if("string"==typeof e)return{num:gh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=yh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=gh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Bh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=wh(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const zh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},$h={"%":"percent","°":"degrees"};var Fh=function(e){let t={suffix:"",prefix:e.prefix};return zh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+zh[e.prefix],t.prefix=""),$h.hasOwnProperty(e.suffix)&&(t.suffix+=" "+$h[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},Sh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Fh(e);return t+Ih(e)+n}if("Ordinal"===t)return e.prefix+Bh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Fh(e);return t+xh(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Hh=(e,t)=>"number"==typeof t?e.eq(t):e;var Wh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Hh(this,e).map(Vh)}get(e){return Hh(this,e).map(Vh).map((e=>e.num))}json(e){return Hh(this,e).map((t=>{let n=t.toView().json(e)[0],r=Vh(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=Vh(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Sh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=Vh(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Sh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Sh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Sh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Sh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>Vh(t).num===e))}greaterThan(e){return this.filter((t=>Vh(t).num>e))}lessThan(e){return this.filter((t=>Vh(t).num{let r=Vh(n).num;return r>e&&r{let n=Vh(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Sh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=Vh(e).num);let t=this.map((t=>{let n=Vh(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Sh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Oh(this);return t=Hh(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Oh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=Hh(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Oh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=Hh(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Mh={api:function(e){Dh(e),Wh(e)}};const Jh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Lh=function(e={}){return!1!==(e=Object.assign({},Jh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},qh={api:function(e){e.prototype.redact=Lh}};var Kh=qh,Uh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},Rh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},_h=function(e){let t=e.clauses(),n=Rh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Qh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Zh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},Yh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},Xh=function(e){return e.verbs().toInfinitive(),e};const ed=(e,t)=>"number"==typeof t?e.eq(t):e;var td=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=_h(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n}),[])}toPastTense(e){return ed(this,e).map((e=>(_h(e),Qh(e))))}toPresentTense(e){return ed(this,e).map((e=>(_h(e),Zh(e))))}toFutureTense(e){return ed(this,e).map((e=>(_h(e),e=Yh(e))))}toInfinitive(e){return ed(this,e).map((e=>(_h(e),Xh(e))))}toNegative(e){return ed(this,e).map((e=>(_h(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return ed(this,e).map((e=>(_h(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return ed(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return ed(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=ed(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Uh(this);return ed(t,e)}};Object.assign(e.prototype,t)},nd={api:td},rd=function(e){return e.match("#Honorific+? #Person+")},ad=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const od="male",id="female",sd={mr:od,mrs:id,miss:id,madam:id,king:od,queen:id,duke:od,duchess:id,baron:od,baroness:id,count:od,countess:id,prince:od,princess:id,sire:od,dame:id,lady:id,ayatullah:od,congressman:od,congresswoman:id,"first lady":id,mx:null};var ld=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return id;if(n.has("#MaleName"))return od;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),sd.hasOwnProperty(e))return sd[e];if(/^her /.test(e))return id;if(/^his /.test(e))return od}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return od;if(n&&!t)return id}return null};const ud=(e,t)=>"number"==typeof t?e.eq(t):e;var cd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return ud(this,e).map(ad)}json(e){return ud(this,e).map((t=>{let n=t.toView().json(e)[0],r=ad(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:ld(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=rd(this);return t=ud(t,e),new People(this.document,t.pointer)}},hd=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},dd=function(e){e.prototype.places=function(t){let n=hd(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},pd=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const md=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var gd=function(e){e.prototype.topics=md},fd={api:function(e){cd(e),dd(e),pd(e),gd(e)}},vd=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},bd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},yd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const wd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Pd=function(e){return e.match("#Negative")},kd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Ad=function(e){let t=e.clone();t.contractions().expand();const n=bd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:yd(t,n),auxiliary:wd(t,n),negative:Pd(t),phrasal:kd(n)}};const jd={tense:"PresentTense"},xd={conditional:!0},Nd={tense:"FutureTense"},Ed={progressive:!0},Id={tense:"PastTense"},Gd={complete:!0,progressive:!1},Td={passive:!0},Dd=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Cd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[jd]],["^wanted to #Infinitive$",[Id]],["^will want to #Infinitive$",[Nd]]],"gerund-phrase":[["^#PastTense #Gerund$",[Id]],["^#PresentTense #Gerund$",[jd]],["^#Infinitive #Gerund$",[jd]],["^will #Infinitive #Gerund$",[Nd]],["^have #PastTense #Gerund$",[Id]],["^will have #PastTense #Gerund$",[Id]]],"simple-present":[["^#PresentTense$",[jd]],["^#Infinitive$",[jd]]],"simple-past":[["^#PastTense$",[Id]]],"simple-future":[["^will #Adverb? #Infinitive",[Nd]]],"present-progressive":[["^(is|are|am) #Gerund$",[jd,Ed]]],"past-progressive":[["^(was|were) #Gerund$",[Id,Ed]]],"future-progressive":[["^will be #Gerund$",[Nd,Ed]]],"present-perfect":[["^(has|have) #PastTense$",[Id,Gd]]],"past-perfect":[["^had #PastTense$",[Id,Gd]],["^had #PastTense to #Infinitive",[Id,Gd]]],"future-perfect":[["^will have #PastTense$",[Nd,Gd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Id,Ed]]],"past-perfect-progressive":[["^had been #Gerund$",[Id,Ed]]],"future-perfect-progressive":[["^will have been #Gerund$",[Nd,Ed]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Id,Td]],["^(was|were) being (#PastTense|#Participle)",[Id,Td]],["^(had|have) been (#PastTense|#Participle)",[Id,Td]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[jd,Td]],["^(is|are|am) being (#PastTense|#Participle)",[jd,Td]],["^has been (#PastTense|#Participle)",[jd,Td]]],"passive-future":[["will have been (#PastTense|#Participle)",[Nd,Td,xd]],["will be being? (#PastTense|#Participle)",[Nd,Td,xd]]],"present-conditional":[["would be #PastTense",[jd,xd]]],"past-conditional":[["would have been #PastTense",[Id,xd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Nd]]],"auxiliary-past":[["^did #Infinitive$",[Id,{plural:!1}]],["^used to #Infinitive$",[Id,Gd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[jd,Gd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Id]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Od=[];Object.keys(Cd).map((e=>{Cd[e].forEach((t=>{Od.push({name:e,match:t[0],data:Dd(t[1])})}))}));var Vd=Od,Bd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),zd(r)&&(n.remove(r),r=n.last()),zd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:$d(t,e)}};const Sd=e=>e,Hd=(e,t)=>{let n=Fd(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Wd=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Fd(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Md=function(e,t){let n=Fd(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Jd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Ld=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Jd(e)),r&&e.replace(t.root,r),e},qd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Kd=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Ud=function(e){return e&&e.isView?e.text("normal"):""},Rd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Jd(e))};var _d=function(e){let t=Ad(e);e=e.clone().toView();const n=Bd(e,t);return{root:t.root.text(),preAdverbs:Kd(t.adverbs.pre),postAdverbs:Kd(t.adverbs.post),auxiliary:Ud(t.auxiliary),negative:t.negative.found,prefix:Ud(t.prefix),infinitive:Rd(t.root),grammar:n}};const Qd={tags:!0};var Zd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Jd(r)),i&&e.replace(r,i,Qd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Md(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Yd={tags:!0},Xd={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Jd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Fd(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Yd),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Xd.simple(e,t),e=Xd.noAux(e,t))},hasHad:e=>(e.replace("has","had",Yd),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Jd(a)),n(o,e.model).Participle}},ep={infinitive:Xd.simple,"simple-present":Xd.simple,"simple-past":Sd,"simple-future":Xd.both,"present-progressive":e=>(e.replace("are","were",Yd),e.replace("(is|are|am)","was",Yd),e),"past-progressive":Sd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Xd.hasHad,"past-perfect":Sd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=qd(e)),e.remove("have"),e),"present-perfect-progressive":Xd.hasHad,"past-perfect-progressive":Sd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Yd),e),"passive-past":e=>(e.replace("have","had",Yd),e),"passive-present":e=>(e.replace("(is|are)","was",Yd),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Yd),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Sd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Yd),e),"auxiliary-past":Sd,"auxiliary-present":e=>(e.replace("(do|does)","did",Yd),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Yd):(Xd.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Sd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Yd),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Xd.simple(e,t),qd(e),e)};var tp=function(e,t,n){return ep.hasOwnProperty(n)?((e=ep[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const np={tags:!0},rp=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Jd(a)),!1===Hd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Wd(e)),o&&(e=e.replace(a,o,np)).not("#Particle").tag("PresentTense"),e},ap=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Jd(a)),!1===Hd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,np)).not("#Particle").tag("Gerund"),e},op={infinitive:rp,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return rp(e,t);{let t=Fd(e).subject;if(Hd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,np)}return e},"simple-past":rp,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Wd(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else rp(e,t),e=e.remove("will");return e},"present-progressive":Sd,"past-progressive":(e,t)=>{let n=Wd(e);return e.replace("(were|was)",n,np)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(rp(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Fd(e).subject;return Hd(e)||n.has("i")?((e=Ld(e,t)).remove("had"),e):(e.replace("had","has",np),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Sd,"past-perfect-progressive":e=>e.replace("had","has",np),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Wd(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,np),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Sd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Sd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(ap(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Md(e);return e.replace(t.auxiliary,n),e}return ap(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Sd,"modal-infinitive":Sd,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Jd(r)),a&&(e=e.replace(t.root,a,np))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),rp(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Hd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,np),e.remove("will"),e}};var ip=function(e,t,n){return op.hasOwnProperty(n)?((e=op[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const sp={tags:!0},lp=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Jd(r)),o&&(e=e.replace(r,o,sp)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},up=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Jd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,sp),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},cp={infinitive:lp,"simple-present":lp,"simple-past":lp,"simple-future":Sd,"present-progressive":up,"past-progressive":up,"future-progressive":Sd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Sd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Sd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Sd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Sd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Sd,"modal-past":Sd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),lp(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var hp=function(e,t,n){return e.has("will")||e.has("going to")?e:cp.hasOwnProperty(n)?((e=cp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const dp={tags:!0};var pp=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Jd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Wd(e)} ${s}`,e.replace(a,s,dp)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const mp={tags:!0},gp=function(e,t){let n=Md(e);return e.prepend(n+" not"),e},fp=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},vp=e=>e.has("(is|was|am|are|will|were|be)"),bp={"simple-present":(e,t)=>!0===vp(e)?fp(e):(e=Ld(e,t),e=gp(e)),"simple-past":(e,t)=>!0===vp(e)?fp(e):((e=Ld(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===vp(e)?fp(e):gp(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",mp),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=gp(e)).replace("wants","want",mp)};var yp=function(e,t,n){if(e.has("#Negative"))return e;if(bp.hasOwnProperty(n))return e=bp[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===vp(e)?fp(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const wp=(e,t)=>"number"==typeof t?e.eq(t):e;var Pp=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return wp(this,e).map(Ad)}json(e,t){let n=wp(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=_d(t),n}),[]);return n}subjects(e){return wp(this,e).map((e=>(Ad(e),Fd(e).subject)))}adverbs(e){return wp(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return wp(this,e).filter((e=>!0!==Fd(e).plural))}isPlural(e){return wp(this,e).filter((e=>!0===Fd(e).plural))}isImperative(e){return wp(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return Zd(e,t,n.form)}))}toPresentTense(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return ip(e,t,n.form)}))}toPastTense(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return tp(e,t,n.form)}))}toFutureTense(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return hp(e,t,n.form)}))}toGerund(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return pp(e,t,n.form)}))}conjugate(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Zd(e.clone(),t,n.form).text("normal"),PastTense:tp(e.clone(),t,n.form).text("normal"),PresentTense:ip(e.clone(),t,n.form).text("normal"),FutureTense:hp(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return wp(this,e).map((e=>{let t=Ad(e),n=Bd(e,t);return yp(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=vd(this);return t=wp(t,e),new Verbs(this.document,t.pointer)}},kp={api:Pp};return v.plugin(mc),v.plugin(zc),v.plugin(Jc),v.plugin(oh),v.plugin(Mh),v.plugin(Kh),v.plugin(nd),v.plugin(fd),v.plugin(kp),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var p=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let m=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=p(e,l,m);return e&&n.compute(m.hooks),n};Object.defineProperty(f,"_world",{value:m,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=p(e,l,m);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},j=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},x=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?j(n):(j(n),j([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!k(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||k(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var G=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},D=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=G(e),e)))}(d),n?(T(t.update([u]).firstTerm()),N(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var $=z,F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=F(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const W={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};W.deHyphenate=W.dehyphenate,W.toQuotation=W.toQuotations;var M=W,J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var _={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}},Q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,H,M,U,_,Q);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(pe);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ke=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},je={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},xe=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=xe(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&je.hasOwnProperty(l)&&(c=je[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),ke(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ke(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]},Ge=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Oe,lib:Be,hooks:["lexicon"]},$e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const We=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=We(e.goNext,void 0),e.failTo=We(e.failTo,0),e.endAs=We(e.endAs,null),e};const Je={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};Je.compile=Je.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Je};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Qe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Qe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Qe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,pt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){pt.test(e)?(n.choices=e.split(pt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var kt=Pt;const At=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const xt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var It=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(xt(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(xt(e,t)),n=n.concat(Nt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Gt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>kt(e,t))),r=jt(r,n),r=It(r,n),r=Gt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Vt.test(e.pre)||Bt.test(e.post),hasComma:e=>Ft(e,","),hasPeriod:e=>!0===Ft(e,".")&&!1===Ft(e,"..."),hasExclamation:e=>Ft(e,"!"),hasQuestionMark:e=>Ft(e,"?")||Ft(e,"¿"),hasEllipses:e=>Ft(e,"..")||Ft(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>Ft(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Wt=Ht;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Wt[t.method]&&!0===Wt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Jt=Mt;const Lt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(qt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Jt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Jt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(qt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Qt=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Jt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Jt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Jt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Qt(e,r,t[e.r+1]):(e.t+=1,!0)},Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Jt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Jt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Xt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Lt(e,a)){if(e.negative){if(!Zt(a))return null}else if(!0!==Jt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!tn(a))return null}else if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else if(!_t(a))return null}else if(!Rt(a))return null}else if(!Kt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},ln={api:ot,methods:{one:{termMethods:Wt,parseMatch:Tt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(a)&&(a=" "),a=a.replace(gn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(pn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let Pn=[],kn=0;for(;kn<64;)Pn[kn]=0|4294967296*Math.sin(++kn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(kn=i=0;kn>4]+Pn[i]+~~o[kn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const jn={text:!0,terms:!0};let xn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},En={text:e=>bn(e,{keepPunct:!0},!1),normal:e=>bn(e,Nn(wn.normal,{keepPunct:!0}),!1),implicit:e=>bn(e,Nn(wn.implicit,{keepPunct:!0}),!1),machine:e=>bn(e,xn,!1),root:e=>bn(e,Nn(xn,{form:"root"}),!1),hash:e=>An(bn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const In={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},jn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};In.data=In.json;var Gn=In,Tn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Dn="";var Cn={green:e=>""+e+Dn,red:e=>""+e+Dn,blue:e=>""+e+Dn,magenta:e=>""+e+Dn,cyan:e=>""+e+Dn,yellow:e=>""+e+Dn,black:e=>""+e+Dn,dim:e=>""+e+Dn,i:e=>""+e+Dn},On=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Cn.blue("\n ──────")),t.forEach((e=>{console.log(Cn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Cn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Cn.blue(" │ ")+Cn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Cn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Vn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Cn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Tn(t),t):(!1!==e.tags&&(On(t),console.log("\n")),!0===e.chunks&&(Vn(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const $n=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Fn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Hn=Sn,Wn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Kn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},Rn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},_n={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>qn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Yn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>qn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},er=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},tr={union:function(e){e=Xn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)}};tr.and=tr.union,tr.intersection=function(e){e=Xn(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.not=function(e){e=Xn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.difference=tr.not,tr.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=er(t,this.document),this.toView(t)},tr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Qn(e,[t])})),e=er(e,this.document),this.update(e)};var nr=function(e){Object.assign(e.prototype,tr)},rr={methods:_n,api:nr},ar=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const or=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ir=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(or(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(or(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=or(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},sr=function(e,t){e=ir(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},lr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},ur=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},cr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},hr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=lr(a,t.hooks);return o=ur(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),cr(o,e,a,n,r)},dr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===dr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ar,methods:{one:{buildNet:sr,bulkMatch:hr,bulkTagger:pr}}};const gr=/ /,fr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},vr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),gr.test(t))!function(e,t,n,r){let a=t.split(gr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),vr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var yr=br,wr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Pr({id:e}))),t}return[Pr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},xr=e=>"[object Array]"===Object.prototype.toString.call(e),Nr=e=>(e=e||"").trim(),Er=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||kr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ar(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Pr({});return e.forEach((e=>{if((e=Pr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(jr(t=e).forEach(Pr),t);var t},Ir=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return jr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Gr=function(e){let t=jr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Tr={text:Ir,txt:Ir,array:Gr,flat:Gr},Dr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ir(e,!0)),null):Tr.hasOwnProperty(t)?Tr[t](e):e},Cr=e=>{jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Or=/\//;let Vr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Nr(e),!Or.test(e)){let t=this.json.children.find((t=>t.id===e));return new Vr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||Pr({});return new Vr(t)}add(e,t={}){if(xr(e))return e.forEach((e=>this.add(Nr(e),t))),this;e=Nr(e);let n=Pr({id:e,props:t});return this.json.children.push(n),new Vr(n)}remove(e){return e=Nr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return jr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return jr(this.json)}fillDown(){var e;return e=this.json,jr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else xr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Cr(this.json);let e=jr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Cr(this.json),Dr(this.json,e)}debug(){return Cr(this.json),Dr(this.json,"debug"),this}};const Br=function(e){let t=Er(e);return new Vr(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const $r=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Fr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:$r(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sr=function(e){return e?"string"==typeof e?[e]:e:[]};var Hr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sr(e[t].children),e[t].not=Sr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Wr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Hr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Fr(n)},Mr={one:{setTag:yr,unTag:wr,addTags:Wr}};const Jr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Lr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Jr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Jr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var qr=Lr,Kr=function(e){Object.assign(e.prototype,qr)},Ur={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Rr=new Set(["Auxiliary","Possessive"]);var _r=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Rr.has(e)||!t.hasOwnProperty(n))return 1;if(Rr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Qr={model:{one:{tagSet:{}}},compute:{tagRank:_r},methods:Mr,api:Kr,lib:Ur};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Yr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var ea=function(e){let t=[],n=e.split(Xr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const oa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ia=RegExp("("+Object.keys(oa).join("|")+")","g"),sa=RegExp("("+Object.values(oa).join("|")+")","g"),la=function(e){if(!e)return!1;let t=e.match(sa);return null!==t&&1===t.length};var ua=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var xa=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Aa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wa(n),n=ba(n),n=n.filter((e=>e)),n};let Na=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Ea=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ia=/[\p{Punctuation}\s]+$/u,Ga=/^[\p{Punctuation}\s]+/u,Ta=/['’]/,Da=/^[a-z]\.([a-z]\.)+/i,Ca=/^'[0-9]{2}/;var Oa=function(e){let t=e,n="",r="";return e=e.replace(Ga,(t=>{let r=t.match(Na);return r?(n=t.replace(Na,""),r):"'"===n&&Ca.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ia,(a=>{let o=a.match(Ea);return o?(r=a.replace(Ea,""),o):Ta.test(a)&&/[sn]['’]$/.test(t)&&!1===Ta.test(n)?(r=r.replace(Ta,""),"'"):!0===Da.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}},Va=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},Ba=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const za=/([A-Z]\.)+[A-Z]?,?$/,$a=/^[A-Z]\.,?$/,Fa=/[A-Z]{2,}('s|,)?$/,Sa=/([a-z]\.)+[a-z]\.?$/;var Ha=function(e){return function(e){return!0===za.test(e)||!0===Sa.test(e)||!0===$a.test(e)||!0===Fa.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Wa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ba(r),r=n(r,t),r=Ha(r),e.normal=r},Ma=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Wa(e,t)})),n})),e};const Ja=/[ .][A-Z]\.? *$/i,La=/(?:\u2026|\.{2,}) *$/,qa=/\p{L}/u,Ka=/^[A-Z]\. $/;var Ua=function(e,t){if(!1===qa.test(e))return!1;if(!0===Ja.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===La.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ra={one:{killUnicode:Va,tokenize:{splitSentences:ga,isSentence:Ua,splitTerms:xa,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Oa(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Ma}}},_a={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},Za={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qa[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])}))}));var Ya=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){eo[t]=e}))}));const to=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),to.test(n)&&!no.test(n)&&!ro.test(n)){let t=n.split(to);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const oo=/^\p{Letter}+-\p{Letter}+$/u;var io=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),oo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},so=function(e){let t=e.docs,n={};for(let e=0;eho(e,ao),machine:e=>ho(e,io),normal:e=>ho(e,Wa),freq:so,offset:lo,index:uo,wordCount:co},methods:Ra,model:{one:{aliases:_a,abbreviations:Qa,prefixes:Ya,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Za,unicode:eo}},hooks:["alias","machine","index","id"]},mo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var fo=function(e){e.prototype.autoFill=go},vo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const bo={safe:!0,min:3};var yo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},bo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=vo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},wo={model:{one:{typeahead:{}}},api:fo,lib:yo,compute:mo,hooks:["typeahead"]};v.extend(ee),v.extend(Ln),v.extend(ln),v.extend(rr),v.extend(Qr),v.plugin(Ie),v.extend(po),v.plugin(P),v.extend(Le),v.extend(wo),v.extend(ze),v.extend(mr);var Po={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ko={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ao=36,jo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",xo=jo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==xo[e])return xo[e];let t=0,n=1,r=Ao,a=1;for(;n=0;n--,a*=Ao){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Eo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Go(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=To(ko[e]);Vo.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Oo(t,$o);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Bo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Bo[e]="Emoticon")),delete Bo[""],delete Bo.null,delete Bo[" "];const Fo="Adjective";var So={beforeTags:{Determiner:Fo,Possessive:Fo},afterTags:{Adjective:Fo},beforeWords:{seem:Fo,seemed:Fo,seems:Fo,feel:Fo,feels:Fo,felt:Fo,appear:Fo,appears:Fo,appeared:Fo,also:Fo,over:Fo,under:Fo,too:Fo,it:Fo,but:Fo,still:Fo,really:Fo,quite:Fo,well:Fo,very:Fo,deeply:Fo,profoundly:Fo,extremely:Fo,so:Fo,badly:Fo,mostly:Fo,totally:Fo,awfully:Fo,rather:Fo,nothing:Fo,something:Fo,anything:Fo,not:Fo,me:Fo},afterWords:{too:Fo,also:Fo,or:Fo}};const Ho="Gerund";var Wo={beforeTags:{Adverb:Ho,Preposition:Ho,Conjunction:Ho},afterTags:{Adverb:Ho,Possessive:Ho,Person:Ho,Pronoun:Ho,Determiner:Ho,Copula:Ho,Preposition:Ho,Conjunction:Ho,Comparative:Ho},beforeWords:{been:Ho,keep:Ho,continue:Ho,stop:Ho,am:Ho,be:Ho,me:Ho,began:Ho,start:Ho,starts:Ho,started:Ho,stops:Ho,stopped:Ho,help:Ho,helps:Ho,avoid:Ho,avoids:Ho,love:Ho,loves:Ho,loved:Ho,hate:Ho,hates:Ho,hated:Ho},afterWords:{you:Ho,me:Ho,her:Ho,him:Ho,them:Ho,their:Ho,it:Ho,this:Ho,there:Ho,on:Ho,about:Ho,for:Ho}},Mo={beforeTags:Object.assign({},So.beforeTags,Wo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},So.afterTags,Wo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},So.beforeWords,Wo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},So.afterWords,Wo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Jo="Singular";var Lo={beforeTags:{Determiner:Jo,Possessive:Jo,Acronym:Jo,Noun:Jo,Adjective:Jo,PresentTense:Jo,Gerund:Jo,PastTense:Jo,Infinitive:Jo,Date:Jo},afterTags:{Value:Jo,Modal:Jo,Copula:Jo,PresentTense:Jo,PastTense:Jo,Demonym:Jo},beforeWords:{the:Jo,with:Jo,without:Jo,of:Jo,for:Jo,any:Jo,all:Jo,on:Jo,cut:Jo,cuts:Jo,save:Jo,saved:Jo,saves:Jo,make:Jo,makes:Jo,made:Jo,minus:Jo,plus:Jo,than:Jo,another:Jo,versus:Jo,neither:Jo,favorite:Jo,best:Jo,daily:Jo,weekly:Jo,linear:Jo,binary:Jo,mobile:Jo,lexical:Jo,technical:Jo,computer:Jo,scientific:Jo,formal:Jo},afterWords:{of:Jo,system:Jo,aid:Jo,method:Jo,utility:Jo,tool:Jo,reform:Jo,therapy:Jo,philosophy:Jo,room:Jo,authority:Jo,says:Jo,said:Jo,wants:Jo,wanted:Jo}};const qo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ko={beforeTags:Object.assign({},So.beforeTags,Lo.beforeTags,qo.beforeTags),afterTags:Object.assign({},So.afterTags,Lo.afterTags),beforeWords:Object.assign({},So.beforeWords,Lo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Lo.afterWords)};const Uo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ro={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},_o={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Qo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Zo={beforeTags:Object.assign({},So.beforeTags,Uo),afterTags:Object.assign({},So.afterTags,Ro),beforeWords:Object.assign({},So.beforeWords,_o),afterWords:Object.assign({},So.afterWords,Qo)};const Yo="Infinitive";var Xo={beforeTags:{Modal:Yo,Adverb:Yo,Negative:Yo,Plural:Yo},afterTags:{Determiner:Yo,Adverb:Yo,Possessive:Yo,Preposition:Yo},beforeWords:{i:Yo,we:Yo,you:Yo,they:Yo,to:Yo,please:Yo,will:Yo,have:Yo,had:Yo,would:Yo,could:Yo,should:Yo,do:Yo,did:Yo,does:Yo,can:Yo,must:Yo,us:Yo,me:Yo,he:Yo,she:Yo,it:Yo,being:Yo},afterWords:{the:Yo,me:Yo,you:Yo,him:Yo,her:Yo,them:Yo,it:Yo,a:Yo,an:Yo,up:Yo,down:Yo,by:Yo,out:Yo,off:Yo,under:Yo,when:Yo,all:Yo,to:Yo,because:Yo,although:Yo,before:Yo,how:Yo,otherwise:Yo,together:Yo,though:Yo,yet:Yo}};const ei={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ti={beforeTags:Object.assign({},So.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},So.afterTags,Xo.afterTags,ei.afterTags),beforeWords:Object.assign({},So.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Xo.afterWords,{to:void 0})};const ni={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ri={},ai={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oi={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ii={beforeTags:Object.assign({},Wo.beforeTags,Lo.beforeTags,ni),afterTags:Object.assign({},Wo.afterTags,Lo.afterTags,ri),beforeWords:Object.assign({},Wo.beforeWords,Lo.beforeWords,ai),afterWords:Object.assign({},Wo.afterWords,Lo.afterWords,oi)},si={beforeTags:Object.assign({},Xo.beforeTags,Lo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xo.afterTags,Lo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xo.beforeWords,Lo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xo.afterWords,Lo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const li="Person";var ui={beforeTags:{Honorific:li,Person:li,Preposition:li},afterTags:{Person:li,ProperNoun:li,Verb:li},ownTags:{ProperNoun:li},beforeWords:{hi:li,hey:li,yo:li,dear:li,hello:li},afterWords:{said:li,says:li,told:li,tells:li,feels:li,felt:li,seems:li,thinks:li,thought:li,spends:li,spendt:li,plays:li,played:li,sing:li,sang:li,learn:li,learned:li,wants:li,wanted:li}};const ci="Month",hi={beforeTags:{Date:ci,Value:ci},afterTags:{Date:ci,Value:ci},beforeWords:{by:ci,in:ci,on:ci,during:ci,after:ci,before:ci,between:ci,until:ci,til:ci,sometime:ci,of:ci,this:ci,next:ci,last:ci,previous:ci,following:ci},afterWords:{sometime:ci,in:ci,of:ci,until:ci,the:ci}};var di={beforeTags:Object.assign({},ui.beforeTags,hi.beforeTags),afterTags:Object.assign({},ui.afterTags,hi.afterTags),beforeWords:Object.assign({},ui.beforeWords,hi.beforeWords),afterWords:Object.assign({},ui.afterWords,hi.afterWords)};const pi={Place:"Place"},mi={Place:"Place",Abbreviation:"Place"},gi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},fi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let vi="Unit";const bi="Honorific";let yi={first:bi,general:bi,royal:bi,vice:bi,rear:bi,major:bi};const wi={"Adj|Gerund":Mo,"Adj|Noun":Ko,"Adj|Past":Zo,"Adj|Present":ti,"Noun|Verb":si,"Noun|Gerund":ii,"Person|Noun":{beforeTags:Object.assign({},Lo.beforeTags,ui.beforeTags),afterTags:Object.assign({},Lo.afterTags,ui.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ui.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Lo.afterWords,ui.afterWords)},"Person|Date":di,"Person|Verb":{beforeTags:Object.assign({},ui.beforeTags,Xo.beforeTags),afterTags:Object.assign({},ui.afterTags,Xo.afterTags),beforeWords:Object.assign({},ui.beforeWords,Xo.beforeWords),afterWords:Object.assign({},ui.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},pi,ui.beforeTags),afterTags:Object.assign({},mi,ui.afterTags),beforeWords:Object.assign({},gi,ui.beforeWords),afterWords:Object.assign({},fi,ui.afterWords)},"Unit|Noun":{beforeTags:{Value:vi},afterTags:{},beforeWords:{per:vi,every:vi,each:vi,square:vi,cubic:vi,sq:vi,metric:vi},afterWords:{per:vi,squared:vi,cubed:vi,long:vi}},"Honorific|Noun":{beforeTags:{Honorific:bi,ProperNoun:bi,Ordinal:bi},afterTags:{Person:bi,ProperNoun:bi},beforeWords:Object.assign({},yi,{honorable:bi,honourable:bi,worship:bi,excellency:bi,majesty:bi,right:bi}),afterWords:yi}},Pi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};wi["Plural|Verb"]={beforeWords:Pi(wi["Noun|Verb"].beforeWords,{}),afterWords:Pi(wi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:Pi(wi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Pi(wi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ki=wi;const Ai="Adjective",ji="Infinitive",xi="PresentTense",Ni="Singular",Ei="PastTense",Ii="Adverb",Gi="Plural",Ti="Actor",Di="Verb",Ci="Noun",Oi="LastName",Vi="Modal",Bi="Participle";var zi=[null,null,{ea:Ni,ia:Ci,ic:Ai,ly:Ii,"'n":Di,"'t":Di},{oed:Ei,ued:Ei,xed:Ei," so":Ii,"'ll":Vi,"'re":"Copula",azy:Ai,eer:Ci,end:Di,ped:Ei,ffy:Ai,ify:ji,ing:"Gerund",ize:ji,ibe:ji,lar:Ai,mum:Ai,nes:xi,nny:Ai,ous:Ai,que:Ai,rol:Ni,sis:Ni,ogy:Ni,oid:Ni,ian:Ni,zes:xi,eld:Ei,ken:Bi,ven:Bi,ten:Bi,ect:ji,ict:ji,ign:ji,ful:Ai,bal:Ai},{amed:Ei,aped:Ei,ched:Ei,lked:Ei,rked:Ei,reed:Ei,nded:Ei,mned:Ai,cted:Ei,dged:Ei,ield:Ni,akis:Oi,cede:ji,chuk:Oi,czyk:Oi,ects:xi,ends:Di,enko:Oi,ette:Ni,wner:Ni,fies:xi,fore:Ii,gate:ji,gone:Ai,ices:Gi,ints:Gi,ruct:ji,ines:Gi,ions:Gi,less:Ai,llen:Ai,made:Ai,nsen:Oi,oses:xi,ould:Vi,some:Ai,sson:Oi,tion:Ni,tage:Ci,ique:Ni,tive:Ai,tors:Ci,vice:Ni,lier:Ni,fier:Ni,wned:Ei,gent:Ni,tist:Ni,pist:Ni,rist:Ni,mist:Ni,yist:Ni,vist:Ni,lite:Ni,site:Ni,rite:Ni,mite:Ni,bite:Ni,mate:Ni,date:Ni,ndal:Ni,vent:Ni,uist:Ni,gist:Ni,note:Ni,cide:Ni,wide:Ai,vide:ji,ract:ji,duce:ji,pose:ji,eive:ji,lyze:ji,lyse:ji,iant:Ai,nary:Ai},{elist:Ni,holic:Ni,phite:Ni,tized:Ei,urned:Ei,eased:Ei,ances:Gi,bound:Ai,ettes:Gi,fully:Ii,ishes:xi,ities:Gi,marek:Oi,nssen:Oi,ology:Ci,osome:Ni,tment:Ni,ports:Gi,rough:Ai,tches:xi,tieth:"Ordinal",tures:Gi,wards:Ii,where:Ii,archy:Ci,pathy:Ci,opoly:Ci,embly:Ci,phate:Ci,ndent:Ni,scent:Ni,onist:Ni,anist:Ni,alist:Ni,olist:Ni,icist:Ni,ounce:ji,iable:Ai,borne:Ai,gnant:Ai,inant:Ai,igent:Ai,atory:Ai,rient:Ni,dient:Ni},{auskas:Oi,parent:Ni,cedent:Ni,ionary:Ni,cklist:Ni,keeper:Ti,logist:Ti,teenth:"Value"},{opoulos:Oi,borough:"Place",sdottir:Oi}];const $i="Adjective",Fi="Noun",Si="Verb";var Hi=[null,null,{},{neo:Fi,bio:Fi,"de-":Si,"re-":Si,"un-":Si},{anti:Fi,auto:Fi,faux:$i,hexa:Fi,kilo:Fi,mono:Fi,nano:Fi,octa:Fi,poly:Fi,semi:$i,tele:Fi,"pro-":$i,"mis-":Si,"dis-":Si,"pre-":$i},{anglo:Fi,centi:Fi,ethno:Fi,ferro:Fi,grand:Fi,hepta:Fi,hydro:Fi,intro:Fi,macro:Fi,micro:Fi,milli:Fi,nitro:Fi,penta:Fi,quasi:$i,radio:Fi,tetra:Fi,"omni-":$i,"post-":$i},{pseudo:$i,"extra-":$i,"hyper-":$i,"inter-":$i,"intra-":$i,"deca-":$i},{electro:Fi}];const Wi="Adjective",Mi="Infinitive",Ji="PresentTense",Li="Singular",qi="PastTense",Ki="Adverb",Ui="Expression",Ri="Actor",_i="Verb",Qi="Noun",Zi="LastName";var Yi={a:[[/.[aeiou]na$/,Qi,"tuna"],[/.[oau][wvl]ska$/,Zi],[/.[^aeiou]ica$/,Li,"harmonica"],[/^([hyj]a+)+$/,Ui,"haha"]],c:[[/.[^aeiou]ic$/,Wi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,qi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,qi,"rammed"],[/.[aeiou][sg]hed$/,qi,"gushed"],[/.[aeiou]red$/,qi,"hired"],[/.[aeiou]r?ried$/,qi,"hurried"],[/[^aeiou]ard$/,Li,"steward"],[/[aeiou][^aeiou]id$/,Wi,""],[/.[vrl]id$/,Wi,"livid"],[/..led$/,qi,"hurled"],[/.[iao]sed$/,qi,""],[/[aeiou]n?[cs]ed$/,qi,""],[/[aeiou][rl]?[mnf]ed$/,qi,""],[/[aeiou][ns]?c?ked$/,qi,"bunked"],[/[aeiou]gned$/,qi],[/[aeiou][nl]?ged$/,qi],[/.[tdbwxyz]ed$/,qi],[/[^aeiou][aeiou][tvx]ed$/,qi],[/.[cdflmnprstv]ied$/,qi,"emptied"]],e:[[/.[lnr]ize$/,Mi,"antagonize"],[/.[^aeiou]ise$/,Mi,"antagonise"],[/.[aeiou]te$/,Mi,"bite"],[/.[^aeiou][ai]ble$/,Wi,"fixable"],[/.[^aeiou]eable$/,Wi,"maleable"],[/.[ts]ive$/,Wi,"festive"],[/[a-z]-like$/,Wi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Wi,"cornish"],[/.v[iy]ch$/,Zi,"..ovich"],[/^ug?h+$/,Ui,"ughh"],[/^uh[ -]?oh$/,Ui,"uhoh"],[/[a-z]-ish$/,Wi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Zi,"polish-male"]],k:[[/^(k){2}$/,Ui,"kkkk"]],l:[[/.[gl]ial$/,Wi,"familial"],[/.[^aeiou]ful$/,Wi,"fitful"],[/.[nrtumcd]al$/,Wi,"natal"],[/.[^aeiou][ei]al$/,Wi,"familial"]],m:[[/.[^aeiou]ium$/,Li,"magnesium"],[/[^aeiou]ism$/,Li,"schism"],[/^[hu]m+$/,Ui,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Wi,"republican"],[/[^aeiou]ician$/,Ri,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ui,"noooo"],[/^(yo)+$/,Ui,"yoo"],[/^wo{2,}[pt]?$/,Ui,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Li],[/[^i]fer$/,Mi],[/.[^aeiou][ao]pher$/,Ri],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Wi],[/[aeiou].*ist$/,Wi],[/^[a-z]et$/,_i]],s:[[/.[^aeiou]ises$/,Ji],[/.[rln]ates$/,Ji],[/.[^z]ens$/,_i],[/.[lstrn]us$/,Li],[/.[aeiou]sks$/,Ji],[/.[aeiou]kes$/,Ji],[/[aeiou][^aeiou]is$/,Li],[/[a-z]'s$/,Qi],[/^yes+$/,Ui]],v:[[/.[^aeiou][ai][kln]ov$/,Zi]],y:[[/.[cts]hy$/,Wi],[/.[st]ty$/,Wi],[/.[tnl]ary$/,Wi],[/.[oe]ry$/,Li],[/[rdntkbhs]ly$/,Ki],[/.(gg|bb|zz)ly$/,Wi],[/...lly$/,Ki],[/.[gk]y$/,Wi],[/[bszmp]{2}y$/,Wi],[/.[ai]my$/,Wi],[/[ea]{2}zy$/,Wi],[/.[^aeiou]ity$/,Li]]};const Xi="Verb",es="Noun";var ts={leftTags:[["Adjective",es],["Possessive",es],["Determiner",es],["Adverb",Xi],["Pronoun",Xi],["Value",es],["Ordinal",es],["Modal",Xi],["Superlative",es],["Demonym",es],["Honorific","Person"]],leftWords:[["i",Xi],["first",es],["it",Xi],["there",Xi],["not",Xi],["because",es],["if",es],["but",es],["who",Xi],["this",es],["his",es],["when",es],["you",Xi],["very","Adjective"],["old",es],["never",Xi],["before",es],["a","Singular"],["the",es],["been",Xi]],rightTags:[["Copula",es],["PastTense",es],["Conjunction",es],["Modal",es]],rightWords:[["there",Xi],["me",Xi],["man","Adjective"],["only",Xi],["him",Xi],["it",Xi],["were",es],["took",es],["himself",Xi],["went",es],["who",es],["jr","Person"]]},ns={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},rs={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},as={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},os={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},is={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ss=/^.([0-9]+)/;var ls=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ss);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ss,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},cs=/^([0-9]+)/,hs=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(cs);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(cs,"")]}(n[0],n[1])}))};var ds=function(e={}){return(e=Object.assign({},e)).rules=hs(e.rules),e.rules=us(e.rules),e.rev&&(e.rev=hs(e.rev),e.rev=us(e.rev)),e.exceptions=hs(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},ps=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const ms=ds({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),gs=ds(os),fs=ds(rs),vs=ds(as),bs=ps(ms),ys=ps(gs),ws=ps(fs),Ps=ps(vs),ks=ds(ns),As=ds(is);var js={fromPast:ms,fromPresent:gs,fromGerund:fs,fromParticiple:vs,toPast:bs,toPresent:ys,toGerund:ws,toParticiple:Ps,toComparative:ks,toSuperlative:As,fromComparative:ps(ks),fromSuperlative:ps(As)},xs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ns=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Es=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Gs[t].forEach((n=>e[n]=t)),e)),{});var Ts=Gs,Ds=function(e){let t=e.substring(e.length-3);if(!0===Ts.hasOwnProperty(t))return Ts[t];let n=e.substring(e.length-2);return!0===Ts.hasOwnProperty(n)?Ts[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Cs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Os=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ds(e)),Cs.hasOwnProperty(e))c=Cs[e];else if("Participle"===n)c=ls(l,i);else if("PastTense"===n)c=ls(l,r);else if("PresentTense"===n)c=ls(l,a);else{if("Gerund"!==n)return e;c=ls(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Vs=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ls(i,n),PresentTense:ls(i,r),Gerund:ls(i,a),FutureTense:"will "+e},u=ls(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Bs={toInfinitive:Os,conjugate:Vs,all:function(e,t){let n=Vs(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},zs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const $s=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Fs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ss=function(e){if(Fs.hasOwnProperty(e))return Fs[e];let t=zs(e,$s);return t||e+"ly"};const Hs=function(e,t){const n=t.two.models.toSuperlative;return ls(e,n)},Ws=function(e,t){const n=t.two.models.toComparative;return ls(e,n)},Ms="ically",Js=new Set(["analyt"+Ms,"chem"+Ms,"class"+Ms,"clin"+Ms,"crit"+Ms,"ecolog"+Ms,"electr"+Ms,"empir"+Ms,"frant"+Ms,"grammat"+Ms,"ident"+Ms,"ideolog"+Ms,"log"+Ms,"mag"+Ms,"mathemat"+Ms,"mechan"+Ms,"med"+Ms,"method"+Ms,"method"+Ms,"mus"+Ms,"phys"+Ms,"phys"+Ms,"polit"+Ms,"pract"+Ms,"rad"+Ms,"satir"+Ms,"statist"+Ms,"techn"+Ms,"technolog"+Ms,"theoret"+Ms,"typ"+Ms,"vert"+Ms,"whims"+Ms]),Ls=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],qs=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ks={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Us=function(e){return e.endsWith("ly")?Js.has(e)?e.replace(/ically/,"ical"):qs.has(e)?null:Ks.hasOwnProperty(e)?Ks[e]:zs(e,Ls)||e:null};const Rs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],_s={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Qs=new Set(["terrible","annoying"]);var Zs={toSuperlative:Hs,toComparative:Ws,toAdverb:Ss,toNoun:function(e){if(_s.hasOwnProperty(e))return _s[e];if(Qs.has(e))return null;let t=zs(e,Rs);return t||e+"ness"},fromAdverb:Us,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ls(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ls(e,n)},all:function(e,t){let n=[e];return n.push(Hs(e,t)),n.push(Ws(e,t)),n.push(Ss(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Ys={noun:Is,verb:Bs,adjective:Zs},Xs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},el=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Xs.hasOwnProperty(i)&&Xs[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},tl=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!al.find((t=>e.endsWith(t)))},il={two:{quickSplit:tl,expandLexicon:el,transform:Ys,looksPlural:ol}},sl=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const ll=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var ul=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=ll(n,"Infinitive","PastTense"),Object.assign(s,l),l=ll(r,"Infinitive","Verb"),Object.assign(s,l),l=ll(a,"Infinitive","Gerund"),Object.assign(s,l),l=ll(o,"Adjective","Superlative"),Object.assign(s,l),l=ll(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let cl={two:{models:js}};const hl={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},dl=function(e,t){const n={model:t,methods:il};let{lex:r,_multi:a}=il.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},pl=function(e,t,n){let r=Vs(e,cl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},ml=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=hl[o],"Noun|Verb"!==o&&"Person|Verb"!==o||pl(a,r,!1),"Adj|Present"===o&&(pl(a,r,!0),function(e,t,n){let r=Hs(e,n);t[r]=t[r]||"Superlative";let a=Ws(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Os(a,cl,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Os(a,cl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=dl(n,t)};var gl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=dl(e.one.lexicon,e)).one.lexicon,e),e=ml(e.two.switches,e),e=ul(e),e=sl(e)};let fl={one:{_multiCache:{},lexicon:Bo},two:{irregularPlurals:Po,models:js,suffixPatterns:zi,prefixPatterns:Hi,endsWith:Yi,neighbours:ts,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:zo,clues:ki,uncountable:{},orgWords:xs}};fl=gl(fl);var vl=fl;const bl=/^(under|over|mis|re|un|dis|semi)-?/;var yl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(bl.test(a.normal)){let e=a.normal.replace(bl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},wl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const Pl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var kl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(ol(e.normal)?wl(e,"Plural","3-plural-guess"):wl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ds(e.normal);t&&wl(e,t,"3-verb-tense-guess")}}(r)};const Al=/^\p{Lu}[\p{Ll}'’]/u,jl=/[0-9]/,xl=["Date","Month","WeekDay","Unit"],Nl=/^[IVXLCDM]{2,}$/,El=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Il={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Gl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===Al.test(o)&&!1===jl.test(o)?xl.find((e=>r.tags.has(e)))?null:(kl(e,t,n),r.tags.has("Noun")||r.tags.clear(),wl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Nl.test(o)&&El.test(o)&&!Il[r.normal]?(wl(r,"RomanNumeral","2-xvii"),!0):null};const Tl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var Dl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Tl(r.normal,n.two.suffixPatterns);if(null!==e)return wl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Tl(r.implicit,n.two.suffixPatterns),null!==e))return wl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Cl=/['‘’‛‵′`´]/,Ol=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return wl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const zl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),$l=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!zl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Fl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Sl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Hl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if($l(a)||$l(o))return wl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Fl(a)||Fl(o))return wl(n,"Year","2-tagYear-close");if(Sl(e[t-2])||Sl(e[t+2]))return wl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return wl(n,"Year","2-tagYear-noun")}}}return null};const Wl=/^[A-Z]('s|,)?$/,Ml=/^[A-Z-]+$/,Jl=/([A-Z]\.)+[A-Z]?,?$/,Ll=/[A-Z]{2,}('s|,)?$/,ql=/([a-z]\.)+[a-z]\.?$/,Kl={I:!0,A:!0};var Ul=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Ml.test(n)||n.length>5||Kl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Jl.test(n)&&!0!==ql.test(n)&&!0!==Wl.test(n)&&!0!==Ll.test(n))}(r,n)?(r.tags.clear(),wl(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Kl.hasOwnProperty(r.text)&&Wl.test(r.text)?(r.tags.clear(),wl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(wl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Ml.test(r.text)&&r.text.length<=6?(wl(r,"Acronym","3-titlecase-acronym"),!0):null};const Rl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},_l=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ql=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Rl(e[t-1],a),l=l||Rl(e[t+1],o),l=l||_l(e[t-1],r),l=l||_l(e[t+1],i),l)return wl(s,l,"3-[neighbour]"),kl(e,t,n),e[t].confidence=.2,!0}return null};const Zl=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Yl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Zl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Zl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Xl=function(e,t,n){0===e[t].tags.size&&(wl(e[t],"Noun","3-[fallback]"),kl(e,t,n),e[t].confidence=.1)};const eu=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,tu=(e,t,n)=>0!==t||e[1]?null:n,nu={"Adj|Gerund":(e,t)=>eu(e,t),"Adj|Noun":(e,t)=>eu(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>eu(e,t),"Adj|Present":(e,t)=>eu(e,t),"Noun|Gerund":(e,t)=>eu(e,t),"Noun|Verb":(e,t)=>eu(e,t)||tu(e,t,"Infinitive"),"Plural|Verb":(e,t)=>eu(e,t)||tu(e,t,"PresentTense"),"Person|Noun":(e,t)=>eu(e,t),"Person|Verb":(e,t)=>0!==t?eu(e,t):null};var ru=nu;const au="undefined"!=typeof process&&process.env?process.env:self.env||{},ou=/^(under|over|mis|re|un|dis|semi)-?/,iu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&au.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},su=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&au.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var lu=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(ou.test(l)&&!o[l]&&(l=l.replace(ou,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=iu(e[t+1],n.afterWords);return o=o||iu(e[t-1],n.beforeWords),o=o||su(e[t-1],n.beforeTags,a),o=o||su(e[t+1],n.afterTags,a),o}(e,t,i[o],r);ru[o]&&(u=ru[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),kl(e,t,r)):au.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},uu=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(wl(o,"Verb","3-[prefix]"),wl(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(wl(o,"Adjective","3-[prefix]"),wl(o,"Prefix","3-[prefix]")))};const cu={tagSwitch:yl,checkSuffix:Dl,checkRegex:Vl,checkCase:Gl,checkPrefix:Bl,checkHyphen:uu,checkYear:Hl},hu={checkAcronym:Ul,neighbours:Ql,orgWords:Yl,nounFallback:Xl,switches:lu},du=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var fu=function(e){const t=e.world,n=Object.keys(gu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=Iu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Eu},Tu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Du=/'/;var Cu=function(e,t){let n=e[t].normal.split(Du)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Ou=/'/;var Vu=function(e,t){let n=e[t].normal.split(Ou)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Bu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const zu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},$u={in:!0,by:!0,for:!0};var Fu=(e,t)=>{let n=e[t];if(zu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===$u[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Su=/'/,Hu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Wu={d:(e,t)=>Vu(e,t),t:(e,t)=>Bu(e,t),s:(e,t,n)=>Fu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Cu(e,t)},Mu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Ju={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Su.test(r[o].normal)&&([,i]=r[o].normal.split(Su));let s=null;Wu.hasOwnProperty(i)&&(s=Wu[i](r,o,t)),s&&(s=Mu(s,e),Tu(n,[a,o],s),Hu(n[a],e,o,s.length))}}))}},Lu={compute:Ju,api:Gu,hooks:["contractionTwo"]};const qu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Ku=["i","we","they"];let Uu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${qu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${qu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${qu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ku,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Ru=null;var _u={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Ru=Ru||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Ru),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Qu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:_u,model:{two:{matches:Uu}},hooks:["postTagger"]};var Zu=Qu,Yu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},Xu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Yu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},ec={lib:{lazy:Xu}},tc=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},nc=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?tc(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},rc={api:function(e){e.prototype.swap=nc}};v.plugin(ju),v.plugin(Lu),v.plugin(Zu),v.plugin(ec),v.plugin(rc);var ac=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter((e=>e.wordCount()>5&&e.match("#Verb+").length>=2));if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},oc=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r},ic=function(e){e.prototype.chunks=oc,e.prototype.clauses=ac};const sc={this:"Noun",then:"Pivot"};var lc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},fc={chunks:function(e){const{document:t,world:n}=e;lc(t),uc(t),dc(e,t,n),mc(t),gc(t)}},vc={compute:fc,api:ic,hooks:["chunks"]};const bc=/'s$/;var yc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(bc,""),e.normal=e.normal.replace(bc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const wc=/\(/,Pc=/\)/,kc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(wc,"");let t=e[e.length-1];t.post=t.post.replace(Pc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const jc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},xc=RegExp("("+Object.keys(jc).join("|")+")"),Nc=RegExp("("+Object.values(jc).join("|")+")"),Ec=function(e,t){const n=e[t].pre.match(xc)[0]||"";if(!n||!jc[n])return null;const r=jc[n];for(;t{e[0].pre=e[0].pre.replace(xc,"");let t=e[e.length-1];t.post=t.post.replace(Nc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Gc=/\./g;var Tc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Gc,""),e.normal=e.normal.replace(Gc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Gc,""),e.normal=e.normal.replace(Gc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},Dc=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Cc=(e,t)=>"number"==typeof t?e.eq(t):e,Oc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Vc=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Oc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let o=Oc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Cc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Cc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Cc(t,e),new Adjectives(t.document,t.pointer)}};const Bc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},zc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let $c=[["emojis","emoji"],["atmentions","atMentions"]];var Fc=function(e){zc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Bc,$c.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},Sc={api:function(e){Fc(e),yc(e),Ac(e),Ic(e),Vc(e),Dc(e),Tc(e)}};const Hc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Wc={case:e=>{Hc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Hc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{Hc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{Hc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Mc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Jc="unicode|punctuation|whitespace|acronyms",Lc="|case|contractions|parentheses|quotations|emoji|honorifics",qc={light:Mc(Jc),medium:Mc(Jc+Lc),heavy:Mc(Jc+Lc+"|possessives|adverbs|nouns|verbs")};var Kc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=qc[e]),Object.keys(e).forEach((t=>{Wc.hasOwnProperty(t)&&Wc[t](this,e[t])})),this}}},Uc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Rc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var _c=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Zc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Qc(e,t),isSubordinate:_c(e),root:t}};const Yc=e=>e.text(),Xc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),eh=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var th=function(e){let t=Zc(e);return{root:Yc(t.root),number:eh(t.number),determiner:Yc(t.determiner),adjectives:Xc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const nh={tags:!0};var rh=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,nh).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",nh),e};const ah={tags:!0};var oh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,ah).tag("Singular","toPlural"),e};const ih=(e,t)=>"number"==typeof t?e.eq(t):e;var sh=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return ih(this,e).map(Zc)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=th(t)),n}),[])}isPlural(e){let t=this.filter((e=>Zc(e).isPlural));return ih(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Zc(e).adjectives;n.found&&(t=t.concat(n))})),ih(t,e)}toPlural(e){return ih(this,e).map((e=>rh(e,Zc(e))))}toSingular(e){return ih(this,e).map((e=>{let t=Zc(e);return oh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Uc(this);return t=ih(t,e),new Nouns(this.document,t.pointer)}},lh={api:sh},uh=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},ch=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(hh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(hh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(hh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},ph=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const gh=/^([0-9,. ]+)\/([0-9,. ]+)$/,fh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},vh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var bh=function(e){if(!0===fh.hasOwnProperty(e))return fh[e];if("a"===e||"an"===e)return 1;const t=ch(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=wh(n),r=wh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:wh(n);let a=r.text("reduced");return yh.test(a)&&(a=a.replace(yh,""),r=r.replaceWith(a)),r=Ph.hasOwnProperty(a)?Ph[a]:wh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:wh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},Ah=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const jh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],xh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Nh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Eh=function(e){let t=[];if(e>100)return t;for(let n=0;n=jh[n][1]&&(e-=jh[n][1],t.push(jh[n][0]));return xh[e]&&t.push(xh[e]),t};var Ih=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ah(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Nh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Eh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ah(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Gh=function(e){return e.numerator&&e.denominator?`${Ih({num:e.numerator})} out of ${Ih({num:e.denominator})}`:""};const Th={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Dh=e=>{let t=Ih(e).split(" "),n=t[t.length-1];return Th.hasOwnProperty(n)?t[t.length-1]=Th[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Ch=function(e){if(!e.numerator||!e.denominator)return"";let t=Ih({num:e.numerator}),n=Dh({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Oh=(e,t)=>"number"==typeof t?e.eq(t):e;var Vh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Oh(this,e).map(kh)}get(e){return Oh(this,e).map(kh)}json(e){return Oh(this,e).map((t=>{let n=t.toView().json(e)[0],r=kh(t);return n.fraction=r,n}),[])}toDecimal(e){return Oh(this,e).forEach((e=>{let{decimal:t}=kh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return Oh(this,e).forEach((e=>{let t=kh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return Oh(this,e).forEach((e=>{let t=kh(e),n=Ch(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return Oh(this,e).forEach((e=>{let t=kh(e),n=Gh(t);e.replaceWith(n)})),this}toPercentage(e){return Oh(this,e).forEach((e=>{let{decimal:t}=kh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=uh(this);return t=Oh(t,e),new Fractions(this.document,t.pointer)}};const Bh="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var zh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Bh+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Bh+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Bh+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Bh+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Bh})`),r=e.has("("+Bh+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Bh+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Bh+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},$h=function(e){if("string"==typeof e)return{num:bh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=kh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=bh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Fh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Ah(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Sh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Hh={"%":"percent","°":"degrees"};var Wh=function(e){let t={suffix:"",prefix:e.prefix};return Sh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Sh[e.prefix],t.prefix=""),Hh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Hh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},Mh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Wh(e);return t+Dh(e)+n}if("Ordinal"===t)return e.prefix+Fh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Wh(e);return t+Ih(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Jh=(e,t)=>"number"==typeof t?e.eq(t):e;var Lh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Jh(this,e).map($h)}get(e){return Jh(this,e).map($h).map((e=>e.num))}json(e){return Jh(this,e).map((t=>{let n=t.toView().json(e)[0],r=$h(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=$h(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Mh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=$h(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Mh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=$h(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Mh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=$h(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Mh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=$h(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Mh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>$h(t).num===e))}greaterThan(e){return this.filter((t=>$h(t).num>e))}lessThan(e){return this.filter((t=>$h(t).num{let r=$h(n).num;return r>e&&r{let n=$h(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Mh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=$h(e).num);let t=this.map((t=>{let n=$h(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Mh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=zh(this);return t=Jh(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=zh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=Jh(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=zh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=Jh(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},qh={api:function(e){Vh(e),Lh(e)}};const Kh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Uh=function(e={}){return!1!==(e=Object.assign({},Kh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},Rh={api:function(e){e.prototype.redact=Uh}};var _h=Rh,Qh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},Zh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},Yh=function(e){let t=e.clauses(),n=Zh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Xh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},ed=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},td=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},nd=function(e){return e.verbs().toInfinitive(),e};const rd=(e,t)=>"number"==typeof t?e.eq(t):e;var ad=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Yh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n}),[])}toPastTense(e){return rd(this,e).map((e=>(Yh(e),Xh(e))))}toPresentTense(e){return rd(this,e).map((e=>(Yh(e),ed(e))))}toFutureTense(e){return rd(this,e).map((e=>(Yh(e),e=td(e))))}toInfinitive(e){return rd(this,e).map((e=>(Yh(e),nd(e))))}toNegative(e){return rd(this,e).map((e=>(Yh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return rd(this,e).map((e=>(Yh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return rd(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return rd(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=rd(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Qh(this);return rd(t,e)}};Object.assign(e.prototype,t)},od={api:ad},id=function(e){return e.match("#Honorific+? #Person+")},sd=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const ld="male",ud="female",cd={mr:ld,mrs:ud,miss:ud,madam:ud,king:ld,queen:ud,duke:ld,duchess:ud,baron:ld,baroness:ud,count:ld,countess:ud,prince:ld,princess:ud,sire:ld,dame:ud,lady:ud,ayatullah:ld,congressman:ld,congresswoman:ud,"first lady":ud,mx:null};var hd=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return ud;if(n.has("#MaleName"))return ld;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),cd.hasOwnProperty(e))return cd[e];if(/^her /.test(e))return ud;if(/^his /.test(e))return ld}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return ld;if(n&&!t)return ud}return null};const dd=(e,t)=>"number"==typeof t?e.eq(t):e;var pd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return dd(this,e).map(sd)}json(e){return dd(this,e).map((t=>{let n=t.toView().json(e)[0],r=sd(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:hd(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=id(this);return t=dd(t,e),new People(this.document,t.pointer)}},md=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},gd=function(e){e.prototype.places=function(t){let n=md(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},fd=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const vd=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var bd=function(e){e.prototype.topics=vd},yd={api:function(e){pd(e),gd(e),fd(e),bd(e)}},wd=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},Pd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},kd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const Ad=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},jd=function(e){return e.match("#Negative")},xd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Nd=function(e){let t=e.clone();t.contractions().expand();const n=Pd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:kd(t,n),auxiliary:Ad(t,n),negative:jd(t),phrasal:xd(n)}};const Ed={tense:"PresentTense"},Id={conditional:!0},Gd={tense:"FutureTense"},Td={progressive:!0},Dd={tense:"PastTense"},Cd={complete:!0,progressive:!1},Od={passive:!0},Vd=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Bd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Ed]],["^wanted to #Infinitive$",[Dd]],["^will want to #Infinitive$",[Gd]]],"gerund-phrase":[["^#PastTense #Gerund$",[Dd]],["^#PresentTense #Gerund$",[Ed]],["^#Infinitive #Gerund$",[Ed]],["^will #Infinitive #Gerund$",[Gd]],["^have #PastTense #Gerund$",[Dd]],["^will have #PastTense #Gerund$",[Dd]]],"simple-present":[["^#PresentTense$",[Ed]],["^#Infinitive$",[Ed]]],"simple-past":[["^#PastTense$",[Dd]]],"simple-future":[["^will #Adverb? #Infinitive",[Gd]]],"present-progressive":[["^(is|are|am) #Gerund$",[Ed,Td]]],"past-progressive":[["^(was|were) #Gerund$",[Dd,Td]]],"future-progressive":[["^will be #Gerund$",[Gd,Td]]],"present-perfect":[["^(has|have) #PastTense$",[Dd,Cd]]],"past-perfect":[["^had #PastTense$",[Dd,Cd]],["^had #PastTense to #Infinitive",[Dd,Cd]]],"future-perfect":[["^will have #PastTense$",[Gd,Cd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Dd,Td]]],"past-perfect-progressive":[["^had been #Gerund$",[Dd,Td]]],"future-perfect-progressive":[["^will have been #Gerund$",[Gd,Td]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Dd,Od]],["^(was|were) being (#PastTense|#Participle)",[Dd,Od]],["^(had|have) been (#PastTense|#Participle)",[Dd,Od]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Ed,Od]],["^(is|are|am) being (#PastTense|#Participle)",[Ed,Od]],["^has been (#PastTense|#Participle)",[Ed,Od]]],"passive-future":[["will have been (#PastTense|#Participle)",[Gd,Od,Id]],["will be being? (#PastTense|#Participle)",[Gd,Od,Id]]],"present-conditional":[["would be #PastTense",[Ed,Id]]],"past-conditional":[["would have been #PastTense",[Dd,Id]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Gd]]],"auxiliary-past":[["^did #Infinitive$",[Dd,{plural:!1}]],["^used to #Infinitive$",[Dd,Cd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Ed,Cd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Dd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let zd=[];Object.keys(Bd).map((e=>{Bd[e].forEach((t=>{zd.push({name:e,match:t[0],data:Vd(t[1])})}))}));var $d=zd,Fd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t<$d.length;t+=1){let r=$d[t];if(!0===e.has(r.match)){n.form=r.name,Object.assign(n,r.data);break}}return n.form||e.has("^#Verb$")&&(n.form="infinitive"),n.tense||(n.tense=t.root.has("#PastTense")?"PastTense":"PresentTense"),n.copula=t.root.has("#Copula"),n};const Sd=function(e){return!(e.length<=1)&&(e.parse()[0]||{}).isSubordinate},Hd=function(e,t){return!!t.has("(are|were|does)")||!!e.has("(those|they|we)")||!(!e.found||!e.isPlural)&&e.isPlural().found};var Wd=function(e){let t=function(e){let t=e.before();t=function(e){let t=e.clauses();return t=t.filter(((e,t)=>!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),Sd(r)&&(n.remove(r),r=n.last()),Sd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Hd(t,e)}};const Md=e=>e,Jd=(e,t)=>{let n=Wd(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Ld=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Wd(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},qd=function(e,t){let n=Wd(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Kd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Ud=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Kd(e)),r&&e.replace(t.root,r),e},Rd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),_d=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Qd=function(e){return e&&e.isView?e.text("normal"):""},Zd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Kd(e))};var Yd=function(e){let t=Nd(e);e=e.clone().toView();const n=Fd(e,t);return{root:t.root.text(),preAdverbs:_d(t.adverbs.pre),postAdverbs:_d(t.adverbs.post),auxiliary:Qd(t.auxiliary),negative:t.negative.found,prefix:Qd(t.prefix),infinitive:Zd(t.root),grammar:n}};const Xd={tags:!0};var ep=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Kd(r)),i&&e.replace(r,i,Xd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=qd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const tp={tags:!0},np={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Kd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Wd(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,tp),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=np.simple(e,t),e=np.noAux(e,t))},hasHad:e=>(e.replace("has","had",tp),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Kd(a)),n(o,e.model).Participle}},rp={infinitive:np.simple,"simple-present":np.simple,"simple-past":Md,"simple-future":np.both,"present-progressive":e=>(e.replace("are","were",tp),e.replace("(is|are|am)","was",tp),e),"past-progressive":Md,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":np.hasHad,"past-perfect":Md,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Rd(e)),e.remove("have"),e),"present-perfect-progressive":np.hasHad,"past-perfect-progressive":Md,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",tp),e),"passive-past":e=>(e.replace("have","had",tp),e),"passive-present":e=>(e.replace("(is|are)","was",tp),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",tp),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Md,"auxiliary-future":e=>(e.replace("(is|are|am)","was",tp),e),"auxiliary-past":Md,"auxiliary-present":e=>(e.replace("(do|does)","did",tp),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",tp):(np.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Md,"want-infinitive":e=>(e.replace("(want|wants)","wanted",tp),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),np.simple(e,t),Rd(e),e)};var ap=function(e,t,n){return rp.hasOwnProperty(n)?((e=rp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const op={tags:!0},ip=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Kd(a)),!1===Jd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Ld(e)),o&&(e=e.replace(a,o,op)).not("#Particle").tag("PresentTense"),e},sp=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Kd(a)),!1===Jd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,op)).not("#Particle").tag("Gerund"),e},lp={infinitive:ip,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return ip(e,t);{let t=Wd(e).subject;if(Jd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,op)}return e},"simple-past":ip,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Ld(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else ip(e,t),e=e.remove("will");return e},"present-progressive":Md,"past-progressive":(e,t)=>{let n=Ld(e);return e.replace("(were|was)",n,op)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(ip(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Wd(e).subject;return Jd(e)||n.has("i")?((e=Ud(e,t)).remove("had"),e):(e.replace("had","has",op),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Md,"past-perfect-progressive":e=>e.replace("had","has",op),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Ld(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,op),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Md,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Md,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(sp(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=qd(e);return e.replace(t.auxiliary,n),e}return sp(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Md,"modal-infinitive":Md,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Kd(r)),a&&(e=e.replace(t.root,a,op))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ip(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Jd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,op),e.remove("will"),e}};var up=function(e,t,n){return lp.hasOwnProperty(n)?((e=lp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const cp={tags:!0},hp=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Kd(r)),o&&(e=e.replace(r,o,cp)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},dp=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Kd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,cp),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},pp={infinitive:hp,"simple-present":hp,"simple-past":hp,"simple-future":Md,"present-progressive":dp,"past-progressive":dp,"future-progressive":Md,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Md,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Md,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Md,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Md,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Md,"modal-past":Md,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),hp(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var mp=function(e,t,n){return e.has("will")||e.has("going to")?e:pp.hasOwnProperty(n)?((e=pp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const gp={tags:!0};var fp=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Kd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Ld(e)} ${s}`,e.replace(a,s,gp)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const vp={tags:!0},bp=function(e,t){let n=qd(e);return e.prepend(n+" not"),e},yp=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},wp=e=>e.has("(is|was|am|are|will|were|be)"),Pp={"simple-present":(e,t)=>!0===wp(e)?yp(e):(e=Ud(e,t),e=bp(e)),"simple-past":(e,t)=>!0===wp(e)?yp(e):((e=Ud(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===wp(e)?yp(e):bp(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",vp),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=bp(e)).replace("wants","want",vp)};var kp=function(e,t,n){if(e.has("#Negative"))return e;if(Pp.hasOwnProperty(n))return e=Pp[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===wp(e)?yp(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Ap=(e,t)=>"number"==typeof t?e.eq(t):e;var jp=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Ap(this,e).map(Nd)}json(e,t){let n=Ap(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Yd(t),n}),[]);return n}subjects(e){return Ap(this,e).map((e=>(Nd(e),Wd(e).subject)))}adverbs(e){return Ap(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return Ap(this,e).filter((e=>!0!==Wd(e).plural))}isPlural(e){return Ap(this,e).filter((e=>!0===Wd(e).plural))}isImperative(e){return Ap(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return ep(e,t,n.form)}))}toPresentTense(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return up(e,t,n.form)}))}toPastTense(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return ap(e,t,n.form)}))}toFutureTense(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return mp(e,t,n.form)}))}toGerund(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return fp(e,t,n.form)}))}conjugate(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:ep(e.clone(),t,n.form).text("normal"),PastTense:ap(e.clone(),t,n.form).text("normal"),PresentTense:up(e.clone(),t,n.form).text("normal"),FutureTense:mp(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return kp(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=wd(this);return t=Ap(t,e),new Verbs(this.document,t.pointer)}},xp={api:jp};return v.plugin(vc),v.plugin(Sc),v.plugin(Kc),v.plugin(lh),v.plugin(qh),v.plugin(_h),v.plugin(od),v.plugin(yd),v.plugin(xp),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/three/compromise-three.mjs b/builds/three/compromise-three.mjs index 730392019..a6385ce55 100644 --- a/builds/three/compromise-three.mjs +++ b/builds/three/compromise-three.mjs @@ -1 +1 @@ -var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var v=f;var b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},N=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},x=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?N(n):(N(n),N([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!k(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||k(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var G=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},D=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=G(e),e)))}(d),n?(T(t.update([u]).firstTerm()),x(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},z.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var $=z;var F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=F(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const W={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};W.deHyphenate=W.dehyphenate,W.toQuotation=W.toQuotations;var M=W;var J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var _={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}};var Q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,H,M,U,_,Q);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null};var le=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const me=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,pe=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(me);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(pe),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ke=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ne={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=je(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ne.hasOwnProperty(l)&&(c=Ne[l](r,s)),c?(c=xe(c,e),ne(n,[i,s],c),ke(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=fe(r,s),c&&(c=xe(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ke(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=xe(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]};var Ge=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}};var ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Oe,lib:Be,hooks:["lexicon"]};var $e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const We=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=We(e.goNext,void 0),e.failTo=We(e.failTo,0),e.endAs=We(e.endAs,null),e};const Je={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};Je.compile=Je.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Je};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Qe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Qe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e)){return e.fullPointer.length>0}if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Qe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,mt=/&&/,pt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=pt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){mt.test(e)?(n.choices=e.split(mt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var kt=Pt;const At=/[a-z0-9][-–—][a-z]/i;var Nt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},xt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var It=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(xt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(jt(e,t)),n=n.concat(xt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var Gt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>kt(e,t))),r=Nt(r,n),r=It(r,n),r=Gt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Vt.test(e.pre)||Bt.test(e.post),hasComma:e=>Ft(e,","),hasPeriod:e=>!0===Ft(e,".")&&!1===Ft(e,"..."),hasExclamation:e=>Ft(e,"!"),hasQuestionMark:e=>Ft(e,"?")||Ft(e,"¿"),hasEllipses:e=>Ft(e,"..")||Ft(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>Ft(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Wt=Ht;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Wt[t.method]&&!0===Wt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Jt=Mt;const Lt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){qt(e,e.t).length=r-e.t}return e.t=r,!0};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Jt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Jt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){qt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Qt=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Jt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Jt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Jt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?Qt(e,r,t[e.r+1]):(e.t+=1,!0)};var Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Jt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Jt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Xt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Lt(e,a))if(e.negative){if(!Zt(a))return null}else if(!0!==Jt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!tn(a))return null}else{if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else{if(!_t(a))return null}else{if(!Rt(a))return null}else{if(!Kt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}};var rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i};var ln={api:ot,methods:{one:{termMethods:Wt,parseMatch:Tt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(pn,""),fn.test(a)&&(a=" "),a=a.replace(gn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(pn,""),a="-"===a?" ":a.replace(mn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let Pn=[],kn=0;for(;kn<64;)Pn[kn]=0|4294967296*Math.sin(++kn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(kn=i=0;kn>4]+Pn[i]+~~o[kn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const Nn={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const xn=function(e,t){return Object.assign({},e,t)},En={text:e=>bn(e,{keepPunct:!0},!1),normal:e=>bn(e,xn(wn.normal,{keepPunct:!0}),!1),implicit:e=>bn(e,xn(wn.implicit,{keepPunct:!0}),!1),machine:e=>bn(e,jn,!1),root:e=>bn(e,xn(jn,{form:"root"}),!1),hash:e=>An(bn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const In={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Nn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};In.data=In.json;var Gn=In;var Tn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var Dn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var Cn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Dn.blue("\n ──────")),t.forEach((e=>{console.log(Dn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Dn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Dn.blue(" │ ")+Dn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Dn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))};var On=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Dn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Dn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Dn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Dn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var Vn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Dn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))};var Bn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Tn(t),t):(!1!==e.tags&&(Cn(t),console.log("\n")),!0===e.chunks&&(On(t),console.log("\n")),!0===e.highlight&&(Vn(t),console.log("\n")),t)};const zn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var $n=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Sn=Fn;var Hn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},qn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Kn=function(e,t){let n=qn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r};var Un=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var Rn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Ln(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var Zn=function(e,t){let n=qn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Ln(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Xn=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},er={union:function(e){e=Yn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=Xn(t,this.document),this.toView(t)}};er.and=er.union,er.intersection=function(e){e=Yn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=Xn(t,this.document),this.toView(t)},er.not=function(e){e=Yn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=Xn(t,this.document),this.toView(t)},er.difference=er.not,er.complement=function(){let e=this.all(),t=Qn(e.fullPointer,this.fullPointer);return t=Xn(t,this.document),this.toView(t)},er.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=_n(e,[t])})),e=Xn(e,this.document),this.update(e)};var tr=function(e){Object.assign(e.prototype,er)},nr={methods:Rn,api:tr};var rr=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const ar=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var or=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(ar(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(ar(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=ar(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var ir=function(e,t){e=or(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}};var sr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))};var lr=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var ur=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o};var cr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=sr(a,t.hooks);return o=lr(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),ur(o,e,a,n,r)};var hr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===hr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:rr,methods:{one:{buildNet:ir,bulkMatch:cr,bulkTagger:dr}}};const pr=/ /,gr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},fr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),pr.test(t))!function(e,t,n,r){let a=t.split(pr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),fr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nvr(e,t,n,r)))};var br=vr;var yr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>wr({id:e}))),t}return[wr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},Nr=e=>"[object Array]"===Object.prototype.toString.call(e),jr=e=>(e=e||"").trim(),xr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Pr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:kr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=wr({});return e.forEach((e=>{if((e=wr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ar(t=e).forEach(wr),t);var t},Er=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Ar(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Ir=function(e){let t=Ar(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Gr={text:Er,txt:Er,array:Ir,flat:Ir},Tr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Er(e,!0)),null):Gr.hasOwnProperty(t)?Gr[t](e):e},Dr=e=>{Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Cr=/\//;let Or=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=jr(e),!Cr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Or(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||wr({});return new Or(t)}add(e,t={}){if(Nr(e))return e.forEach((e=>this.add(jr(e),t))),this;e=jr(e);let n=wr({id:e,props:t});return this.json.children.push(n),new Or(n)}remove(e){return e=jr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ar(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ar(this.json)}fillDown(){var e;return e=this.json,Ar(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Nr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Dr(this.json);let e=Ar(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Dr(this.json),Tr(this.json,e)}debug(){return Dr(this.json),Tr(this.json,"debug"),this}};const Vr=function(e){let t=xr(e);return new Or(t)};Vr.prototype.plugin=function(e){e(this)};var Br={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const zr=function(e){if(Br.hasOwnProperty(e.id))return Br[e.id];if(Br.hasOwnProperty(e.is))return Br[e.is];let t=e._cache.parents.find((e=>Br[e]));return Br[t]};var $r=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:zr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Fr=function(e){return e?"string"==typeof e?[e]:e:[]};var Sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Fr(e[t].children),e[t].not=Fr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var Hr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Sr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Vr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return $r(n)},Wr={one:{setTag:br,unTag:yr,addTags:Hr}};const Mr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Jr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Mr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Mr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Lr=Jr;var qr=function(e){Object.assign(e.prototype,Lr)};var Kr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Ur=new Set(["Auxiliary","Possessive"]);var Rr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Ur.has(e)||!t.hasOwnProperty(n))return 1;if(Ur.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},_r={model:{one:{tagSet:{}}},compute:{tagRank:Rr},methods:Wr,api:qr,lib:Kr};const Qr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Zr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Yr=/((?:\r?\n|\r)+)/;var Xr=function(e){let t=[],n=e.split(Yr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const aa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},oa=RegExp("("+Object.keys(aa).join("|")+")","g"),ia=RegExp("("+Object.values(aa).join("|")+")","g"),sa=function(e){if(!e)return!1;let t=e.match(ia);return null!==t&&1===t.length};var la=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Na=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(ka);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=ya(n),n=va(n),n=n.filter((e=>e)),n};let ja=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),xa=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ea=/[\p{Punctuation}\s]+$/u,Ia=/^[\p{Punctuation}\s]+/u,Ga=/['’]/,Ta=/^[a-z]\.([a-z]\.)+/i,Da=/^'[0-9]{2}/;var Ca=function(e){let t=e,n="",r="";return e=e.replace(Ia,(t=>{let r=t.match(ja);return r?(n=t.replace(ja,""),r):"'"===n&&Da.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ea,(a=>{let o=a.match(xa);return o?(r=a.replace(xa,""),o):Ga.test(a)&&/[sn]['’]$/.test(t)&&!1===Ga.test(n)?(r=r.replace(Ga,""),"'"):!0===Ta.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}};var Oa=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")};var Va=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Ba=/([A-Z]\.)+[A-Z]?,?$/,za=/^[A-Z]\.,?$/,$a=/[A-Z]{2,}('s|,)?$/,Fa=/([a-z]\.)+[a-z]\.?$/;var Sa=function(e){return function(e){return!0===Ba.test(e)||!0===Fa.test(e)||!0===za.test(e)||!0===$a.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ha=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Va(r),r=n(r,t),r=Sa(r),e.normal=r};var Wa=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Ha(e,t)})),n})),e};const Ma=/[ .][A-Z]\.? *$/i,Ja=/(?:\u2026|\.{2,}) *$/,La=/\p{L}/u,qa=/^[A-Z]\. $/;var Ka=function(e,t){if(!1===La.test(e))return!1;if(!0===Ma.test(e))return!1;if(3===e.length&&qa.test(e))return!1;if(!0===Ja.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ua={one:{killUnicode:Oa,tokenize:{splitSentences:pa,isSentence:Ka,splitTerms:Na,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ca(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Wa}}};var Ra={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let _a={},Qa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{_a[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])}))}));var Za=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Ya={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Xa={};Object.keys(Ya).forEach((function(e){Ya[e].split("").forEach((function(t){Xa[t]=e}))}));const eo=/\//,to=/[a-z]\.[a-z]/i,no=/[0-9]/;var ro=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),eo.test(n)&&!to.test(n)&&!no.test(n)){let t=n.split(eo);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ao=/^\p{Letter}+-\p{Letter}+$/u;var oo=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ao.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var io=function(e){let t=e.docs,n={};for(let e=0;eco(e,ro),machine:e=>co(e,oo),normal:e=>co(e,Ha),freq:io,offset:so,index:lo,wordCount:uo},methods:Ua,model:{one:{aliases:Ra,abbreviations:_a,prefixes:Za,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Qa,unicode:Xa}},hooks:["alias","machine","index","id"]};var mo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const po=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var go=function(e){e.prototype.autoFill=po};var fo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const vo={safe:!0,min:3};var bo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},vo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=fo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}};var yo={model:{one:{typeahead:{}}},api:go,lib:bo,compute:mo,hooks:["typeahead"]};v.extend(ee),v.extend(Jn),v.extend(ln),v.extend(nr),v.extend(_r),v.plugin(Ie),v.extend(ho),v.plugin(P),v.extend(Le),v.extend(yo),v.extend(ze),v.extend(mr);var wo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Po={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const ko="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Ao=ko.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==Ao[e])return Ao[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var jo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Eo(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Io(Po[e]);Co.test(e)?Object.keys(t).forEach((t=>{if(Vo[t]=e,"Noun|Verb"===e){let e=Do(t,Bo);Vo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Oo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Oo[e]="Emoticon")),delete Oo[""],delete Oo.null,delete Oo[" "];const zo="Adjective";var $o={beforeTags:{Determiner:zo,Possessive:zo},afterTags:{Adjective:zo},beforeWords:{seem:zo,seemed:zo,seems:zo,feel:zo,feels:zo,felt:zo,appear:zo,appears:zo,appeared:zo,also:zo,over:zo,under:zo,too:zo,it:zo,but:zo,still:zo,really:zo,quite:zo,well:zo,very:zo,deeply:zo,profoundly:zo,extremely:zo,so:zo,badly:zo,mostly:zo,totally:zo,awfully:zo,rather:zo,nothing:zo,something:zo,anything:zo,not:zo,me:zo},afterWords:{too:zo,also:zo,or:zo}};const Fo="Gerund";var So={beforeTags:{Adverb:Fo,Preposition:Fo,Conjunction:Fo},afterTags:{Adverb:Fo,Possessive:Fo,Person:Fo,Pronoun:Fo,Determiner:Fo,Copula:Fo,Preposition:Fo,Conjunction:Fo,Comparative:Fo},beforeWords:{been:Fo,keep:Fo,continue:Fo,stop:Fo,am:Fo,be:Fo,me:Fo,began:Fo,start:Fo,starts:Fo,started:Fo,stops:Fo,stopped:Fo,help:Fo,helps:Fo,avoid:Fo,avoids:Fo,love:Fo,loves:Fo,loved:Fo,hate:Fo,hates:Fo,hated:Fo},afterWords:{you:Fo,me:Fo,her:Fo,him:Fo,them:Fo,their:Fo,it:Fo,this:Fo,there:Fo,on:Fo,about:Fo,for:Fo}};var Ho={beforeTags:Object.assign({},$o.beforeTags,So.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},$o.afterTags,So.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},$o.beforeWords,So.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},$o.afterWords,So.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Wo="Singular";var Mo={beforeTags:{Determiner:Wo,Possessive:Wo,Acronym:Wo,Noun:Wo,Adjective:Wo,PresentTense:Wo,Gerund:Wo,PastTense:Wo,Infinitive:Wo,Date:Wo},afterTags:{Value:Wo,Modal:Wo,Copula:Wo,PresentTense:Wo,PastTense:Wo,Demonym:Wo},beforeWords:{the:Wo,with:Wo,without:Wo,of:Wo,for:Wo,any:Wo,all:Wo,on:Wo,cut:Wo,cuts:Wo,save:Wo,saved:Wo,saves:Wo,make:Wo,makes:Wo,made:Wo,minus:Wo,plus:Wo,than:Wo,another:Wo,versus:Wo,neither:Wo,favorite:Wo,best:Wo,daily:Wo,weekly:Wo,linear:Wo,binary:Wo,mobile:Wo,lexical:Wo,technical:Wo,computer:Wo,scientific:Wo,formal:Wo},afterWords:{of:Wo,system:Wo,aid:Wo,method:Wo,utility:Wo,tool:Wo,reform:Wo,therapy:Wo,philosophy:Wo,room:Wo,authority:Wo,says:Wo,said:Wo,wants:Wo,wanted:Wo}};const Jo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Lo={beforeTags:Object.assign({},$o.beforeTags,Mo.beforeTags,Jo.beforeTags),afterTags:Object.assign({},$o.afterTags,Mo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Mo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Mo.afterWords)};const qo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ko={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Uo={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ro={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var _o={beforeTags:Object.assign({},$o.beforeTags,qo),afterTags:Object.assign({},$o.afterTags,Ko),beforeWords:Object.assign({},$o.beforeWords,Uo),afterWords:Object.assign({},$o.afterWords,Ro)};const Qo="Infinitive";var Zo={beforeTags:{Modal:Qo,Adverb:Qo,Negative:Qo,Plural:Qo},afterTags:{Determiner:Qo,Adverb:Qo,Possessive:Qo,Preposition:Qo},beforeWords:{i:Qo,we:Qo,you:Qo,they:Qo,to:Qo,please:Qo,will:Qo,have:Qo,had:Qo,would:Qo,could:Qo,should:Qo,do:Qo,did:Qo,does:Qo,can:Qo,must:Qo,us:Qo,me:Qo,he:Qo,she:Qo,it:Qo,being:Qo},afterWords:{the:Qo,me:Qo,you:Qo,him:Qo,her:Qo,them:Qo,it:Qo,a:Qo,an:Qo,up:Qo,down:Qo,by:Qo,out:Qo,off:Qo,under:Qo,when:Qo,all:Qo,to:Qo,because:Qo,although:Qo,before:Qo,how:Qo,otherwise:Qo,together:Qo,though:Qo,yet:Qo}};const Yo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xo={beforeTags:Object.assign({},$o.beforeTags,Zo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},$o.afterTags,Zo.afterTags,Yo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Zo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Zo.afterWords,{to:void 0})};const ei={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ti={},ni={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ri={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ai={beforeTags:Object.assign({},So.beforeTags,Mo.beforeTags,ei),afterTags:Object.assign({},So.afterTags,Mo.afterTags,ti),beforeWords:Object.assign({},So.beforeWords,Mo.beforeWords,ni),afterWords:Object.assign({},So.afterWords,Mo.afterWords,ri)};var oi={beforeTags:Object.assign({},Zo.beforeTags,Mo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Zo.afterTags,Mo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Zo.beforeWords,Mo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Zo.afterWords,Mo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ii="Person";var si={beforeTags:{Honorific:ii,Person:ii,Preposition:ii},afterTags:{Person:ii,ProperNoun:ii,Verb:ii},ownTags:{ProperNoun:ii},beforeWords:{hi:ii,hey:ii,yo:ii,dear:ii,hello:ii},afterWords:{said:ii,says:ii,told:ii,tells:ii,feels:ii,felt:ii,seems:ii,thinks:ii,thought:ii,spends:ii,spendt:ii,plays:ii,played:ii,sing:ii,sang:ii,learn:ii,learned:ii,wants:ii,wanted:ii}};const li="Month",ui={beforeTags:{Date:li,Value:li},afterTags:{Date:li,Value:li},beforeWords:{by:li,in:li,on:li,during:li,after:li,before:li,between:li,until:li,til:li,sometime:li,of:li,this:li,next:li,last:li,previous:li,following:li},afterWords:{sometime:li,in:li,of:li,until:li,the:li}};var ci={beforeTags:Object.assign({},si.beforeTags,ui.beforeTags),afterTags:Object.assign({},si.afterTags,ui.afterTags),beforeWords:Object.assign({},si.beforeWords,ui.beforeWords),afterWords:Object.assign({},si.afterWords,ui.afterWords)};const hi={Place:"Place"},di={Place:"Place",Abbreviation:"Place"},mi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},pi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let gi="Unit";const fi="Honorific";let vi={first:fi,general:fi,royal:fi,vice:fi,rear:fi,major:fi};const bi={"Adj|Gerund":Ho,"Adj|Noun":Lo,"Adj|Past":_o,"Adj|Present":Xo,"Noun|Verb":oi,"Noun|Gerund":ai,"Person|Noun":{beforeTags:Object.assign({},Mo.beforeTags,si.beforeTags),afterTags:Object.assign({},Mo.afterTags,si.afterTags),beforeWords:Object.assign({},Mo.beforeWords,si.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Mo.afterWords,si.afterWords)},"Person|Date":ci,"Person|Verb":{beforeTags:Object.assign({},si.beforeTags,Zo.beforeTags),afterTags:Object.assign({},si.afterTags,Zo.afterTags),beforeWords:Object.assign({},si.beforeWords,Zo.beforeWords),afterWords:Object.assign({},si.afterWords,Zo.afterWords)},"Person|Place":{beforeTags:Object.assign({},hi,si.beforeTags),afterTags:Object.assign({},di,si.afterTags),beforeWords:Object.assign({},mi,si.beforeWords),afterWords:Object.assign({},pi,si.afterWords)},"Unit|Noun":{beforeTags:{Value:gi},afterTags:{},beforeWords:{per:gi,every:gi,each:gi,square:gi,cubic:gi,sq:gi,metric:gi},afterWords:{per:gi,squared:gi,cubed:gi,long:gi}},"Honorific|Noun":{beforeTags:{Honorific:fi,ProperNoun:fi,Ordinal:fi},afterTags:{Person:fi,ProperNoun:fi},beforeWords:Object.assign({},vi,{honorable:fi,honourable:fi,worship:fi,excellency:fi,majesty:fi,right:fi}),afterWords:vi}},yi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};bi["Plural|Verb"]={beforeWords:yi(bi["Noun|Verb"].beforeWords,{}),afterWords:yi(bi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:yi(bi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:yi(bi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var wi=bi;const Pi="Adjective",ki="Infinitive",Ai="PresentTense",Ni="Singular",ji="PastTense",xi="Adverb",Ei="Plural",Ii="Verb",Gi="LastName",Ti="Participle";var Di=[null,null,{ea:Ni,ia:"Noun",ic:Pi,ly:xi,"'n":Ii,"'t":Ii},{oed:ji,ued:ji,xed:ji," so":xi,"'ll":"Modal","'re":"Copula",azy:Pi,eer:"Noun",end:Ii,ped:ji,ffy:Pi,ify:ki,ing:"Gerund",ize:ki,ibe:ki,lar:Pi,mum:Pi,nes:Ai,nny:Pi,ous:Pi,que:Pi,rol:Ni,sis:Ni,ogy:Ni,oid:Ni,ian:Ni,zes:Ai,eld:ji,ken:Ti,ven:Ti,ten:Ti,ect:ki,ict:ki,ign:ki,ful:Pi,bal:Pi},{amed:ji,aped:ji,ched:ji,lked:ji,rked:ji,reed:ji,nded:ji,mned:Pi,cted:ji,dged:ji,ield:Ni,akis:Gi,cede:ki,chuk:Gi,czyk:Gi,ects:Ai,ends:Ii,enko:Gi,ette:Ni,wner:Ni,fies:Ai,fore:xi,gate:ki,gone:Pi,ices:Ei,ints:Ei,ruct:ki,ines:Ei,ions:Ei,less:Pi,llen:Pi,made:Pi,nsen:Gi,oses:Ai,ould:"Modal",some:Pi,sson:Gi,tion:Ni,tage:"Noun",ique:Ni,tive:Pi,tors:"Noun",vice:Ni,lier:Ni,fier:Ni,wned:ji,gent:Ni,tist:Ni,pist:Ni,rist:Ni,mist:Ni,yist:Ni,vist:Ni,lite:Ni,site:Ni,rite:Ni,mite:Ni,bite:Ni,mate:Ni,date:Ni,ndal:Ni,vent:Ni,uist:Ni,gist:Ni,note:Ni,cide:Ni,wide:Pi,vide:ki,ract:ki,duce:ki,pose:ki,eive:ki,lyze:ki,lyse:ki,iant:Pi,nary:Pi},{elist:Ni,holic:Ni,phite:Ni,tized:ji,urned:ji,eased:ji,ances:Ei,bound:Pi,ettes:Ei,fully:xi,ishes:Ai,ities:Ei,marek:Gi,nssen:Gi,ology:"Noun",osome:Ni,tment:Ni,ports:Ei,rough:Pi,tches:Ai,tieth:"Ordinal",tures:Ei,wards:xi,where:xi,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Ni,scent:Ni,onist:Ni,anist:Ni,alist:Ni,olist:Ni,icist:Ni,ounce:ki,iable:Pi,borne:Pi,gnant:Pi,inant:Pi,igent:Pi,atory:Pi,rient:Ni,dient:Ni},{auskas:Gi,parent:Ni,cedent:Ni,ionary:Ni,cklist:Ni,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Gi,borough:"Place",sdottir:Gi}];const Ci="Adjective";var Oi=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Ci,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Ci,tele:"Noun","pro-":Ci,"mis-":"Verb","dis-":"Verb","pre-":Ci},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Ci,radio:"Noun",tetra:"Noun","omni-":Ci,"post-":Ci},{pseudo:Ci,"extra-":Ci,"hyper-":Ci,"inter-":Ci,"intra-":Ci,"deca-":Ci},{electro:"Noun"}];const Vi="Adjective",Bi="Infinitive",zi="PresentTense",$i="Singular",Fi="PastTense",Si="Expression",Hi="LastName";var Wi={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Hi],[/.[^aeiou]ica$/,$i,"harmonica"],[/^([hyj]a+)+$/,Si,"haha"]],c:[[/.[^aeiou]ic$/,Vi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Fi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Fi,"rammed"],[/.[aeiou][sg]hed$/,Fi,"gushed"],[/.[aeiou]red$/,Fi,"hired"],[/.[aeiou]r?ried$/,Fi,"hurried"],[/[^aeiou]ard$/,$i,"steward"],[/[aeiou][^aeiou]id$/,Vi,""],[/.[vrl]id$/,Vi,"livid"],[/..led$/,Fi,"hurled"],[/.[iao]sed$/,Fi,""],[/[aeiou]n?[cs]ed$/,Fi,""],[/[aeiou][rl]?[mnf]ed$/,Fi,""],[/[aeiou][ns]?c?ked$/,Fi,"bunked"],[/[aeiou]gned$/,Fi],[/[aeiou][nl]?ged$/,Fi],[/.[tdbwxyz]ed$/,Fi],[/[^aeiou][aeiou][tvx]ed$/,Fi],[/.[cdflmnprstv]ied$/,Fi,"emptied"]],e:[[/.[lnr]ize$/,Bi,"antagonize"],[/.[^aeiou]ise$/,Bi,"antagonise"],[/.[aeiou]te$/,Bi,"bite"],[/.[^aeiou][ai]ble$/,Vi,"fixable"],[/.[^aeiou]eable$/,Vi,"maleable"],[/.[ts]ive$/,Vi,"festive"],[/[a-z]-like$/,Vi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Vi,"cornish"],[/.v[iy]ch$/,Hi,"..ovich"],[/^ug?h+$/,Si,"ughh"],[/^uh[ -]?oh$/,Si,"uhoh"],[/[a-z]-ish$/,Vi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Hi,"polish-male"]],k:[[/^(k){2}$/,Si,"kkkk"]],l:[[/.[gl]ial$/,Vi,"familial"],[/.[^aeiou]ful$/,Vi,"fitful"],[/.[nrtumcd]al$/,Vi,"natal"],[/.[^aeiou][ei]al$/,Vi,"familial"]],m:[[/.[^aeiou]ium$/,$i,"magnesium"],[/[^aeiou]ism$/,$i,"schism"],[/^[hu]m+$/,Si,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Vi,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Si,"noooo"],[/^(yo)+$/,Si,"yoo"],[/^wo{2,}[pt]?$/,Si,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,$i],[/[^i]fer$/,Bi],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Vi],[/[aeiou].*ist$/,Vi],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,zi],[/.[rln]ates$/,zi],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,$i],[/.[aeiou]sks$/,zi],[/.[aeiou]kes$/,zi],[/[aeiou][^aeiou]is$/,$i],[/[a-z]'s$/,"Noun"],[/^yes+$/,Si]],v:[[/.[^aeiou][ai][kln]ov$/,Hi]],y:[[/.[cts]hy$/,Vi],[/.[st]ty$/,Vi],[/.[tnl]ary$/,Vi],[/.[oe]ry$/,$i],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Vi],[/...lly$/,"Adverb"],[/.[gk]y$/,Vi],[/[bszmp]{2}y$/,Vi],[/.[ai]my$/,Vi],[/[ea]{2}zy$/,Vi],[/.[^aeiou]ity$/,$i]]};const Mi="Verb",Ji="Noun";var Li={leftTags:[["Adjective",Ji],["Possessive",Ji],["Determiner",Ji],["Adverb",Mi],["Pronoun",Mi],["Value",Ji],["Ordinal",Ji],["Modal",Mi],["Superlative",Ji],["Demonym",Ji],["Honorific","Person"]],leftWords:[["i",Mi],["first",Ji],["it",Mi],["there",Mi],["not",Mi],["because",Ji],["if",Ji],["but",Ji],["who",Mi],["this",Ji],["his",Ji],["when",Ji],["you",Mi],["very","Adjective"],["old",Ji],["never",Mi],["before",Ji],["a","Singular"],["the",Ji],["been",Mi]],rightTags:[["Copula",Ji],["PastTense",Ji],["Conjunction",Ji],["Modal",Ji]],rightWords:[["there",Mi],["me",Mi],["man","Adjective"],["only",Mi],["him",Mi],["it",Mi],["were",Ji],["took",Ji],["himself",Mi],["went",Ji],["who",Ji],["jr","Person"]]},qi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ki={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Ui={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Ri={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},_i={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Qi=/^.([0-9]+)/;var Zi=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Qi);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Qi,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},Xi=/^([0-9]+)/,es=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Xi);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Xi,"")]}(n[0],n[1])}))};var ts=function(e={}){return(e=Object.assign({},e)).rules=es(e.rules),e.rules=Yi(e.rules),e.rev&&(e.rev=es(e.rev),e.rev=Yi(e.rev)),e.exceptions=es(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e};var ns=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const rs=ts({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),as=ts(Ri),os=ts(Ki),is=ts(Ui),ss=ns(rs),ls=ns(as),us=ns(os),cs=ns(is),hs=ts(qi),ds=ts(_i);var ms={fromPast:rs,fromPresent:as,fromGerund:os,fromParticiple:is,toPast:ss,toPresent:ls,toGerund:us,toParticiple:cs,toComparative:hs,toSuperlative:ds,fromComparative:ns(hs),fromSuperlative:ns(ds)},ps=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),gs=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var fs=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(vs[t].forEach((n=>e[n]=t)),e)),{});var bs=vs;var ys=function(e){let t=e.substring(e.length-3);if(!0===bs.hasOwnProperty(t))return bs[t];let n=e.substring(e.length-2);return!0===bs.hasOwnProperty(n)?bs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ws={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ps=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=ys(e)),ws.hasOwnProperty(e))c=ws[e];else if("Participle"===n)c=Zi(l,i);else if("PastTense"===n)c=Zi(l,r);else if("PresentTense"===n)c=Zi(l,a);else{if("Gerund"!==n)return e;c=Zi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};const ks=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Zi(i,n),PresentTense:Zi(i,r),Gerund:Zi(i,a),FutureTense:"will "+e},u=Zi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var As=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const Ns=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],js={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var xs=function(e){if(js.hasOwnProperty(e))return js[e];let t=As(e,Ns);return t||e+"ly"};const Es=function(e,t){const n=t.two.models.toSuperlative;return Zi(e,n)},Is=function(e,t){const n=t.two.models.toComparative;return Zi(e,n)},Gs="ically",Ts=new Set(["analyt"+Gs,"chem"+Gs,"class"+Gs,"clin"+Gs,"crit"+Gs,"ecolog"+Gs,"electr"+Gs,"empir"+Gs,"frant"+Gs,"grammat"+Gs,"ident"+Gs,"ideolog"+Gs,"log"+Gs,"mag"+Gs,"mathemat"+Gs,"mechan"+Gs,"med"+Gs,"method"+Gs,"method"+Gs,"mus"+Gs,"phys"+Gs,"phys"+Gs,"polit"+Gs,"pract"+Gs,"rad"+Gs,"satir"+Gs,"statist"+Gs,"techn"+Gs,"technolog"+Gs,"theoret"+Gs,"typ"+Gs,"vert"+Gs,"whims"+Gs]),Ds=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Cs=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Os={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Vs=function(e){return e.endsWith("ly")?Ts.has(e)?e.replace(/ically/,"ical"):Cs.has(e)?null:Os.hasOwnProperty(e)?Os[e]:As(e,Ds)||e:null};const Bs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],zs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},$s=new Set(["terrible","annoying"]);var Fs={noun:{toPlural:Do,toSingular:fs,all:Do},verb:{toInfinitive:Ps,conjugate:ks,all:function(e,t){let n=ks(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},adjective:{toSuperlative:Es,toComparative:Is,toAdverb:xs,toNoun:function(e){if(zs.hasOwnProperty(e))return zs[e];if($s.has(e))return null;let t=As(e,Bs);return t||e+"ness"},fromAdverb:Vs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Zi(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Zi(e,n)},all:function(e,t){let n=[e];return n.push(Es(e,t)),n.push(Is(e,t)),n.push(xs(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}}},Ss={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Hs=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Ss.hasOwnProperty(i)&&Ss[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var Ws=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Ls.find((t=>e.endsWith(t)))},Ks={two:{quickSplit:Ws,expandLexicon:Hs,transform:Fs,looksPlural:qs}};var Us=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const Rs=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var _s=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Rs(n,"Infinitive","PastTense"),Object.assign(s,l),l=Rs(r,"Infinitive","Verb"),Object.assign(s,l),l=Rs(a,"Infinitive","Gerund"),Object.assign(s,l),l=Rs(o,"Adjective","Superlative"),Object.assign(s,l),l=Rs(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Qs={two:{models:ms}};const Zs={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},Ys=function(e,t){const n={model:t,methods:Ks};let{lex:r,_multi:a}=Ks.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Xs=function(e,t,n){let r=ks(e,Qs);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},el=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=Zs[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Xs(a,r,!1),"Adj|Present"===o&&(Xs(a,r,!0),function(e,t,n){let r=Es(e,n);t[r]=t[r]||"Superlative";let a=Is(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ps(a,Qs,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ps(a,Qs,"PastTense");r[e]||(n[e]="Infinitive")}})),t=Ys(n,t)};var tl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=Ys(e.one.lexicon,e)).one.lexicon,e),e=el(e.two.switches,e),e=_s(e),e=Us(e)};let nl={one:{_multiCache:{},lexicon:Oo},two:{irregularPlurals:wo,models:ms,suffixPatterns:Di,prefixPatterns:Oi,endsWith:Wi,neighbours:Li,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Vo,clues:wi,uncountable:{},orgWords:ps}};nl=tl(nl);var rl=nl;const al=/^(under|over|mis|re|un|dis|semi)-?/;var ol=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(al.test(a.normal)){let e=a.normal.replace(al,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var il=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const sl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ll=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(qs(e.normal)?il(e,"Plural","3-plural-guess"):il(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ys(e.normal);t&&il(e,t,"3-verb-tense-guess")}}(r)};const ul=/^\p{Lu}[\p{Ll}'’]/u,cl=/[0-9]/,hl=["Date","Month","WeekDay","Unit"],dl=/^[IVXLCDM]{2,}$/,ml=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,pl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var gl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===ul.test(o)&&!1===cl.test(o)?hl.find((e=>r.tags.has(e)))?null:(ll(e,t,n),r.tags.has("Noun")||r.tags.clear(),il(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&dl.test(o)&&ml.test(o)&&!pl[r.normal]?(il(r,"RomanNumeral","2-xvii"),!0):null};const fl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var vl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=fl(r.normal,n.two.suffixPatterns);if(null!==e)return il(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=fl(r.implicit,n.two.suffixPatterns),null!==e))return il(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const bl=/['‘’‛‵′`´]/,yl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return il(r,e,"2-prefix"),r.confidence=.5,!0}return null};const kl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Al=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!kl.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},Nl=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},jl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var xl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Al(a)||Al(o))return il(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Nl(a)||Nl(o))return il(n,"Year","2-tagYear-close");if(jl(e[t-2])||jl(e[t+2]))return il(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return il(n,"Year","2-tagYear-noun")}}}return null};const El=/^[A-Z]('s|,)?$/,Il=/^[A-Z-]+$/,Gl=/([A-Z]\.)+[A-Z]?,?$/,Tl=/[A-Z]{2,}('s|,)?$/,Dl=/([a-z]\.)+[a-z]\.?$/,Cl={I:!0,A:!0};var Ol=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Il.test(n)||n.length>5||Cl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Gl.test(n)&&!0!==Dl.test(n)&&!0!==El.test(n)&&!0!==Tl.test(n))}(r,n)?(r.tags.clear(),il(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Cl.hasOwnProperty(r.text)&&El.test(r.text)?(r.tags.clear(),il(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(il(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Il.test(r.text)&&r.text.length<=6?(il(r,"Acronym","3-titlecase-acronym"),!0):null};const Vl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Bl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var zl=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Vl(e[t-1],a),l=l||Vl(e[t+1],o),l=l||Bl(e[t-1],r),l=l||Bl(e[t+1],i),l)return il(s,l,"3-[neighbour]"),ll(e,t,n),e[t].confidence=.2,!0}return null};const $l=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Fl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&$l(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&$l(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Sl=function(e,t,n){0===e[t].tags.size&&(il(e[t],"Noun","3-[fallback]"),ll(e,t,n),e[t].confidence=.1)};const Hl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Wl=(e,t,n)=>0!==t||e[1]?null:n,Ml={"Adj|Gerund":(e,t)=>Hl(e,t),"Adj|Noun":(e,t)=>Hl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Hl(e,t),"Adj|Present":(e,t)=>Hl(e,t),"Noun|Gerund":(e,t)=>Hl(e,t),"Noun|Verb":(e,t)=>Hl(e,t)||Wl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Hl(e,t)||Wl(e,t,"PresentTense"),"Person|Noun":(e,t)=>Hl(e,t),"Person|Verb":(e,t)=>0!==t?Hl(e,t):null};var Jl=Ml;const Ll="undefined"!=typeof process&&process.env?process.env:self.env||{},ql=/^(under|over|mis|re|un|dis|semi)-?/,Kl=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Ll.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ul=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&Ll.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var Rl=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(ql.test(l)&&!o[l]&&(l=l.replace(ql,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Kl(e[t+1],n.afterWords);return o=o||Kl(e[t-1],n.beforeWords),o=o||Ul(e[t-1],n.beforeTags,a),o=o||Ul(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Jl[o]&&(u=Jl[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),ll(e,t,r)):Ll.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};var _l=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(il(o,"Verb","3-[prefix]"),il(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(il(o,"Adjective","3-[prefix]"),il(o,"Prefix","3-[prefix]")))};const Ql={tagSwitch:ol,checkSuffix:vl,checkRegex:wl,checkCase:gl,checkPrefix:Pl,checkHyphen:_l,checkYear:xl},Zl={checkAcronym:Ol,neighbours:zl,orgWords:Fl,nounFallback:Sl,switches:Rl},Yl=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var nu=function(e){const t=e.world,n=Object.keys(tu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=pu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=mu};var fu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const vu=/'/;var bu=function(e,t){let n=e[t].normal.split(vu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const yu=/'/;var wu=function(e,t){let n=e[t].normal.split(yu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var Pu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const ku={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Au={in:!0,by:!0,for:!0};var Nu=(e,t)=>{let n=e[t];if(ku.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===Au[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const ju=/'/,xu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Eu={d:(e,t)=>wu(e,t),t:(e,t)=>Pu(e,t),s:(e,t,n)=>Nu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):bu(e,t)},Iu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Gu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===ju.test(r[o].normal)&&([,i]=r[o].normal.split(ju));let s=null;Eu.hasOwnProperty(i)&&(s=Eu[i](r,o,t)),s&&(s=Iu(s,e),fu(n,[a,o],s),xu(n[a],e,o,s.length))}}))}},Tu={compute:Gu,api:gu,hooks:["contractionTwo"]};const Du="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const Cu=["i","we","they"];let Ou=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Du} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Du} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Du}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Cu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Cu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Cu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let Vu=null;var Bu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Vu=Vu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Vu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const zu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Bu,model:{two:{matches:Ou}},hooks:["postTagger"]};var $u=zu;var Fu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var Su=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Fu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Hu={lib:{lazy:Su}};var Wu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var Mu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Wu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Ju={api:function(e){e.prototype.swap=Mu}};v.plugin(cu),v.plugin(Tu),v.plugin($u),v.plugin(Hu),v.plugin(Ju);var Lu=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter((e=>e.wordCount()>5&&e.match("#Verb+").length>=2));if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n};var qu=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r};var Ku=function(e){e.prototype.chunks=qu,e.prototype.clauses=Lu};const Uu={this:"Noun",then:"Pivot"};var Ru=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))};var nc={chunks:function(e){const{document:t,world:n}=e;Ru(t),_u(t),Yu(e,t,n),ec(t),tc(t)}},rc={compute:nc,api:Ku,hooks:["chunks"]};const ac=/'s$/;var oc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(ac,""),e.normal=e.normal.replace(ac,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const ic=/\(/,sc=/\)/,lc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(ic,"");let t=e[e.length-1];t.post=t.post.replace(sc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const cc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},hc=RegExp("("+Object.keys(cc).join("|")+")"),dc=RegExp("("+Object.values(cc).join("|")+")"),mc=function(e,t){const n=e[t].pre.match(hc)[0]||"";if(!n||!cc[n])return null;const r=cc[n];for(;t{e[0].pre=e[0].pre.replace(hc,"");let t=e[e.length-1];t.post=t.post.replace(dc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const gc=/\./g;var fc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(gc,""),e.normal=e.normal.replace(gc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(gc,""),e.normal=e.normal.replace(gc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}};var vc=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const bc=(e,t)=>"number"==typeof t?e.eq(t):e,yc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var wc=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=yc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return bc(this,e).map((e=>{let o=yc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return bc(this,e).map((e=>{let n=yc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return bc(this,e).map((e=>{let n=yc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return bc(this,e).map((e=>{let n=yc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return bc(this,e).map((e=>{let n=yc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=bc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=bc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=bc(t,e),new Adjectives(t.document,t.pointer)}};const Pc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},kc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let Ac=[["emojis","emoji"],["atmentions","atMentions"]];var Nc=function(e){kc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Pc,Ac.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},jc={api:function(e){Nc(e),oc(e),uc(e),pc(e),wc(e),vc(e),fc(e)}};const xc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Ec={case:e=>{xc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;xc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{xc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{xc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Ic=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Gc="unicode|punctuation|whitespace|acronyms",Tc="|case|contractions|parentheses|quotations|emoji|honorifics",Dc={light:Ic(Gc),medium:Ic(Gc+Tc),heavy:Ic(Gc+Tc+"|possessives|adverbs|nouns|verbs")};var Cc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Dc[e]),Object.keys(e).forEach((t=>{Ec.hasOwnProperty(t)&&Ec[t](this,e[t])})),this}}};var Oc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Vc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Bc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")};var $c=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:zc(e,t),isSubordinate:Bc(e),root:t}};const Fc=e=>e.text(),Sc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Hc=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var Wc=function(e){let t=$c(e);return{root:Fc(t.root),number:Hc(t.number),determiner:Fc(t.determiner),adjectives:Sc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Mc={tags:!0};var Jc=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Mc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Mc),e};const Lc={tags:!0};var qc=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Lc).tag("Singular","toPlural"),e};const Kc=(e,t)=>"number"==typeof t?e.eq(t):e;var Uc=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Kc(this,e).map($c)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Wc(t)),n}),[])}isPlural(e){let t=this.filter((e=>$c(e).isPlural));return Kc(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=$c(e).adjectives;n.found&&(t=t.concat(n))})),Kc(t,e)}toPlural(e){return Kc(this,e).map((e=>Jc(e,$c(e))))}toSingular(e){return Kc(this,e).map((e=>{let t=$c(e);return qc(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Oc(this);return t=Kc(t,e),new Nouns(this.document,t.pointer)}},Rc={api:Uc};var _c=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n};var Qc=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Zc.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Zc.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Zc.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var Xc=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const th=/^([0-9,. ]+)\/([0-9,. ]+)$/,nh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},rh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var ah=function(e){if(!0===nh.hasOwnProperty(e))return nh[e];if("a"===e||"an"===e)return 1;const t=Qc(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=ih(n),r=ih(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:ih(n);let a=r.text("reduced");return oh.test(a)&&(a=a.replace(oh,""),r=r.replaceWith(a)),r=sh.hasOwnProperty(a)?sh[a]:ih(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:ih(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t};var uh=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const ch=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],hh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],dh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],mh=function(e){let t=[];if(e>100)return t;for(let n=0;n=ch[n][1]&&(e-=ch[n][1],t.push(ch[n][0]));return hh[e]&&t.push(hh[e]),t};var ph=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=uh(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return dh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(mh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=uh(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")};var gh=function(e){if(!e.numerator||!e.denominator)return"";return`${ph({num:e.numerator})} out of ${ph({num:e.denominator})}`};const fh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var vh=e=>{let t=ph(e).split(" "),n=t[t.length-1];return fh.hasOwnProperty(n)?t[t.length-1]=fh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var bh=function(e){if(!e.numerator||!e.denominator)return"";let t=ph({num:e.numerator}),n=vh({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const yh=(e,t)=>"number"==typeof t?e.eq(t):e;var wh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return yh(this,e).map(lh)}get(e){return yh(this,e).map(lh)}json(e){return yh(this,e).map((t=>{let n=t.toView().json(e)[0],r=lh(t);return n.fraction=r,n}),[])}toDecimal(e){return yh(this,e).forEach((e=>{let{decimal:t}=lh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return yh(this,e).forEach((e=>{let t=lh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return yh(this,e).forEach((e=>{let t=lh(e),n=bh(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return yh(this,e).forEach((e=>{let t=lh(e),n=gh(t);e.replaceWith(n)})),this}toPercentage(e){return yh(this,e).forEach((e=>{let{decimal:t}=lh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=_c(this);return t=yh(t,e),new Fractions(this.document,t.pointer)}};const Ph="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var kh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Ph+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Ph+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Ph+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Ph+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Ph})`),r=e.has("("+Ph+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Ph+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Ph+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var Ah=function(e){if("string"==typeof e)return{num:ah(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=lh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=ah(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}};var Nh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=uh(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const jh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},xh={"%":"percent","°":"degrees"};var Eh=function(e){let t={suffix:"",prefix:e.prefix};return jh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+jh[e.prefix],t.prefix=""),xh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+xh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var Ih=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Eh(e);return t+vh(e)+n}if("Ordinal"===t)return e.prefix+Nh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Eh(e);return t+ph(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Gh=(e,t)=>"number"==typeof t?e.eq(t):e;var Th=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Gh(this,e).map(Ah)}get(e){return Gh(this,e).map(Ah).map((e=>e.num))}json(e){return Gh(this,e).map((t=>{let n=t.toView().json(e)[0],r=Ah(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=Ah(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Ih(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=Ah(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Ih(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=Ah(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Ih(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=Ah(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Ih(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=Ah(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Ih(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>Ah(t).num===e))}greaterThan(e){return this.filter((t=>Ah(t).num>e))}lessThan(e){return this.filter((t=>Ah(t).num{let r=Ah(n).num;return r>e&&r{let n=Ah(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Ih(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=Ah(e).num);let t=this.map((t=>{let n=Ah(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Ih(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=kh(this);return t=Gh(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=kh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=Gh(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=kh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=Gh(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var Dh={api:function(e){wh(e),Th(e)}};const Ch={people:!0,emails:!0,phoneNumbers:!0,places:!0},Oh=function(e={}){return!1!==(e=Object.assign({},Ch,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},Vh={api:function(e){e.prototype.redact=Oh}};var Bh=Vh;var zh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))};var $h=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};var Fh=function(e){let t=e.clauses(),n=$h(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}};var Sh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e};var Hh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e};var Wh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!e.lookBehind("to$").found&&(!!e.has("#Copula #Gerund")||!e.has("#Gerund")&&(!!e.has("#Copula")||!(e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found)))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e};var Mh=function(e){return e.verbs().toInfinitive(),e};const Jh=(e,t)=>"number"==typeof t?e.eq(t):e;var Lh=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Fh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n}),[])}toPastTense(e){return Jh(this,e).map((e=>(Fh(e),Sh(e))))}toPresentTense(e){return Jh(this,e).map((e=>(Fh(e),Hh(e))))}toFutureTense(e){return Jh(this,e).map((e=>(Fh(e),e=Wh(e))))}toInfinitive(e){return Jh(this,e).map((e=>(Fh(e),Mh(e))))}toNegative(e){return Jh(this,e).map((e=>(Fh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return Jh(this,e).map((e=>(Fh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return Jh(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return Jh(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=Jh(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=zh(this);return Jh(t,e)}};Object.assign(e.prototype,t)},qh={api:Lh};var Kh=function(e){return e.match("#Honorific+? #Person+")};var Uh=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Rh="male",_h="female",Qh={mr:Rh,mrs:_h,miss:_h,madam:_h,king:Rh,queen:_h,duke:Rh,duchess:_h,baron:Rh,baroness:_h,count:Rh,countess:_h,prince:Rh,princess:_h,sire:Rh,dame:_h,lady:_h,ayatullah:Rh,congressman:Rh,congresswoman:_h,"first lady":_h,mx:null};var Zh=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return _h;if(n.has("#MaleName"))return Rh;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Qh.hasOwnProperty(e))return Qh[e];if(/^her /.test(e))return _h;if(/^his /.test(e))return Rh}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Rh;if(n&&!t)return _h}return null};const Yh=(e,t)=>"number"==typeof t?e.eq(t):e;var Xh=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Yh(this,e).map(Uh)}json(e){return Yh(this,e).map((t=>{let n=t.toView().json(e)[0],r=Uh(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Zh(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Kh(this);return t=Yh(t,e),new People(this.document,t.pointer)}};var ed=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||(!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found))),t=t.splitAfter(n),t};var td=function(e){e.prototype.places=function(t){let n=ed(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var nd=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const rd=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var ad=function(e){e.prototype.topics=rd};var od={api:function(e){Xh(e),td(e),nd(e),ad(e)}};var id=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t};var sd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t};var ld=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const ud=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},cd=function(e){return e.match("#Negative")},hd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var dd=function(e){let t=e.clone();t.contractions().expand();const n=sd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:ld(t,n),auxiliary:ud(t,n),negative:cd(t),phrasal:hd(n)}};const md={tense:"PresentTense"},pd={conditional:!0},gd={tense:"FutureTense"},fd={progressive:!0},vd={tense:"PastTense"},bd={complete:!0,progressive:!1},yd={passive:!0},wd=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Pd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[md]],["^wanted to #Infinitive$",[vd]],["^will want to #Infinitive$",[gd]]],"gerund-phrase":[["^#PastTense #Gerund$",[vd]],["^#PresentTense #Gerund$",[md]],["^#Infinitive #Gerund$",[md]],["^will #Infinitive #Gerund$",[gd]],["^have #PastTense #Gerund$",[vd]],["^will have #PastTense #Gerund$",[vd]]],"simple-present":[["^#PresentTense$",[md]],["^#Infinitive$",[md]]],"simple-past":[["^#PastTense$",[vd]]],"simple-future":[["^will #Adverb? #Infinitive",[gd]]],"present-progressive":[["^(is|are|am) #Gerund$",[md,fd]]],"past-progressive":[["^(was|were) #Gerund$",[vd,fd]]],"future-progressive":[["^will be #Gerund$",[gd,fd]]],"present-perfect":[["^(has|have) #PastTense$",[vd,bd]]],"past-perfect":[["^had #PastTense$",[vd,bd]],["^had #PastTense to #Infinitive",[vd,bd]]],"future-perfect":[["^will have #PastTense$",[gd,bd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[vd,fd]]],"past-perfect-progressive":[["^had been #Gerund$",[vd,fd]]],"future-perfect-progressive":[["^will have been #Gerund$",[gd,fd]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[vd,yd]],["^(was|were) being (#PastTense|#Participle)",[vd,yd]],["^(had|have) been (#PastTense|#Participle)",[vd,yd]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[md,yd]],["^(is|are|am) being (#PastTense|#Participle)",[md,yd]],["^has been (#PastTense|#Participle)",[md,yd]]],"passive-future":[["will have been (#PastTense|#Participle)",[gd,yd,pd]],["will be being? (#PastTense|#Participle)",[gd,yd,pd]]],"present-conditional":[["would be #PastTense",[md,pd]]],"past-conditional":[["would have been #PastTense",[vd,pd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[gd]]],"auxiliary-past":[["^did #Infinitive$",[vd,{plural:!1}]],["^used to #Infinitive$",[vd,bd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[md,bd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[vd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let kd=[];Object.keys(Pd).map((e=>{Pd[e].forEach((t=>{kd.push({name:e,match:t[0],data:wd(t[1])})}))}));var Ad=kd;var Nd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),jd(r)&&(n.remove(r),r=n.last()),jd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:xd(t,e)}};const Id=e=>e,Gd=(e,t)=>{let n=Ed(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Td=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Ed(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Dd=function(e,t){let n=Ed(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Cd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Od=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Cd(e)),r&&e.replace(t.root,r),e},Vd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Bd=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal))},zd=function(e){return e&&e.isView?e.text("normal"):""},$d=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Cd(e))};var Fd=function(e){let t=dd(e);e=e.clone().toView();const n=Nd(e,t);return{root:t.root.text(),preAdverbs:Bd(t.adverbs.pre),postAdverbs:Bd(t.adverbs.post),auxiliary:zd(t.auxiliary),negative:t.negative.found,prefix:zd(t.prefix),infinitive:$d(t.root),grammar:n}};const Sd={tags:!0};var Hd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Cd(r)),i&&e.replace(r,i,Sd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Dd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Wd={tags:!0},Md={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Cd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Ed(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Wd),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Md.simple(e,t),e=Md.noAux(e,t))},hasHad:e=>(e.replace("has","had",Wd),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Cd(a)),n(o,e.model).Participle}},Jd={infinitive:Md.simple,"simple-present":Md.simple,"simple-past":Id,"simple-future":Md.both,"present-progressive":e=>(e.replace("are","were",Wd),e.replace("(is|are|am)","was",Wd),e),"past-progressive":Id,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Md.hasHad,"past-perfect":Id,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Vd(e)),e.remove("have"),e),"present-perfect-progressive":Md.hasHad,"past-perfect-progressive":Id,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Wd),e),"passive-past":e=>(e.replace("have","had",Wd),e),"passive-present":e=>(e.replace("(is|are)","was",Wd),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Wd),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Id,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Wd),e),"auxiliary-past":Id,"auxiliary-present":e=>(e.replace("(do|does)","did",Wd),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Wd):(Md.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Id,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Wd),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Md.simple(e,t),Vd(e),e)};var Ld=function(e,t,n){return Jd.hasOwnProperty(n)?((e=Jd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const qd={tags:!0},Kd=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Cd(a)),!1===Gd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Td(e)),o&&(e=e.replace(a,o,qd)).not("#Particle").tag("PresentTense"),e},Ud=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Cd(a)),!1===Gd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,qd)).not("#Particle").tag("Gerund"),e},Rd={infinitive:Kd,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return Kd(e,t);{let t=Ed(e).subject;if(Gd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,qd)}return e},"simple-past":Kd,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Td(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Kd(e,t),e=e.remove("will");return e},"present-progressive":Id,"past-progressive":(e,t)=>{let n=Td(e);return e.replace("(were|was)",n,qd)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Kd(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Ed(e).subject;return Gd(e)||n.has("i")?((e=Od(e,t)).remove("had"),e):(e.replace("had","has",qd),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Id,"past-perfect-progressive":e=>e.replace("had","has",qd),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Td(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,qd),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Id,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Id,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Ud(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Dd(e);return e.replace(t.auxiliary,n),e}return Ud(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Id,"modal-infinitive":Id,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Cd(r)),a&&(e=e.replace(t.root,a,qd))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Kd(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Gd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,qd),e.remove("will"),e}};var _d=function(e,t,n){return Rd.hasOwnProperty(n)?((e=Rd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Qd={tags:!0},Zd=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Cd(r)),o&&(e=e.replace(r,o,Qd)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Yd=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Cd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Qd),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},Xd={infinitive:Zd,"simple-present":Zd,"simple-past":Zd,"simple-future":Id,"present-progressive":Yd,"past-progressive":Yd,"future-progressive":Id,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Id,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Id,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Id,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Id,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Id,"modal-past":Id,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Zd(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var em=function(e,t,n){return e.has("will")||e.has("going to")?e:Xd.hasOwnProperty(n)?((e=Xd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const tm={tags:!0};var nm=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Cd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Td(e)} ${s}`,e.replace(a,s,tm)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const rm={tags:!0},am=function(e,t){let n=Dd(e);return e.prepend(n+" not"),e},om=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},im=e=>e.has("(is|was|am|are|will|were|be)"),sm={"simple-present":(e,t)=>!0===im(e)?om(e):(e=Od(e,t),e=am(e)),"simple-past":(e,t)=>!0===im(e)?om(e):((e=Od(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===im(e)?om(e):am(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",rm),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=am(e)).replace("wants","want",rm)};var lm=function(e,t,n){if(e.has("#Negative"))return e;if(sm.hasOwnProperty(n))return e=sm[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===im(e)?om(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const um=(e,t)=>"number"==typeof t?e.eq(t):e;var cm=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return um(this,e).map(dd)}json(e,t){let n=um(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Fd(t),n}),[]);return n}subjects(e){return um(this,e).map((e=>(dd(e),Ed(e).subject)))}adverbs(e){return um(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return um(this,e).filter((e=>!0!==Ed(e).plural))}isPlural(e){return um(this,e).filter((e=>!0===Ed(e).plural))}isImperative(e){return um(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return um(this,e).map((e=>{let t=dd(e),n=Nd(e,t);return Hd(e,t,n.form)}))}toPresentTense(e){return um(this,e).map((e=>{let t=dd(e),n=Nd(e,t);return _d(e,t,n.form)}))}toPastTense(e){return um(this,e).map((e=>{let t=dd(e),n=Nd(e,t);return Ld(e,t,n.form)}))}toFutureTense(e){return um(this,e).map((e=>{let t=dd(e),n=Nd(e,t);return em(e,t,n.form)}))}toGerund(e){return um(this,e).map((e=>{let t=dd(e),n=Nd(e,t);return nm(e,t,n.form)}))}conjugate(e){return um(this,e).map((e=>{let t=dd(e),n=Nd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Hd(e.clone(),t,n.form).text("normal"),PastTense:Ld(e.clone(),t,n.form).text("normal"),PresentTense:_d(e.clone(),t,n.form).text("normal"),FutureTense:em(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return um(this,e).map((e=>{let t=dd(e),n=Nd(e,t);return lm(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=id(this);return t=um(t,e),new Verbs(this.document,t.pointer)}},hm={api:cm};v.plugin(rc),v.plugin(jc),v.plugin(Cc),v.plugin(Rc),v.plugin(Dh),v.plugin(Bh),v.plugin(qh),v.plugin(od),v.plugin(hm);export{v as default}; +var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var v=f;var b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},N=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},x=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?N(n):(N(n),N([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!k(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||k(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var G=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},D=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=G(e),e)))}(d),n?(T(t.update([u]).firstTerm()),x(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},z.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var $=z;var F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=F(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const W={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};W.deHyphenate=W.dehyphenate,W.toQuotation=W.toQuotations;var M=W;var J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var _={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}};var Q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,H,M,U,_,Q);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null};var le=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const me=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,pe=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(me);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(pe),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ke=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ne={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=je(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ne.hasOwnProperty(l)&&(c=Ne[l](r,s)),c?(c=xe(c,e),ne(n,[i,s],c),ke(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=fe(r,s),c&&(c=xe(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ke(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=xe(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]};var Ge=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}};var ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Oe,lib:Be,hooks:["lexicon"]};var $e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const We=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=We(e.goNext,void 0),e.failTo=We(e.failTo,0),e.endAs=We(e.endAs,null),e};const Je={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};Je.compile=Je.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Je};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Qe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Qe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e)){return e.fullPointer.length>0}if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Qe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,mt=/&&/,pt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=pt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){mt.test(e)?(n.choices=e.split(mt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var kt=Pt;const At=/[a-z0-9][-–—][a-z]/i;var Nt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},xt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var It=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(xt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(jt(e,t)),n=n.concat(xt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var Gt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>kt(e,t))),r=Nt(r,n),r=It(r,n),r=Gt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Vt.test(e.pre)||Bt.test(e.post),hasComma:e=>Ft(e,","),hasPeriod:e=>!0===Ft(e,".")&&!1===Ft(e,"..."),hasExclamation:e=>Ft(e,"!"),hasQuestionMark:e=>Ft(e,"?")||Ft(e,"¿"),hasEllipses:e=>Ft(e,"..")||Ft(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>Ft(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Wt=Ht;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Wt[t.method]&&!0===Wt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Jt=Mt;const Lt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){qt(e,e.t).length=r-e.t}return e.t=r,!0};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Jt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Jt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){qt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Qt=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Jt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Jt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Jt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?Qt(e,r,t[e.r+1]):(e.t+=1,!0)};var Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Jt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Jt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Xt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Lt(e,a))if(e.negative){if(!Zt(a))return null}else if(!0!==Jt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!tn(a))return null}else{if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else{if(!_t(a))return null}else{if(!Rt(a))return null}else{if(!Kt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}};var rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i};var ln={api:ot,methods:{one:{termMethods:Wt,parseMatch:Tt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(pn,""),fn.test(a)&&(a=" "),a=a.replace(gn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(pn,""),a="-"===a?" ":a.replace(mn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let Pn=[],kn=0;for(;kn<64;)Pn[kn]=0|4294967296*Math.sin(++kn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(kn=i=0;kn>4]+Pn[i]+~~o[kn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const Nn={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const xn=function(e,t){return Object.assign({},e,t)},En={text:e=>bn(e,{keepPunct:!0},!1),normal:e=>bn(e,xn(wn.normal,{keepPunct:!0}),!1),implicit:e=>bn(e,xn(wn.implicit,{keepPunct:!0}),!1),machine:e=>bn(e,jn,!1),root:e=>bn(e,xn(jn,{form:"root"}),!1),hash:e=>An(bn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const In={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Nn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};In.data=In.json;var Gn=In;var Tn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var Dn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var Cn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Dn.blue("\n ──────")),t.forEach((e=>{console.log(Dn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Dn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Dn.blue(" │ ")+Dn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Dn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))};var On=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Dn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Dn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Dn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Dn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var Vn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Dn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))};var Bn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Tn(t),t):(!1!==e.tags&&(Cn(t),console.log("\n")),!0===e.chunks&&(On(t),console.log("\n")),!0===e.highlight&&(Vn(t),console.log("\n")),t)};const zn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var $n=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Sn=Fn;var Hn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},qn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Kn=function(e,t){let n=qn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r};var Un=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var Rn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Ln(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var Zn=function(e,t){let n=qn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Ln(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Xn=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},er={union:function(e){e=Yn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=Xn(t,this.document),this.toView(t)}};er.and=er.union,er.intersection=function(e){e=Yn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=Xn(t,this.document),this.toView(t)},er.not=function(e){e=Yn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=Xn(t,this.document),this.toView(t)},er.difference=er.not,er.complement=function(){let e=this.all(),t=Qn(e.fullPointer,this.fullPointer);return t=Xn(t,this.document),this.toView(t)},er.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=_n(e,[t])})),e=Xn(e,this.document),this.update(e)};var tr=function(e){Object.assign(e.prototype,er)},nr={methods:Rn,api:tr};var rr=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const ar=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var or=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(ar(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(ar(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=ar(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var ir=function(e,t){e=or(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}};var sr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))};var lr=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var ur=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o};var cr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=sr(a,t.hooks);return o=lr(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),ur(o,e,a,n,r)};var hr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===hr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:rr,methods:{one:{buildNet:ir,bulkMatch:cr,bulkTagger:dr}}};const pr=/ /,gr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},fr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),pr.test(t))!function(e,t,n,r){let a=t.split(pr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),fr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nvr(e,t,n,r)))};var br=vr;var yr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>wr({id:e}))),t}return[wr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},Nr=e=>"[object Array]"===Object.prototype.toString.call(e),jr=e=>(e=e||"").trim(),xr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Pr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:kr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=wr({});return e.forEach((e=>{if((e=wr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ar(t=e).forEach(wr),t);var t},Er=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Ar(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Ir=function(e){let t=Ar(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Gr={text:Er,txt:Er,array:Ir,flat:Ir},Tr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Er(e,!0)),null):Gr.hasOwnProperty(t)?Gr[t](e):e},Dr=e=>{Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Cr=/\//;let Or=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=jr(e),!Cr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Or(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||wr({});return new Or(t)}add(e,t={}){if(Nr(e))return e.forEach((e=>this.add(jr(e),t))),this;e=jr(e);let n=wr({id:e,props:t});return this.json.children.push(n),new Or(n)}remove(e){return e=jr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ar(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ar(this.json)}fillDown(){var e;return e=this.json,Ar(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Nr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Dr(this.json);let e=Ar(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Dr(this.json),Tr(this.json,e)}debug(){return Dr(this.json),Tr(this.json,"debug"),this}};const Vr=function(e){let t=xr(e);return new Or(t)};Vr.prototype.plugin=function(e){e(this)};var Br={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const zr=function(e){if(Br.hasOwnProperty(e.id))return Br[e.id];if(Br.hasOwnProperty(e.is))return Br[e.is];let t=e._cache.parents.find((e=>Br[e]));return Br[t]};var $r=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:zr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Fr=function(e){return e?"string"==typeof e?[e]:e:[]};var Sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Fr(e[t].children),e[t].not=Fr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var Hr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Sr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Vr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return $r(n)},Wr={one:{setTag:br,unTag:yr,addTags:Hr}};const Mr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Jr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Mr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Mr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Lr=Jr;var qr=function(e){Object.assign(e.prototype,Lr)};var Kr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Ur=new Set(["Auxiliary","Possessive"]);var Rr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Ur.has(e)||!t.hasOwnProperty(n))return 1;if(Ur.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},_r={model:{one:{tagSet:{}}},compute:{tagRank:Rr},methods:Wr,api:qr,lib:Kr};const Qr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Zr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Yr=/((?:\r?\n|\r)+)/;var Xr=function(e){let t=[],n=e.split(Yr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const aa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},oa=RegExp("("+Object.keys(aa).join("|")+")","g"),ia=RegExp("("+Object.values(aa).join("|")+")","g"),sa=function(e){if(!e)return!1;let t=e.match(ia);return null!==t&&1===t.length};var la=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Na=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(ka);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=ya(n),n=va(n),n=n.filter((e=>e)),n};let ja=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),xa=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ea=/[\p{Punctuation}\s]+$/u,Ia=/^[\p{Punctuation}\s]+/u,Ga=/['’]/,Ta=/^[a-z]\.([a-z]\.)+/i,Da=/^'[0-9]{2}/;var Ca=function(e){let t=e,n="",r="";return e=e.replace(Ia,(t=>{let r=t.match(ja);return r?(n=t.replace(ja,""),r):"'"===n&&Da.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ea,(a=>{let o=a.match(xa);return o?(r=a.replace(xa,""),o):Ga.test(a)&&/[sn]['’]$/.test(t)&&!1===Ga.test(n)?(r=r.replace(Ga,""),"'"):!0===Ta.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}};var Oa=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")};var Va=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Ba=/([A-Z]\.)+[A-Z]?,?$/,za=/^[A-Z]\.,?$/,$a=/[A-Z]{2,}('s|,)?$/,Fa=/([a-z]\.)+[a-z]\.?$/;var Sa=function(e){return function(e){return!0===Ba.test(e)||!0===Fa.test(e)||!0===za.test(e)||!0===$a.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ha=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Va(r),r=n(r,t),r=Sa(r),e.normal=r};var Wa=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Ha(e,t)})),n})),e};const Ma=/[ .][A-Z]\.? *$/i,Ja=/(?:\u2026|\.{2,}) *$/,La=/\p{L}/u,qa=/^[A-Z]\. $/;var Ka=function(e,t){if(!1===La.test(e))return!1;if(!0===Ma.test(e))return!1;if(3===e.length&&qa.test(e))return!1;if(!0===Ja.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ua={one:{killUnicode:Oa,tokenize:{splitSentences:pa,isSentence:Ka,splitTerms:Na,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ca(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Wa}}};var Ra={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let _a={},Qa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{_a[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])}))}));var Za=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Ya={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Xa={};Object.keys(Ya).forEach((function(e){Ya[e].split("").forEach((function(t){Xa[t]=e}))}));const eo=/\//,to=/[a-z]\.[a-z]/i,no=/[0-9]/;var ro=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),eo.test(n)&&!to.test(n)&&!no.test(n)){let t=n.split(eo);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ao=/^\p{Letter}+-\p{Letter}+$/u;var oo=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ao.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var io=function(e){let t=e.docs,n={};for(let e=0;eco(e,ro),machine:e=>co(e,oo),normal:e=>co(e,Ha),freq:io,offset:so,index:lo,wordCount:uo},methods:Ua,model:{one:{aliases:Ra,abbreviations:_a,prefixes:Za,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Qa,unicode:Xa}},hooks:["alias","machine","index","id"]};var mo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const po=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var go=function(e){e.prototype.autoFill=po};var fo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const vo={safe:!0,min:3};var bo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},vo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=fo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}};var yo={model:{one:{typeahead:{}}},api:go,lib:bo,compute:mo,hooks:["typeahead"]};v.extend(ee),v.extend(Jn),v.extend(ln),v.extend(nr),v.extend(_r),v.plugin(Ie),v.extend(ho),v.plugin(P),v.extend(Le),v.extend(yo),v.extend(ze),v.extend(mr);var wo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Po={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const ko="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Ao=ko.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==Ao[e])return Ao[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var jo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Eo(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Io(Po[e]);Co.test(e)?Object.keys(t).forEach((t=>{if(Vo[t]=e,"Noun|Verb"===e){let e=Do(t,Bo);Vo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Oo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Oo[e]="Emoticon")),delete Oo[""],delete Oo.null,delete Oo[" "];const zo="Adjective";var $o={beforeTags:{Determiner:zo,Possessive:zo},afterTags:{Adjective:zo},beforeWords:{seem:zo,seemed:zo,seems:zo,feel:zo,feels:zo,felt:zo,appear:zo,appears:zo,appeared:zo,also:zo,over:zo,under:zo,too:zo,it:zo,but:zo,still:zo,really:zo,quite:zo,well:zo,very:zo,deeply:zo,profoundly:zo,extremely:zo,so:zo,badly:zo,mostly:zo,totally:zo,awfully:zo,rather:zo,nothing:zo,something:zo,anything:zo,not:zo,me:zo},afterWords:{too:zo,also:zo,or:zo}};const Fo="Gerund";var So={beforeTags:{Adverb:Fo,Preposition:Fo,Conjunction:Fo},afterTags:{Adverb:Fo,Possessive:Fo,Person:Fo,Pronoun:Fo,Determiner:Fo,Copula:Fo,Preposition:Fo,Conjunction:Fo,Comparative:Fo},beforeWords:{been:Fo,keep:Fo,continue:Fo,stop:Fo,am:Fo,be:Fo,me:Fo,began:Fo,start:Fo,starts:Fo,started:Fo,stops:Fo,stopped:Fo,help:Fo,helps:Fo,avoid:Fo,avoids:Fo,love:Fo,loves:Fo,loved:Fo,hate:Fo,hates:Fo,hated:Fo},afterWords:{you:Fo,me:Fo,her:Fo,him:Fo,them:Fo,their:Fo,it:Fo,this:Fo,there:Fo,on:Fo,about:Fo,for:Fo}};var Ho={beforeTags:Object.assign({},$o.beforeTags,So.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},$o.afterTags,So.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},$o.beforeWords,So.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},$o.afterWords,So.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Wo="Singular";var Mo={beforeTags:{Determiner:Wo,Possessive:Wo,Acronym:Wo,Noun:Wo,Adjective:Wo,PresentTense:Wo,Gerund:Wo,PastTense:Wo,Infinitive:Wo,Date:Wo},afterTags:{Value:Wo,Modal:Wo,Copula:Wo,PresentTense:Wo,PastTense:Wo,Demonym:Wo},beforeWords:{the:Wo,with:Wo,without:Wo,of:Wo,for:Wo,any:Wo,all:Wo,on:Wo,cut:Wo,cuts:Wo,save:Wo,saved:Wo,saves:Wo,make:Wo,makes:Wo,made:Wo,minus:Wo,plus:Wo,than:Wo,another:Wo,versus:Wo,neither:Wo,favorite:Wo,best:Wo,daily:Wo,weekly:Wo,linear:Wo,binary:Wo,mobile:Wo,lexical:Wo,technical:Wo,computer:Wo,scientific:Wo,formal:Wo},afterWords:{of:Wo,system:Wo,aid:Wo,method:Wo,utility:Wo,tool:Wo,reform:Wo,therapy:Wo,philosophy:Wo,room:Wo,authority:Wo,says:Wo,said:Wo,wants:Wo,wanted:Wo}};const Jo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Lo={beforeTags:Object.assign({},$o.beforeTags,Mo.beforeTags,Jo.beforeTags),afterTags:Object.assign({},$o.afterTags,Mo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Mo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Mo.afterWords)};const qo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ko={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Uo={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ro={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var _o={beforeTags:Object.assign({},$o.beforeTags,qo),afterTags:Object.assign({},$o.afterTags,Ko),beforeWords:Object.assign({},$o.beforeWords,Uo),afterWords:Object.assign({},$o.afterWords,Ro)};const Qo="Infinitive";var Zo={beforeTags:{Modal:Qo,Adverb:Qo,Negative:Qo,Plural:Qo},afterTags:{Determiner:Qo,Adverb:Qo,Possessive:Qo,Preposition:Qo},beforeWords:{i:Qo,we:Qo,you:Qo,they:Qo,to:Qo,please:Qo,will:Qo,have:Qo,had:Qo,would:Qo,could:Qo,should:Qo,do:Qo,did:Qo,does:Qo,can:Qo,must:Qo,us:Qo,me:Qo,he:Qo,she:Qo,it:Qo,being:Qo},afterWords:{the:Qo,me:Qo,you:Qo,him:Qo,her:Qo,them:Qo,it:Qo,a:Qo,an:Qo,up:Qo,down:Qo,by:Qo,out:Qo,off:Qo,under:Qo,when:Qo,all:Qo,to:Qo,because:Qo,although:Qo,before:Qo,how:Qo,otherwise:Qo,together:Qo,though:Qo,yet:Qo}};const Yo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xo={beforeTags:Object.assign({},$o.beforeTags,Zo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},$o.afterTags,Zo.afterTags,Yo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Zo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Zo.afterWords,{to:void 0})};const ei={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ti={},ni={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ri={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ai={beforeTags:Object.assign({},So.beforeTags,Mo.beforeTags,ei),afterTags:Object.assign({},So.afterTags,Mo.afterTags,ti),beforeWords:Object.assign({},So.beforeWords,Mo.beforeWords,ni),afterWords:Object.assign({},So.afterWords,Mo.afterWords,ri)};var oi={beforeTags:Object.assign({},Zo.beforeTags,Mo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Zo.afterTags,Mo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Zo.beforeWords,Mo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Zo.afterWords,Mo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ii="Person";var si={beforeTags:{Honorific:ii,Person:ii,Preposition:ii},afterTags:{Person:ii,ProperNoun:ii,Verb:ii},ownTags:{ProperNoun:ii},beforeWords:{hi:ii,hey:ii,yo:ii,dear:ii,hello:ii},afterWords:{said:ii,says:ii,told:ii,tells:ii,feels:ii,felt:ii,seems:ii,thinks:ii,thought:ii,spends:ii,spendt:ii,plays:ii,played:ii,sing:ii,sang:ii,learn:ii,learned:ii,wants:ii,wanted:ii}};const li="Month",ui={beforeTags:{Date:li,Value:li},afterTags:{Date:li,Value:li},beforeWords:{by:li,in:li,on:li,during:li,after:li,before:li,between:li,until:li,til:li,sometime:li,of:li,this:li,next:li,last:li,previous:li,following:li},afterWords:{sometime:li,in:li,of:li,until:li,the:li}};var ci={beforeTags:Object.assign({},si.beforeTags,ui.beforeTags),afterTags:Object.assign({},si.afterTags,ui.afterTags),beforeWords:Object.assign({},si.beforeWords,ui.beforeWords),afterWords:Object.assign({},si.afterWords,ui.afterWords)};const hi={Place:"Place"},di={Place:"Place",Abbreviation:"Place"},mi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},pi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let gi="Unit";const fi="Honorific";let vi={first:fi,general:fi,royal:fi,vice:fi,rear:fi,major:fi};const bi={"Adj|Gerund":Ho,"Adj|Noun":Lo,"Adj|Past":_o,"Adj|Present":Xo,"Noun|Verb":oi,"Noun|Gerund":ai,"Person|Noun":{beforeTags:Object.assign({},Mo.beforeTags,si.beforeTags),afterTags:Object.assign({},Mo.afterTags,si.afterTags),beforeWords:Object.assign({},Mo.beforeWords,si.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Mo.afterWords,si.afterWords)},"Person|Date":ci,"Person|Verb":{beforeTags:Object.assign({},si.beforeTags,Zo.beforeTags),afterTags:Object.assign({},si.afterTags,Zo.afterTags),beforeWords:Object.assign({},si.beforeWords,Zo.beforeWords),afterWords:Object.assign({},si.afterWords,Zo.afterWords)},"Person|Place":{beforeTags:Object.assign({},hi,si.beforeTags),afterTags:Object.assign({},di,si.afterTags),beforeWords:Object.assign({},mi,si.beforeWords),afterWords:Object.assign({},pi,si.afterWords)},"Unit|Noun":{beforeTags:{Value:gi},afterTags:{},beforeWords:{per:gi,every:gi,each:gi,square:gi,cubic:gi,sq:gi,metric:gi},afterWords:{per:gi,squared:gi,cubed:gi,long:gi}},"Honorific|Noun":{beforeTags:{Honorific:fi,ProperNoun:fi,Ordinal:fi},afterTags:{Person:fi,ProperNoun:fi},beforeWords:Object.assign({},vi,{honorable:fi,honourable:fi,worship:fi,excellency:fi,majesty:fi,right:fi}),afterWords:vi}},yi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};bi["Plural|Verb"]={beforeWords:yi(bi["Noun|Verb"].beforeWords,{}),afterWords:yi(bi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:yi(bi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:yi(bi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var wi=bi;const Pi="Adjective",ki="Infinitive",Ai="PresentTense",Ni="Singular",ji="PastTense",xi="Adverb",Ei="Plural",Ii="Verb",Gi="LastName",Ti="Participle";var Di=[null,null,{ea:Ni,ia:"Noun",ic:Pi,ly:xi,"'n":Ii,"'t":Ii},{oed:ji,ued:ji,xed:ji," so":xi,"'ll":"Modal","'re":"Copula",azy:Pi,eer:"Noun",end:Ii,ped:ji,ffy:Pi,ify:ki,ing:"Gerund",ize:ki,ibe:ki,lar:Pi,mum:Pi,nes:Ai,nny:Pi,ous:Pi,que:Pi,rol:Ni,sis:Ni,ogy:Ni,oid:Ni,ian:Ni,zes:Ai,eld:ji,ken:Ti,ven:Ti,ten:Ti,ect:ki,ict:ki,ign:ki,ful:Pi,bal:Pi},{amed:ji,aped:ji,ched:ji,lked:ji,rked:ji,reed:ji,nded:ji,mned:Pi,cted:ji,dged:ji,ield:Ni,akis:Gi,cede:ki,chuk:Gi,czyk:Gi,ects:Ai,ends:Ii,enko:Gi,ette:Ni,wner:Ni,fies:Ai,fore:xi,gate:ki,gone:Pi,ices:Ei,ints:Ei,ruct:ki,ines:Ei,ions:Ei,less:Pi,llen:Pi,made:Pi,nsen:Gi,oses:Ai,ould:"Modal",some:Pi,sson:Gi,tion:Ni,tage:"Noun",ique:Ni,tive:Pi,tors:"Noun",vice:Ni,lier:Ni,fier:Ni,wned:ji,gent:Ni,tist:Ni,pist:Ni,rist:Ni,mist:Ni,yist:Ni,vist:Ni,lite:Ni,site:Ni,rite:Ni,mite:Ni,bite:Ni,mate:Ni,date:Ni,ndal:Ni,vent:Ni,uist:Ni,gist:Ni,note:Ni,cide:Ni,wide:Pi,vide:ki,ract:ki,duce:ki,pose:ki,eive:ki,lyze:ki,lyse:ki,iant:Pi,nary:Pi},{elist:Ni,holic:Ni,phite:Ni,tized:ji,urned:ji,eased:ji,ances:Ei,bound:Pi,ettes:Ei,fully:xi,ishes:Ai,ities:Ei,marek:Gi,nssen:Gi,ology:"Noun",osome:Ni,tment:Ni,ports:Ei,rough:Pi,tches:Ai,tieth:"Ordinal",tures:Ei,wards:xi,where:xi,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Ni,scent:Ni,onist:Ni,anist:Ni,alist:Ni,olist:Ni,icist:Ni,ounce:ki,iable:Pi,borne:Pi,gnant:Pi,inant:Pi,igent:Pi,atory:Pi,rient:Ni,dient:Ni},{auskas:Gi,parent:Ni,cedent:Ni,ionary:Ni,cklist:Ni,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Gi,borough:"Place",sdottir:Gi}];const Ci="Adjective";var Oi=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Ci,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Ci,tele:"Noun","pro-":Ci,"mis-":"Verb","dis-":"Verb","pre-":Ci},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Ci,radio:"Noun",tetra:"Noun","omni-":Ci,"post-":Ci},{pseudo:Ci,"extra-":Ci,"hyper-":Ci,"inter-":Ci,"intra-":Ci,"deca-":Ci},{electro:"Noun"}];const Vi="Adjective",Bi="Infinitive",zi="PresentTense",$i="Singular",Fi="PastTense",Si="Expression",Hi="LastName";var Wi={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Hi],[/.[^aeiou]ica$/,$i,"harmonica"],[/^([hyj]a+)+$/,Si,"haha"]],c:[[/.[^aeiou]ic$/,Vi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Fi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Fi,"rammed"],[/.[aeiou][sg]hed$/,Fi,"gushed"],[/.[aeiou]red$/,Fi,"hired"],[/.[aeiou]r?ried$/,Fi,"hurried"],[/[^aeiou]ard$/,$i,"steward"],[/[aeiou][^aeiou]id$/,Vi,""],[/.[vrl]id$/,Vi,"livid"],[/..led$/,Fi,"hurled"],[/.[iao]sed$/,Fi,""],[/[aeiou]n?[cs]ed$/,Fi,""],[/[aeiou][rl]?[mnf]ed$/,Fi,""],[/[aeiou][ns]?c?ked$/,Fi,"bunked"],[/[aeiou]gned$/,Fi],[/[aeiou][nl]?ged$/,Fi],[/.[tdbwxyz]ed$/,Fi],[/[^aeiou][aeiou][tvx]ed$/,Fi],[/.[cdflmnprstv]ied$/,Fi,"emptied"]],e:[[/.[lnr]ize$/,Bi,"antagonize"],[/.[^aeiou]ise$/,Bi,"antagonise"],[/.[aeiou]te$/,Bi,"bite"],[/.[^aeiou][ai]ble$/,Vi,"fixable"],[/.[^aeiou]eable$/,Vi,"maleable"],[/.[ts]ive$/,Vi,"festive"],[/[a-z]-like$/,Vi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Vi,"cornish"],[/.v[iy]ch$/,Hi,"..ovich"],[/^ug?h+$/,Si,"ughh"],[/^uh[ -]?oh$/,Si,"uhoh"],[/[a-z]-ish$/,Vi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Hi,"polish-male"]],k:[[/^(k){2}$/,Si,"kkkk"]],l:[[/.[gl]ial$/,Vi,"familial"],[/.[^aeiou]ful$/,Vi,"fitful"],[/.[nrtumcd]al$/,Vi,"natal"],[/.[^aeiou][ei]al$/,Vi,"familial"]],m:[[/.[^aeiou]ium$/,$i,"magnesium"],[/[^aeiou]ism$/,$i,"schism"],[/^[hu]m+$/,Si,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Vi,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Si,"noooo"],[/^(yo)+$/,Si,"yoo"],[/^wo{2,}[pt]?$/,Si,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,$i],[/[^i]fer$/,Bi],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Vi],[/[aeiou].*ist$/,Vi],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,zi],[/.[rln]ates$/,zi],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,$i],[/.[aeiou]sks$/,zi],[/.[aeiou]kes$/,zi],[/[aeiou][^aeiou]is$/,$i],[/[a-z]'s$/,"Noun"],[/^yes+$/,Si]],v:[[/.[^aeiou][ai][kln]ov$/,Hi]],y:[[/.[cts]hy$/,Vi],[/.[st]ty$/,Vi],[/.[tnl]ary$/,Vi],[/.[oe]ry$/,$i],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Vi],[/...lly$/,"Adverb"],[/.[gk]y$/,Vi],[/[bszmp]{2}y$/,Vi],[/.[ai]my$/,Vi],[/[ea]{2}zy$/,Vi],[/.[^aeiou]ity$/,$i]]};const Mi="Verb",Ji="Noun";var Li={leftTags:[["Adjective",Ji],["Possessive",Ji],["Determiner",Ji],["Adverb",Mi],["Pronoun",Mi],["Value",Ji],["Ordinal",Ji],["Modal",Mi],["Superlative",Ji],["Demonym",Ji],["Honorific","Person"]],leftWords:[["i",Mi],["first",Ji],["it",Mi],["there",Mi],["not",Mi],["because",Ji],["if",Ji],["but",Ji],["who",Mi],["this",Ji],["his",Ji],["when",Ji],["you",Mi],["very","Adjective"],["old",Ji],["never",Mi],["before",Ji],["a","Singular"],["the",Ji],["been",Mi]],rightTags:[["Copula",Ji],["PastTense",Ji],["Conjunction",Ji],["Modal",Ji]],rightWords:[["there",Mi],["me",Mi],["man","Adjective"],["only",Mi],["him",Mi],["it",Mi],["were",Ji],["took",Ji],["himself",Mi],["went",Ji],["who",Ji],["jr","Person"]]},qi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ki={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Ui={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Ri={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},_i={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Qi=/^.([0-9]+)/;var Zi=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Qi);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Qi,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},Xi=/^([0-9]+)/,es=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Xi);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Xi,"")]}(n[0],n[1])}))};var ts=function(e={}){return(e=Object.assign({},e)).rules=es(e.rules),e.rules=Yi(e.rules),e.rev&&(e.rev=es(e.rev),e.rev=Yi(e.rev)),e.exceptions=es(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e};var ns=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const rs=ts({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),as=ts(Ri),os=ts(Ki),is=ts(Ui),ss=ns(rs),ls=ns(as),us=ns(os),cs=ns(is),hs=ts(qi),ds=ts(_i);var ms={fromPast:rs,fromPresent:as,fromGerund:os,fromParticiple:is,toPast:ss,toPresent:ls,toGerund:us,toParticiple:cs,toComparative:hs,toSuperlative:ds,fromComparative:ns(hs),fromSuperlative:ns(ds)},ps=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),gs=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var fs=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(bs[t].forEach((n=>e[n]=t)),e)),{});var ys=bs;var ws=function(e){let t=e.substring(e.length-3);if(!0===ys.hasOwnProperty(t))return ys[t];let n=e.substring(e.length-2);return!0===ys.hasOwnProperty(n)?ys[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ps={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var ks=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=ws(e)),Ps.hasOwnProperty(e))c=Ps[e];else if("Participle"===n)c=Zi(l,i);else if("PastTense"===n)c=Zi(l,r);else if("PresentTense"===n)c=Zi(l,a);else{if("Gerund"!==n)return e;c=Zi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var As=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Zi(i,n),PresentTense:Zi(i,r),Gerund:Zi(i,a),FutureTense:"will "+e},u=Zi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Ns={toInfinitive:ks,conjugate:As,all:function(e,t){let n=As(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};var js=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const xs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Es={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Is=function(e){if(Es.hasOwnProperty(e))return Es[e];let t=js(e,xs);return t||e+"ly"};const Gs=function(e,t){const n=t.two.models.toSuperlative;return Zi(e,n)},Ts=function(e,t){const n=t.two.models.toComparative;return Zi(e,n)},Ds="ically",Cs=new Set(["analyt"+Ds,"chem"+Ds,"class"+Ds,"clin"+Ds,"crit"+Ds,"ecolog"+Ds,"electr"+Ds,"empir"+Ds,"frant"+Ds,"grammat"+Ds,"ident"+Ds,"ideolog"+Ds,"log"+Ds,"mag"+Ds,"mathemat"+Ds,"mechan"+Ds,"med"+Ds,"method"+Ds,"method"+Ds,"mus"+Ds,"phys"+Ds,"phys"+Ds,"polit"+Ds,"pract"+Ds,"rad"+Ds,"satir"+Ds,"statist"+Ds,"techn"+Ds,"technolog"+Ds,"theoret"+Ds,"typ"+Ds,"vert"+Ds,"whims"+Ds]),Os=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Vs=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Bs={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var zs=function(e){return e.endsWith("ly")?Cs.has(e)?e.replace(/ically/,"ical"):Vs.has(e)?null:Bs.hasOwnProperty(e)?Bs[e]:js(e,Os)||e:null};const $s=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Fs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Ss=new Set(["terrible","annoying"]);var Hs={toSuperlative:Gs,toComparative:Ts,toAdverb:Is,toNoun:function(e){if(Fs.hasOwnProperty(e))return Fs[e];if(Ss.has(e))return null;let t=js(e,$s);return t||e+"ness"},fromAdverb:zs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Zi(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Zi(e,n)},all:function(e,t){let n=[e];return n.push(Gs(e,t)),n.push(Ts(e,t)),n.push(Is(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Ws={noun:vs,verb:Ns,adjective:Hs},Ms={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Js=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Ms.hasOwnProperty(i)&&Ms[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var Ls=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Us.find((t=>e.endsWith(t)))},_s={two:{quickSplit:Ls,expandLexicon:Js,transform:Ws,looksPlural:Rs}};var Qs=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const Zs=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var Ys=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Zs(n,"Infinitive","PastTense"),Object.assign(s,l),l=Zs(r,"Infinitive","Verb"),Object.assign(s,l),l=Zs(a,"Infinitive","Gerund"),Object.assign(s,l),l=Zs(o,"Adjective","Superlative"),Object.assign(s,l),l=Zs(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Xs={two:{models:ms}};const el={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},tl=function(e,t){const n={model:t,methods:_s};let{lex:r,_multi:a}=_s.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},nl=function(e,t,n){let r=As(e,Xs);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},rl=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=el[o],"Noun|Verb"!==o&&"Person|Verb"!==o||nl(a,r,!1),"Adj|Present"===o&&(nl(a,r,!0),function(e,t,n){let r=Gs(e,n);t[r]=t[r]||"Superlative";let a=Ts(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=ks(a,Xs,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=ks(a,Xs,"PastTense");r[e]||(n[e]="Infinitive")}})),t=tl(n,t)};var al=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=tl(e.one.lexicon,e)).one.lexicon,e),e=rl(e.two.switches,e),e=Ys(e),e=Qs(e)};let ol={one:{_multiCache:{},lexicon:Oo},two:{irregularPlurals:wo,models:ms,suffixPatterns:Di,prefixPatterns:Oi,endsWith:Wi,neighbours:Li,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Vo,clues:wi,uncountable:{},orgWords:ps}};ol=al(ol);var il=ol;const sl=/^(under|over|mis|re|un|dis|semi)-?/;var ll=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(sl.test(a.normal)){let e=a.normal.replace(sl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var ul=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const cl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var hl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(Rs(e.normal)?ul(e,"Plural","3-plural-guess"):ul(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ws(e.normal);t&&ul(e,t,"3-verb-tense-guess")}}(r)};const dl=/^\p{Lu}[\p{Ll}'’]/u,ml=/[0-9]/,pl=["Date","Month","WeekDay","Unit"],gl=/^[IVXLCDM]{2,}$/,fl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,vl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var bl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===dl.test(o)&&!1===ml.test(o)?pl.find((e=>r.tags.has(e)))?null:(hl(e,t,n),r.tags.has("Noun")||r.tags.clear(),ul(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&gl.test(o)&&fl.test(o)&&!vl[r.normal]?(ul(r,"RomanNumeral","2-xvii"),!0):null};const yl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var wl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=yl(r.normal,n.two.suffixPatterns);if(null!==e)return ul(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=yl(r.implicit,n.two.suffixPatterns),null!==e))return ul(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Pl=/['‘’‛‵′`´]/,kl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ul(r,e,"2-prefix"),r.confidence=.5,!0}return null};const jl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),xl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!jl.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},El=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},Il=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Gl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(xl(a)||xl(o))return ul(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(El(a)||El(o))return ul(n,"Year","2-tagYear-close");if(Il(e[t-2])||Il(e[t+2]))return ul(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ul(n,"Year","2-tagYear-noun")}}}return null};const Tl=/^[A-Z]('s|,)?$/,Dl=/^[A-Z-]+$/,Cl=/([A-Z]\.)+[A-Z]?,?$/,Ol=/[A-Z]{2,}('s|,)?$/,Vl=/([a-z]\.)+[a-z]\.?$/,Bl={I:!0,A:!0};var zl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Dl.test(n)||n.length>5||Bl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Cl.test(n)&&!0!==Vl.test(n)&&!0!==Tl.test(n)&&!0!==Ol.test(n))}(r,n)?(r.tags.clear(),ul(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Bl.hasOwnProperty(r.text)&&Tl.test(r.text)?(r.tags.clear(),ul(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ul(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Dl.test(r.text)&&r.text.length<=6?(ul(r,"Acronym","3-titlecase-acronym"),!0):null};const $l=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Fl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Sl=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||$l(e[t-1],a),l=l||$l(e[t+1],o),l=l||Fl(e[t-1],r),l=l||Fl(e[t+1],i),l)return ul(s,l,"3-[neighbour]"),hl(e,t,n),e[t].confidence=.2,!0}return null};const Hl=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Wl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Hl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Hl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Ml=function(e,t,n){0===e[t].tags.size&&(ul(e[t],"Noun","3-[fallback]"),hl(e,t,n),e[t].confidence=.1)};const Jl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ll=(e,t,n)=>0!==t||e[1]?null:n,ql={"Adj|Gerund":(e,t)=>Jl(e,t),"Adj|Noun":(e,t)=>Jl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Jl(e,t),"Adj|Present":(e,t)=>Jl(e,t),"Noun|Gerund":(e,t)=>Jl(e,t),"Noun|Verb":(e,t)=>Jl(e,t)||Ll(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Jl(e,t)||Ll(e,t,"PresentTense"),"Person|Noun":(e,t)=>Jl(e,t),"Person|Verb":(e,t)=>0!==t?Jl(e,t):null};var Kl=ql;const Ul="undefined"!=typeof process&&process.env?process.env:self.env||{},Rl=/^(under|over|mis|re|un|dis|semi)-?/,_l=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Ul.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ql=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&Ul.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var Zl=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Rl.test(l)&&!o[l]&&(l=l.replace(Rl,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=_l(e[t+1],n.afterWords);return o=o||_l(e[t-1],n.beforeWords),o=o||Ql(e[t-1],n.beforeTags,a),o=o||Ql(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Kl[o]&&(u=Kl[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),hl(e,t,r)):Ul.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};var Yl=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ul(o,"Verb","3-[prefix]"),ul(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ul(o,"Adjective","3-[prefix]"),ul(o,"Prefix","3-[prefix]")))};const Xl={tagSwitch:ll,checkSuffix:wl,checkRegex:Al,checkCase:bl,checkPrefix:Nl,checkHyphen:Yl,checkYear:Gl},eu={checkAcronym:zl,neighbours:Sl,orgWords:Wl,nounFallback:Ml,switches:Zl},tu=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var ou=function(e){const t=e.world,n=Object.keys(au);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=vu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=fu};var yu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const wu=/'/;var Pu=function(e,t){let n=e[t].normal.split(wu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const ku=/'/;var Au=function(e,t){let n=e[t].normal.split(ku)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var Nu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const ju={that:!0,there:!0,let:!0,here:!0,everywhere:!0},xu={in:!0,by:!0,for:!0};var Eu=(e,t)=>{let n=e[t];if(ju.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===xu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Iu=/'/,Gu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Tu={d:(e,t)=>Au(e,t),t:(e,t)=>Nu(e,t),s:(e,t,n)=>Eu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Pu(e,t)},Du=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Cu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Iu.test(r[o].normal)&&([,i]=r[o].normal.split(Iu));let s=null;Tu.hasOwnProperty(i)&&(s=Tu[i](r,o,t)),s&&(s=Du(s,e),yu(n,[a,o],s),Gu(n[a],e,o,s.length))}}))}},Ou={compute:Cu,api:bu,hooks:["contractionTwo"]};const Vu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const Bu=["i","we","they"];let zu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Vu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Vu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Vu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Bu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Bu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Bu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let $u=null;var Fu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;$u=$u||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep($u),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Su={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Fu,model:{two:{matches:zu}},hooks:["postTagger"]};var Hu=Su;var Wu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var Mu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Wu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Ju={lib:{lazy:Mu}};var Lu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var qu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Lu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Ku={api:function(e){e.prototype.swap=qu}};v.plugin(mu),v.plugin(Ou),v.plugin(Hu),v.plugin(Ju),v.plugin(Ku);var Uu=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter((e=>e.wordCount()>5&&e.match("#Verb+").length>=2));if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n};var Ru=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r};var _u=function(e){e.prototype.chunks=Ru,e.prototype.clauses=Uu};const Qu={this:"Noun",then:"Pivot"};var Zu=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))};var oc={chunks:function(e){const{document:t,world:n}=e;Zu(t),Yu(t),tc(e,t,n),rc(t),ac(t)}},ic={compute:oc,api:_u,hooks:["chunks"]};const sc=/'s$/;var lc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(sc,""),e.normal=e.normal.replace(sc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const uc=/\(/,cc=/\)/,hc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(uc,"");let t=e[e.length-1];t.post=t.post.replace(cc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const mc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},pc=RegExp("("+Object.keys(mc).join("|")+")"),gc=RegExp("("+Object.values(mc).join("|")+")"),fc=function(e,t){const n=e[t].pre.match(pc)[0]||"";if(!n||!mc[n])return null;const r=mc[n];for(;t{e[0].pre=e[0].pre.replace(pc,"");let t=e[e.length-1];t.post=t.post.replace(gc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const bc=/\./g;var yc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(bc,""),e.normal=e.normal.replace(bc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(bc,""),e.normal=e.normal.replace(bc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}};var wc=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Pc=(e,t)=>"number"==typeof t?e.eq(t):e,kc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Ac=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=kc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return Pc(this,e).map((e=>{let o=kc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return Pc(this,e).map((e=>{let n=kc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return Pc(this,e).map((e=>{let n=kc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return Pc(this,e).map((e=>{let n=kc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return Pc(this,e).map((e=>{let n=kc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Pc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Pc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Pc(t,e),new Adjectives(t.document,t.pointer)}};const Nc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},jc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let xc=[["emojis","emoji"],["atmentions","atMentions"]];var Ec=function(e){jc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Nc,xc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},Ic={api:function(e){Ec(e),lc(e),dc(e),vc(e),Ac(e),wc(e),yc(e)}};const Gc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Tc={case:e=>{Gc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Gc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{Gc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{Gc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Dc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Cc="unicode|punctuation|whitespace|acronyms",Oc="|case|contractions|parentheses|quotations|emoji|honorifics",Vc={light:Dc(Cc),medium:Dc(Cc+Oc),heavy:Dc(Cc+Oc+"|possessives|adverbs|nouns|verbs")};var Bc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Vc[e]),Object.keys(e).forEach((t=>{Tc.hasOwnProperty(t)&&Tc[t](this,e[t])})),this}}};var zc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const $c=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Fc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t<$c.length;t+=1)if(e.has($c[t]))return!0;return!1};var Sc=function(e,t){if(e.has("#Plural"))return!0;if(e.has("#Noun and #Noun"))return!0;if(e.has("(we|they)"))return!0;if(!0===t.has("(#Pronoun|#Place|#Value|#Person|#Uncountable|#Month|#WeekDay|#Holiday|#Possessive)"))return!1;if(e.has("#Singular"))return!1;let n=t.text("normal");return n.length>3&&n.endsWith("s")&&!n.endsWith("ss")};var Hc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Sc(e,t),isSubordinate:Fc(e),root:t}};const Wc=e=>e.text(),Mc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Jc=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var Lc=function(e){let t=Hc(e);return{root:Wc(t.root),number:Jc(t.number),determiner:Wc(t.determiner),adjectives:Mc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const qc={tags:!0};var Kc=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,qc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",qc),e};const Uc={tags:!0};var Rc=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Uc).tag("Singular","toPlural"),e};const _c=(e,t)=>"number"==typeof t?e.eq(t):e;var Qc=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return _c(this,e).map(Hc)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Lc(t)),n}),[])}isPlural(e){let t=this.filter((e=>Hc(e).isPlural));return _c(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Hc(e).adjectives;n.found&&(t=t.concat(n))})),_c(t,e)}toPlural(e){return _c(this,e).map((e=>Kc(e,Hc(e))))}toSingular(e){return _c(this,e).map((e=>{let t=Hc(e);return Rc(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=zc(this);return t=_c(t,e),new Nouns(this.document,t.pointer)}},Zc={api:Qc};var Yc=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n};var Xc=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(eh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(eh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(eh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var nh=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const ah=/^([0-9,. ]+)\/([0-9,. ]+)$/,oh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},ih=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var sh=function(e){if(!0===oh.hasOwnProperty(e))return oh[e];if("a"===e||"an"===e)return 1;const t=Xc(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=uh(n),r=uh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:uh(n);let a=r.text("reduced");return lh.test(a)&&(a=a.replace(lh,""),r=r.replaceWith(a)),r=ch.hasOwnProperty(a)?ch[a]:uh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:uh(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t};var dh=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const mh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],ph=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],gh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],fh=function(e){let t=[];if(e>100)return t;for(let n=0;n=mh[n][1]&&(e-=mh[n][1],t.push(mh[n][0]));return ph[e]&&t.push(ph[e]),t};var vh=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=dh(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return gh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(fh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=dh(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")};var bh=function(e){if(!e.numerator||!e.denominator)return"";return`${vh({num:e.numerator})} out of ${vh({num:e.denominator})}`};const yh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var wh=e=>{let t=vh(e).split(" "),n=t[t.length-1];return yh.hasOwnProperty(n)?t[t.length-1]=yh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Ph=function(e){if(!e.numerator||!e.denominator)return"";let t=vh({num:e.numerator}),n=wh({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const kh=(e,t)=>"number"==typeof t?e.eq(t):e;var Ah=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return kh(this,e).map(hh)}get(e){return kh(this,e).map(hh)}json(e){return kh(this,e).map((t=>{let n=t.toView().json(e)[0],r=hh(t);return n.fraction=r,n}),[])}toDecimal(e){return kh(this,e).forEach((e=>{let{decimal:t}=hh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return kh(this,e).forEach((e=>{let t=hh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return kh(this,e).forEach((e=>{let t=hh(e),n=Ph(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return kh(this,e).forEach((e=>{let t=hh(e),n=bh(t);e.replaceWith(n)})),this}toPercentage(e){return kh(this,e).forEach((e=>{let{decimal:t}=hh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=Yc(this);return t=kh(t,e),new Fractions(this.document,t.pointer)}};const Nh="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var jh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Nh+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Nh+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Nh+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Nh+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Nh})`),r=e.has("("+Nh+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Nh+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Nh+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var xh=function(e){if("string"==typeof e)return{num:sh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=hh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=sh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}};var Eh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=dh(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Ih={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Gh={"%":"percent","°":"degrees"};var Th=function(e){let t={suffix:"",prefix:e.prefix};return Ih.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Ih[e.prefix],t.prefix=""),Gh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Gh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var Dh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Th(e);return t+wh(e)+n}if("Ordinal"===t)return e.prefix+Eh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Th(e);return t+vh(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Ch=(e,t)=>"number"==typeof t?e.eq(t):e;var Oh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Ch(this,e).map(xh)}get(e){return Ch(this,e).map(xh).map((e=>e.num))}json(e){return Ch(this,e).map((t=>{let n=t.toView().json(e)[0],r=xh(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=xh(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Dh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=xh(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Dh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=xh(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Dh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=xh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Dh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=xh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Dh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>xh(t).num===e))}greaterThan(e){return this.filter((t=>xh(t).num>e))}lessThan(e){return this.filter((t=>xh(t).num{let r=xh(n).num;return r>e&&r{let n=xh(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Dh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=xh(e).num);let t=this.map((t=>{let n=xh(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Dh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=jh(this);return t=Ch(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=jh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=Ch(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=jh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=Ch(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var Vh={api:function(e){Ah(e),Oh(e)}};const Bh={people:!0,emails:!0,phoneNumbers:!0,places:!0},zh=function(e={}){return!1!==(e=Object.assign({},Bh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},$h={api:function(e){e.prototype.redact=zh}};var Fh=$h;var Sh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))};var Hh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};var Wh=function(e){let t=e.clauses(),n=Hh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}};var Mh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e};var Jh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e};var Lh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!e.lookBehind("to$").found&&(!!e.has("#Copula #Gerund")||!e.has("#Gerund")&&(!!e.has("#Copula")||!(e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found)))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e};var qh=function(e){return e.verbs().toInfinitive(),e};const Kh=(e,t)=>"number"==typeof t?e.eq(t):e;var Uh=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Wh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n}),[])}toPastTense(e){return Kh(this,e).map((e=>(Wh(e),Mh(e))))}toPresentTense(e){return Kh(this,e).map((e=>(Wh(e),Jh(e))))}toFutureTense(e){return Kh(this,e).map((e=>(Wh(e),e=Lh(e))))}toInfinitive(e){return Kh(this,e).map((e=>(Wh(e),qh(e))))}toNegative(e){return Kh(this,e).map((e=>(Wh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return Kh(this,e).map((e=>(Wh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return Kh(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return Kh(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=Kh(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Sh(this);return Kh(t,e)}};Object.assign(e.prototype,t)},Rh={api:Uh};var _h=function(e){return e.match("#Honorific+? #Person+")};var Qh=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Zh="male",Yh="female",Xh={mr:Zh,mrs:Yh,miss:Yh,madam:Yh,king:Zh,queen:Yh,duke:Zh,duchess:Yh,baron:Zh,baroness:Yh,count:Zh,countess:Yh,prince:Zh,princess:Yh,sire:Zh,dame:Yh,lady:Yh,ayatullah:Zh,congressman:Zh,congresswoman:Yh,"first lady":Yh,mx:null};var ed=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Yh;if(n.has("#MaleName"))return Zh;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Xh.hasOwnProperty(e))return Xh[e];if(/^her /.test(e))return Yh;if(/^his /.test(e))return Zh}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Zh;if(n&&!t)return Yh}return null};const td=(e,t)=>"number"==typeof t?e.eq(t):e;var nd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return td(this,e).map(Qh)}json(e){return td(this,e).map((t=>{let n=t.toView().json(e)[0],r=Qh(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:ed(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=_h(this);return t=td(t,e),new People(this.document,t.pointer)}};var rd=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||(!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found))),t=t.splitAfter(n),t};var ad=function(e){e.prototype.places=function(t){let n=rd(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var od=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const id=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var sd=function(e){e.prototype.topics=id};var ld={api:function(e){nd(e),ad(e),od(e),sd(e)}};var ud=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t};var cd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t};var hd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const dd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},md=function(e){return e.match("#Negative")},pd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var gd=function(e){let t=e.clone();t.contractions().expand();const n=cd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:hd(t,n),auxiliary:dd(t,n),negative:md(t),phrasal:pd(n)}};const fd={tense:"PresentTense"},vd={conditional:!0},bd={tense:"FutureTense"},yd={progressive:!0},wd={tense:"PastTense"},Pd={complete:!0,progressive:!1},kd={passive:!0},Ad=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Nd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[fd]],["^wanted to #Infinitive$",[wd]],["^will want to #Infinitive$",[bd]]],"gerund-phrase":[["^#PastTense #Gerund$",[wd]],["^#PresentTense #Gerund$",[fd]],["^#Infinitive #Gerund$",[fd]],["^will #Infinitive #Gerund$",[bd]],["^have #PastTense #Gerund$",[wd]],["^will have #PastTense #Gerund$",[wd]]],"simple-present":[["^#PresentTense$",[fd]],["^#Infinitive$",[fd]]],"simple-past":[["^#PastTense$",[wd]]],"simple-future":[["^will #Adverb? #Infinitive",[bd]]],"present-progressive":[["^(is|are|am) #Gerund$",[fd,yd]]],"past-progressive":[["^(was|were) #Gerund$",[wd,yd]]],"future-progressive":[["^will be #Gerund$",[bd,yd]]],"present-perfect":[["^(has|have) #PastTense$",[wd,Pd]]],"past-perfect":[["^had #PastTense$",[wd,Pd]],["^had #PastTense to #Infinitive",[wd,Pd]]],"future-perfect":[["^will have #PastTense$",[bd,Pd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[wd,yd]]],"past-perfect-progressive":[["^had been #Gerund$",[wd,yd]]],"future-perfect-progressive":[["^will have been #Gerund$",[bd,yd]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[wd,kd]],["^(was|were) being (#PastTense|#Participle)",[wd,kd]],["^(had|have) been (#PastTense|#Participle)",[wd,kd]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[fd,kd]],["^(is|are|am) being (#PastTense|#Participle)",[fd,kd]],["^has been (#PastTense|#Participle)",[fd,kd]]],"passive-future":[["will have been (#PastTense|#Participle)",[bd,kd,vd]],["will be being? (#PastTense|#Participle)",[bd,kd,vd]]],"present-conditional":[["would be #PastTense",[fd,vd]]],"past-conditional":[["would have been #PastTense",[wd,vd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[bd]]],"auxiliary-past":[["^did #Infinitive$",[wd,{plural:!1}]],["^used to #Infinitive$",[wd,Pd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[fd,Pd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[wd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let jd=[];Object.keys(Nd).map((e=>{Nd[e].forEach((t=>{jd.push({name:e,match:t[0],data:Ad(t[1])})}))}));var xd=jd;var Ed=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),Id(r)&&(n.remove(r),r=n.last()),Id(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Gd(t,e)}};const Dd=e=>e,Cd=(e,t)=>{let n=Td(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Od=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Td(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Vd=function(e,t){let n=Td(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Bd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},zd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Bd(e)),r&&e.replace(t.root,r),e},$d=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Fd=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal))},Sd=function(e){return e&&e.isView?e.text("normal"):""},Hd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Bd(e))};var Wd=function(e){let t=gd(e);e=e.clone().toView();const n=Ed(e,t);return{root:t.root.text(),preAdverbs:Fd(t.adverbs.pre),postAdverbs:Fd(t.adverbs.post),auxiliary:Sd(t.auxiliary),negative:t.negative.found,prefix:Sd(t.prefix),infinitive:Hd(t.root),grammar:n}};const Md={tags:!0};var Jd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Bd(r)),i&&e.replace(r,i,Md).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Vd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Ld={tags:!0},qd={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Bd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Td(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Ld),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=qd.simple(e,t),e=qd.noAux(e,t))},hasHad:e=>(e.replace("has","had",Ld),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Bd(a)),n(o,e.model).Participle}},Kd={infinitive:qd.simple,"simple-present":qd.simple,"simple-past":Dd,"simple-future":qd.both,"present-progressive":e=>(e.replace("are","were",Ld),e.replace("(is|are|am)","was",Ld),e),"past-progressive":Dd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":qd.hasHad,"past-perfect":Dd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=$d(e)),e.remove("have"),e),"present-perfect-progressive":qd.hasHad,"past-perfect-progressive":Dd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Ld),e),"passive-past":e=>(e.replace("have","had",Ld),e),"passive-present":e=>(e.replace("(is|are)","was",Ld),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Ld),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Dd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Ld),e),"auxiliary-past":Dd,"auxiliary-present":e=>(e.replace("(do|does)","did",Ld),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Ld):(qd.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Dd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Ld),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),qd.simple(e,t),$d(e),e)};var Ud=function(e,t,n){return Kd.hasOwnProperty(n)?((e=Kd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Rd={tags:!0},_d=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Bd(a)),!1===Cd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Od(e)),o&&(e=e.replace(a,o,Rd)).not("#Particle").tag("PresentTense"),e},Qd=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Bd(a)),!1===Cd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Rd)).not("#Particle").tag("Gerund"),e},Zd={infinitive:_d,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return _d(e,t);{let t=Td(e).subject;if(Cd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Rd)}return e},"simple-past":_d,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Od(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else _d(e,t),e=e.remove("will");return e},"present-progressive":Dd,"past-progressive":(e,t)=>{let n=Od(e);return e.replace("(were|was)",n,Rd)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(_d(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Td(e).subject;return Cd(e)||n.has("i")?((e=zd(e,t)).remove("had"),e):(e.replace("had","has",Rd),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Dd,"past-perfect-progressive":e=>e.replace("had","has",Rd),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Od(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Rd),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Dd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Dd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Qd(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Vd(e);return e.replace(t.auxiliary,n),e}return Qd(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Dd,"modal-infinitive":Dd,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Bd(r)),a&&(e=e.replace(t.root,a,Rd))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),_d(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Cd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Rd),e.remove("will"),e}};var Yd=function(e,t,n){return Zd.hasOwnProperty(n)?((e=Zd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Xd={tags:!0},em=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Bd(r)),o&&(e=e.replace(r,o,Xd)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},tm=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Bd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Xd),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},nm={infinitive:em,"simple-present":em,"simple-past":em,"simple-future":Dd,"present-progressive":tm,"past-progressive":tm,"future-progressive":Dd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Dd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Dd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Dd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Dd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Dd,"modal-past":Dd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),em(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var rm=function(e,t,n){return e.has("will")||e.has("going to")?e:nm.hasOwnProperty(n)?((e=nm[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const am={tags:!0};var om=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Bd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Od(e)} ${s}`,e.replace(a,s,am)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const im={tags:!0},sm=function(e,t){let n=Vd(e);return e.prepend(n+" not"),e},lm=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},um=e=>e.has("(is|was|am|are|will|were|be)"),cm={"simple-present":(e,t)=>!0===um(e)?lm(e):(e=zd(e,t),e=sm(e)),"simple-past":(e,t)=>!0===um(e)?lm(e):((e=zd(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===um(e)?lm(e):sm(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",im),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=sm(e)).replace("wants","want",im)};var hm=function(e,t,n){if(e.has("#Negative"))return e;if(cm.hasOwnProperty(n))return e=cm[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===um(e)?lm(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const dm=(e,t)=>"number"==typeof t?e.eq(t):e;var mm=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return dm(this,e).map(gd)}json(e,t){let n=dm(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Wd(t),n}),[]);return n}subjects(e){return dm(this,e).map((e=>(gd(e),Td(e).subject)))}adverbs(e){return dm(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return dm(this,e).filter((e=>!0!==Td(e).plural))}isPlural(e){return dm(this,e).filter((e=>!0===Td(e).plural))}isImperative(e){return dm(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return dm(this,e).map((e=>{let t=gd(e),n=Ed(e,t);return Jd(e,t,n.form)}))}toPresentTense(e){return dm(this,e).map((e=>{let t=gd(e),n=Ed(e,t);return Yd(e,t,n.form)}))}toPastTense(e){return dm(this,e).map((e=>{let t=gd(e),n=Ed(e,t);return Ud(e,t,n.form)}))}toFutureTense(e){return dm(this,e).map((e=>{let t=gd(e),n=Ed(e,t);return rm(e,t,n.form)}))}toGerund(e){return dm(this,e).map((e=>{let t=gd(e),n=Ed(e,t);return om(e,t,n.form)}))}conjugate(e){return dm(this,e).map((e=>{let t=gd(e),n=Ed(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Jd(e.clone(),t,n.form).text("normal"),PastTense:Ud(e.clone(),t,n.form).text("normal"),PresentTense:Yd(e.clone(),t,n.form).text("normal"),FutureTense:rm(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return dm(this,e).map((e=>{let t=gd(e),n=Ed(e,t);return hm(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=ud(this);return t=dm(t,e),new Verbs(this.document,t.pointer)}},pm={api:mm};v.plugin(ic),v.plugin(Ic),v.plugin(Bc),v.plugin(Zc),v.plugin(Vh),v.plugin(Fh),v.plugin(Rh),v.plugin(ld),v.plugin(pm);export{v as default}; diff --git a/builds/two/compromise-two.cjs b/builds/two/compromise-two.cjs index 38786c39d..d198d394e 100644 --- a/builds/two/compromise-two.cjs +++ b/builds/two/compromise-two.cjs @@ -1 +1 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,a={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let a=this.update([t]);e(a,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach((e=>{a=a.concat(e.fullPointer)})),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let a=this.update([t]);return e(a,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let a=this.update([t]);return e(a,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let a=this.update([t]);return e(a,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,n,a);i.get=i.eq;var s=i;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,a=t||e.map(((e,t)=>[t]));return a.map((e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>a[t]=e.lib[t])),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:a}=n;let r=new t([]);if(r.world=n,"number"==typeof e&&(e=String(e)),!e)return r;if("string"==typeof e)return new t(a.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return r};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let a=m(e,l,p);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var b=f,y=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},E=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},I=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?E(n):(E(n),E([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!P(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||P(r.text)&&r.text.length>1&&(r.text=r.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let G=0;const N=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var D=function(e){let[t,n]=e.index||[0,0];G+=1,G=G>46655?0:G,t=t>46655?0:t,n=n>1294?0:n;let a=N(G.toString(36));a+=N(t.toString(36));let r=n.toString(36);return r=r.length<2?"0"+r:r,a+=r,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},T=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:T(e)?T(e[0])?e[0]:e:[]}(e,r);0!==d.length&&(d=function(e){return e.map((e=>(e.id=D(e),e)))}(d),n?(x(t.update([u]).firstTerm()),I(h,u,d,a)):(x(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(z,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,a);let r=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(r.docs[0]||[]).map((e=>Array.from(e.tags)));a.insertAfter(e),r.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction+").contractions().expand(),a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this}};var F=V,$=function(e,t){t.forEach((t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let r=n.fullPointer,o=a.fullPointer.reverse(),i=$(this.document,o);return r=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var L=J,M={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a)))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map(((e,t)=>[t])),r=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:a[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(r=M.byFreq(r),this.update(r.map((e=>e.pointer)))):"function"==typeof M[e]?(r=r.sort(M[e]),this.update(r.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var Q={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=R(this.document,e);return this.document=t,this.all()}var r;return this}},Z={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const _=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},B,F,H,L,U,Q,Z);var X=function(e){Object.assign(e.prototype,_)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const ae=/'/,re=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(ae)[0];if(re.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,pe=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],a=n.text.match(ge);return null!==a?!0===n.tags.has("PhoneNumber")||pe.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(me),null!==a?[a[1],"to",a[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,ye=new Set(["st","nd","rd","th","am","pm","max"]);var ve=function(e,t){let n=e[t].text.match(be);if(null!==n){let e=n[2].toLowerCase().trim();return ye.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ee={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];new Set(a.one.units||[]),n.forEach(((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(a[s].normal)&&([l,u]=a[s].normal.split(we));let c=je(o,a[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](a,s,t)),!c&&Ee.hasOwnProperty(l)&&(c=Ee[l](a,s)),c?(c=Ie(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(a[s].normal)?(c=fe(a,s),c&&(c=Ie(c,e),ne(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ve(a,s),c&&(c=Ie(c,e),ne(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ne={model:te,compute:{contractions:Ge},hooks:["contractions"]},De=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===xe.test(l)){let e=l.replace(xe,"");if(i.hasOwnProperty(e)&&e.length>3&&Te.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let r=e[a],o=(a=(a=a.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},ze={addWords:function(e){const t=this.world(),{methods:n,model:a}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},Ve={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Be}},compute:Oe,lib:ze,hooks:["lexicon"]},Fe=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const $e=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Le=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const Me={buildTrie:function(e){const t=Fe(e,this.world());return Le(t)}};Me.compile=Me.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Fe(e,this.world));var a;let r=He(this,n,t);return r=r.settle(),r}},lib:Me};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},qe=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Ke(n,t),Object.keys(a).forEach((e=>{a[e]=Ke(a[e],t)})),{ptrs:n,byGroup:a}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,Ze=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e};var _e={matchOne:function(e,t,n){const a=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=Ze(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=Ze(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ze(e,n,this.world);let o=this._cache||[],i=this.filter(((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Xe={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&r.push([t[0],0,t[1]])}));let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}})),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach(((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}})),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Ye=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},tt=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Ye(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Ye(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var at=nt;const rt=Object.assign({},_e,Xe,at);rt.lookBehind=rt.before,rt.lookBefore=rt.before,rt.lookAhead=rt.after,rt.lookAfter=rt.after,rt.notIf=rt.ifNo;var ot=function(e){Object.assign(e.prototype,rt)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let a=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?a.push(e):a=a.concat(e.split(lt))})),a=ct(a),a};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),pt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),yt=e=>e.substring(1),vt=e=>e.substring(0,e.length-1),wt=function(e){return e=yt(e),e=vt(e)},kt=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===ft(e)&&(n.end=!0,e=vt(e)),"^"===bt(e)&&(n.start=!0,e=yt(e)),("["===bt(e)||"]"===ft(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=vt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=vt(e)),"?"===ft(e)&&(n.optional=!0,e=vt(e)),"!"===bt(e)&&(n.negative=!0,e=yt(e)),"~"===bt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===bt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=yt(n.choices[0]);let a=n.choices.length-1;n.choices[a]=vt(n.choices[a]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===bt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===bt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===bt(e)&&">"===ft(e))return e=wt(e),n.chunk=pt(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===bt(e)?(n.tag=yt(e),n.tag=pt(n.tag),n):"@"===bt(e)?(n.method=yt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var Et=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&At.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter((e=>e)).reverse(),e.splice(t,1),r.forEach((n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},a=e.root;return n?n(a,t.model):[]},It=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Gt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Nt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(It(e,t)):"Adjective"===e.pos&&(n=n.concat(Gt(e,t))):(n=n.concat(jt(e,t)),n=n.concat(It(e,t)),n=n.concat(Gt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Dt=function(e){return e=function(e){let t=0,n=null;for(let a=0;a(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},xt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=ht(e);return a=a.map((e=>Pt(e,t))),a=Et(a,n),a=Nt(a,n),a=Dt(a),a};const Tt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Bt.test(e.pre)||zt.test(e.post),hasComma:e=>$t(e,","),hasPeriod:e=>!0===$t(e,".")&&!1===$t(e,"..."),hasExclamation:e=>$t(e,"!"),hasQuestionMark:e=>$t(e,"?")||$t(e,"¿"),hasEllipses:e=>$t(e,"..")||$t(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>$t(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Vt.test(e.post)||Vt.test(e.pre),hasDash:e=>Ft.test(e.post)||Ft.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Jt=Ht;let Lt=function(){};Lt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Jt[t.method]&&!0===Jt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Lt(e,t,n,a))):t.choices.some((t=>Lt(e,t,n,a))))}(e,t,n,a);return!0===t.negative?!r:r};var Mt=Lt;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Kt(e,e.t).length=a-e.t),e.t=a,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Mt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every(((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Mt(e.terms[a],t,a,e.phrase_length)}));return!0===a&&n.length>t&&(t=n.length),a}))&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Kt(e,e.t).length+=a),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null},Zt=function(e,t,n){let a=0;for(let r=e.t;ra||(e.t+=a,0))},_t=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);if(a.negative=!1,Mt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Mt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Mt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Zt(e,a,t[e.r+1]):(e.t+=1,!0)},Xt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Mt(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Mt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Yt=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Xt(e),a.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Yt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=Kt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0):null)},nn=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Wt(e,r)){if(e.negative){if(!_t(r))return null}else if(!0!==Mt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(!0!==e.optional)return null}else if(!tn(r))return null}else if(!tn(r))return null}else{if(e.negative&&e.anything)return null;if(!tn(r))return null}else if(!Qt(r))return null}else if(!Rt(r))return null}else if(!qt(r))return null}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach((e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]})),{pointer:o,groups:i}},an=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{a[t]=a[t]||[],a[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:a}};const rn=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let a=nn(e,t,0,e.length);return a?(a=rn(a,n),a):null};var sn=function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=an(i,r),i.ptrs.forEach((t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id})),i},ln={api:ot,methods:{one:{termMethods:Jt,parseMatch:xt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},a={};return Object.keys(t).forEach((r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)}))})),{starts:n,ends:a}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),a="";return this.docs.forEach((e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(r)&&(r=" "),r=r.replace(pn,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),r="-"===r?" ":r.replace(gn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&bn.test(r)||(r+=" "),a+=n+o+r})),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},vn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};vn.clean=vn.normal,vn.reduced=vn.root;var wn=vn;let kn=[],Pn=0;for(;Pn<64;)kn[Pn]=0|4294967296*Math.sin(++Pn%Math.PI);function An(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Pn=i=0;Pn>4]+kn[i]+~~o[Pn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const En={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const In=function(e,t){return Object.assign({},e,t)},Gn={text:e=>yn(e,{keepPunct:!0},!1),normal:e=>yn(e,In(wn.normal,{keepPunct:!0}),!1),implicit:e=>yn(e,In(wn.implicit,{keepPunct:!0}),!1),machine:e=>yn(e,jn,!1),root:e=>yn(e,In(jn,{form:"root"}),!1),hash:e=>An(yn(e,{keepPunct:!0},!1)),offset:e=>{let t=Gn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};Gn.sentences=Gn.sentence,Gn.clean=Gn.normal,Gn.reduced=Gn.root;const Nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},En,a)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let r={};return Object.keys(a).forEach((o=>{a[o]&&Gn[o]&&(r[o]=Gn[o](e,n,t))})),r})));var n,a;return"number"==typeof e?t[e]:t}};Nn.data=Nn.json;var Dn=Nn,xn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Tn="";var Cn={green:e=>""+e+Tn,red:e=>""+e+Tn,blue:e=>""+e+Tn,magenta:e=>""+e+Tn,cyan:e=>""+e+Tn,yellow:e=>""+e+Tn,black:e=>""+e+Tn,dim:e=>""+e+Tn,i:e=>""+e+Tn},On=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Cn.blue("\n ──────")),t.forEach((e=>{console.log(Cn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=Cn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=Cn.blue(" │ ")+Cn.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Cn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Bn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},zn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${Cn.blue(a[1])}${a[2]}`}(a,e.offset,t)})),console.log(a)}))},Vn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(xn(t),t):(!1!==e.tags&&(On(t),console.log("\n")),!0===e.chunks&&(Bn(t),console.log("\n")),!0===e.highlight&&(zn(t),console.log("\n")),t)};const Fn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var $n=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((a=>{e.match(a).fullPointer.forEach((e=>{n[e[3]]={fn:t[a],end:e[2]}}))})),n}(e,t),a="";return e.docs.forEach(((t,r)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Hn=Sn,Jn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},qn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=qn(t),a=[];return e.forEach((e=>{let[t]=e,r=n[t]||[];if(r=r.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===r.length)return void a.push({passthrough:e});r=r.sort(((e,t)=>e[1]-t[1]));let o=e;r.forEach(((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)}))})),a},Rn=function(e,t){let n=[];return e.forEach(((a,r)=>{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<20;a+=1){if(t[n-a]){let r=t[n-a].findIndex((t=>t.id===e));if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex((t=>t.id===e));if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex((e=>e.id===r));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},Qn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter((t=>Kn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);r.push(o)})),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Xn=function(e,t){let n=qn(t),a=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Kn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},ea=function(e,t){return e.map((e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e}))},ta={union:function(e){e=Yn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=ea(t,this.document),this.toView(t)}};ta.and=ta.union,ta.intersection=function(e){e=Yn(e,this);let t=Xn(this.fullPointer,e.fullPointer);return t=ea(t,this.document),this.toView(t)},ta.not=function(e){e=Yn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=ea(t,this.document),this.toView(t)},ta.difference=ta.not,ta.complement=function(){let e=this.all(),t=_n(e.fullPointer,this.fullPointer);return t=ea(t,this.document),this.toView(t)},ta.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Zn(e,[t])})),e=ea(e,this.document),this.update(e)};var na=function(e){Object.assign(e.prototype,ta)},aa={methods:Qn,api:na},ra=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:a}=this,{methods:r}=n;let o=r.one.bulkMatch(a,e,this.methods,t);!1!==t.tagger&&r.one.bulkTagger(o,a,this.world),o=o.map((e=>{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const oa=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ia=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(oa(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(oa(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=oa(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},sa=function(e,t){e=ia(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let a=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:a}},la=function(e,t){return e.map(((n,a)=>{let r=[];Object.keys(t).forEach((n=>{e[a].has(n)&&(r=r.concat(t[n]))}));let o={};return r=r.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),r}))},ua=function(e,t){return e.map(((e,n)=>{let a=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>a.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>a.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>a.has(e))).length>=e.minWant))}))},ca=function(e,t,n,a,r){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===r.matchOne))return[o[0]]}return o},ha=function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=la(r,t.hooks);return o=ua(o,r),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let a=t[n].length;return e=e.filter((e=>a>=e.minWords)),e}))}(o,e),ca(o,e,r,n,a)},da=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===da(u,e.tag,a))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${r}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,r),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},ma={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ra,methods:{one:{buildNet:sa,bulkMatch:ha,bulkTagger:ga}}};const pa=/ /,fa=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},ba=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),pa.test(t))!function(e,t,n,a){let r=t.split(pa);e.forEach(((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),ba(e,o,n,a))}))}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nya(e,t,n,a)))};var va=ya,wa=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>ka({id:e}))),t}return[ka({id:e})]}(e))})),n=n.filter((e=>e));let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),a.push(n)}))}return n},ja=e=>"[object Array]"===Object.prototype.toString.call(e),Ia=e=>(e=e||"").trim(),Ga=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Pa.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Aa(e)})}));let a=function(e){let t={children:[]};return e.forEach(((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=ka({});return e.forEach((e=>{if((e=ka(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ea(t=e).forEach(ka),t);var t},Na=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Ea(e).forEach(((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"})),a},Da=function(e){let t=Ea(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},xa={text:Na,txt:Na,array:Da,flat:Da},Ta=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Na(e,!0)),null):xa.hasOwnProperty(t)?xa[t](e):e},Ca=e=>{Ea(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Oa=/\//;let Ba=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Ia(e),!Oa.test(e)){let t=this.json.children.find((t=>t.id===e));return new Ba(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!a)return null;e=a}return e})(this.json,e)||ka({});return new Ba(t)}add(e,t={}){if(ja(e))return e.forEach((e=>this.add(Ia(e),t))),this;e=Ia(e);let n=ka({id:e,props:t});return this.json.children.push(n),new Ba(n)}remove(e){return e=Ia(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ea(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ea(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ea(this.json)}fillDown(){var e;return e=this.json,Ea(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else ja(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Ca(this.json);let e=Ea(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Ca(this.json),Ta(this.json,e)}debug(){return Ca(this.json),Ta(this.json,"debug"),this}};const za=function(e){let t=Ga(e);return new Ba(t)};za.prototype.plugin=function(e){e(this)};var Va={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Fa=function(e){if(Va.hasOwnProperty(e.id))return Va[e.id];if(Va.hasOwnProperty(e.is))return Va[e.is];let t=e._cache.parents.find((e=>Va[e]));return Va[t]};var $a=function(e){const t={};return e.forEach((e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:Fa(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sa=function(e){return e?"string"==typeof e?[e]:e:[]};var Ha=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sa(e[t].children),e[t].not=Sa(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Ja=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Ha(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}}));return za(t).cache().fillDown().out("array")}(Object.assign({},t,e));return $a(n)},La={one:{setTag:va,unTag:wa,addTags:Ja}};const Ma=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Wa={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Ma(e)?e.forEach((e=>r.one.setTag(a,e,i,n,t))):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Ma(e)?e.forEach((e=>a.one.unTag(n,e,i))):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach(((e,t)=>{e.forEach(((e,r)=>{n.find((t=>e.tags.has(t)))&&a.push([t,r,r+1])}))}));let r=this.update(a);return this.difference(r)}};var Ka=Wa,qa=function(e){Object.assign(e.prototype,Ka)},Ua={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const Ra=new Set(["Auxiliary","Possessive"]);var Qa=function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Ra.has(e)||!t.hasOwnProperty(n))return 1;if(Ra.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})),e}(t,a)}))}))},Za={model:{one:{tagSet:{}}},compute:{tagRank:Qa},methods:La,api:qa,lib:Ua};const _a=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Xa=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Ya=/((?:\r?\n|\r)+)/;var er=function(e){let t=[],n=e.split(Ya);for(let e=0;e0&&(r.push(o),e[t]="")}return r};const or={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ir=RegExp("("+Object.keys(or).join("|")+")","g"),sr=RegExp("("+Object.values(or).join("|")+")","g"),lr=function(e){if(!e)return!1;let t=e.match(sr);return null!==t&&1===t.length};var ur=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var jr=function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split(Ar);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wr(n),n=yr(n),n=n.filter((e=>e)),n};let Ir=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Gr=new RegExp(`^[${["%","_"].join("")}]+`,"");const Nr=/[\p{Punctuation}\s]+$/u,Dr=/^[\p{Punctuation}\s]+/u,xr=/['’]/,Tr=/^[a-z]\.([a-z]\.)+/i,Cr=/^'[0-9]{2}/;var Or=function(e){let t=e,n="",a="";return e=e.replace(Dr,(t=>{let a=t.match(Ir);return a?(n=t.replace(Ir,""),a):"'"===n&&Cr.test(e)?(n="",t):(n=t,"")})),e=e.replace(Nr,(r=>{let o=r.match(Gr);return o?(a=r.replace(Gr,""),o):xr.test(r)&&/[sn]['’]$/.test(t)&&!1===xr.test(n)?(a=a.replace(xr,""),"'"):!0===Tr.test(e)?(a=r.replace(/^\./,""),"."):(a=r,"")})),""===e&&(t=t.replace(/ *$/,(e=>(a=e||"",""))),e=t,n=""),{str:e,pre:n,post:a}},Br=function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach(((e,t)=>{n[e]&&(a[t]=n[e])})),a.join("")},zr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Vr=/([A-Z]\.)+[A-Z]?,?$/,Fr=/^[A-Z]\.,?$/,$r=/[A-Z]{2,}('s|,)?$/,Sr=/([a-z]\.)+[a-z]\.?$/;var Hr=function(e){return function(e){return!0===Vr.test(e)||!0===Sr.test(e)||!0===Fr.test(e)||!0===$r.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Jr=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=zr(a),a=n(a,t),a=Hr(a),e.normal=a},Lr=function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",t).map((e=>{let n=o(e,a);return n=n.map(i),n.forEach((e=>{Jr(e,t)})),n})),e};const Mr=/[ .][A-Z]\.? *$/i,Wr=/(?:\u2026|\.{2,}) *$/,Kr=/\p{L}/u,qr=/^[A-Z]\. $/;var Ur={one:{killUnicode:Br,tokenize:{splitSentences:pr,isSentence:function(e,t){if(!1===Kr.test(e))return!1;if(!0===Mr.test(e))return!1;if(3===e.length&&qr.test(e))return!1;if(!0===Wr.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),a=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(a)},splitTerms:jr,splitWhitespace:e=>{let{str:t,pre:n,post:a}=Or(e);return{text:t,pre:n,post:a,tags:new Set}},fromString:Lr}}},Rr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},Zr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qr[t]=!0,Zr[t]="Abbreviation",void 0!==e[1]&&(Zr[t]=[Zr[t],e[1]])}))}));var _r=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Xr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Yr={};Object.keys(Xr).forEach((function(e){Xr[e].split("").forEach((function(t){Yr[t]=e}))}));const eo=/\//,to=/[a-z]\.[a-z]/i,no=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),eo.test(n)&&!to.test(n)&&!no.test(n)){let t=n.split(eo);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ro=/^\p{Letter}+-\p{Letter}+$/u;var oo=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ro.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},io=function(e){let t=e.docs,n={};for(let e=0;eco(e,ao),machine:e=>co(e,oo),normal:e=>co(e,Jr),freq:io,offset:so,index:lo,wordCount:uo},methods:Ur,model:{one:{aliases:Rr,abbreviations:Qr,prefixes:_r,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Zr,unicode:Yr}},hooks:["alias","machine","index","id"]},go={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const mo=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var po=function(e){e.prototype.autoFill=mo},fo=function(e,t,n){let a={},r=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]})),a};const bo={safe:!0,min:3};var yo={typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},bo,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=fo(e,t,this.world());return Object.keys(r).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]})),this}},vo={model:{one:{typeahead:{}}},api:po,lib:yo,compute:go,hooks:["typeahead"]};b.extend(ee),b.extend(Wn),b.extend(ln),b.extend(aa),b.extend(Za),b.plugin(Ne),b.extend(ho),b.plugin(k),b.extend(We),b.extend(vo),b.extend(Ve),b.extend(ma);var wo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ko={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Po=36,Ao="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Eo=Ao.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var jo=function(e){if(void 0!==Eo[e])return Eo[e];let t=0,n=1,a=Po,r=1;for(;n=0;n--,r*=Po){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},Io=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const a=No(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Do(ko[e]);Oo.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Co(t,Vo);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Bo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Bo[e]="Emoticon")),delete Bo[""],delete Bo.null,delete Bo[" "];const Fo="Adjective";var $o={beforeTags:{Determiner:Fo,Possessive:Fo},afterTags:{Adjective:Fo},beforeWords:{seem:Fo,seemed:Fo,seems:Fo,feel:Fo,feels:Fo,felt:Fo,appear:Fo,appears:Fo,appeared:Fo,also:Fo,over:Fo,under:Fo,too:Fo,it:Fo,but:Fo,still:Fo,really:Fo,quite:Fo,well:Fo,very:Fo,deeply:Fo,profoundly:Fo,extremely:Fo,so:Fo,badly:Fo,mostly:Fo,totally:Fo,awfully:Fo,rather:Fo,nothing:Fo,something:Fo,anything:Fo,not:Fo,me:Fo},afterWords:{too:Fo,also:Fo,or:Fo}};const So="Gerund";var Ho={beforeTags:{Adverb:So,Preposition:So,Conjunction:So},afterTags:{Adverb:So,Possessive:So,Person:So,Pronoun:So,Determiner:So,Copula:So,Preposition:So,Conjunction:So,Comparative:So},beforeWords:{been:So,keep:So,continue:So,stop:So,am:So,be:So,me:So,began:So,start:So,starts:So,started:So,stops:So,stopped:So,help:So,helps:So,avoid:So,avoids:So,love:So,loves:So,loved:So,hate:So,hates:So,hated:So},afterWords:{you:So,me:So,her:So,him:So,them:So,their:So,it:So,this:So,there:So,on:So,about:So,for:So}},Jo={beforeTags:Object.assign({},$o.beforeTags,Ho.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},$o.afterTags,Ho.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},$o.beforeWords,Ho.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},$o.afterWords,Ho.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Lo="Singular";var Mo={beforeTags:{Determiner:Lo,Possessive:Lo,Acronym:Lo,Noun:Lo,Adjective:Lo,PresentTense:Lo,Gerund:Lo,PastTense:Lo,Infinitive:Lo,Date:Lo},afterTags:{Value:Lo,Modal:Lo,Copula:Lo,PresentTense:Lo,PastTense:Lo,Demonym:Lo},beforeWords:{the:Lo,with:Lo,without:Lo,of:Lo,for:Lo,any:Lo,all:Lo,on:Lo,cut:Lo,cuts:Lo,save:Lo,saved:Lo,saves:Lo,make:Lo,makes:Lo,made:Lo,minus:Lo,plus:Lo,than:Lo,another:Lo,versus:Lo,neither:Lo,favorite:Lo,best:Lo,daily:Lo,weekly:Lo,linear:Lo,binary:Lo,mobile:Lo,lexical:Lo,technical:Lo,computer:Lo,scientific:Lo,formal:Lo},afterWords:{of:Lo,system:Lo,aid:Lo,method:Lo,utility:Lo,tool:Lo,reform:Lo,therapy:Lo,philosophy:Lo,room:Lo,authority:Lo,says:Lo,said:Lo,wants:Lo,wanted:Lo}};const Wo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ko={beforeTags:Object.assign({},$o.beforeTags,Mo.beforeTags,Wo.beforeTags),afterTags:Object.assign({},$o.afterTags,Mo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Mo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Mo.afterWords)};const qo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Uo={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ro={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Qo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Zo={beforeTags:Object.assign({},$o.beforeTags,qo),afterTags:Object.assign({},$o.afterTags,Uo),beforeWords:Object.assign({},$o.beforeWords,Ro),afterWords:Object.assign({},$o.afterWords,Qo)};const _o="Infinitive";var Xo={beforeTags:{Modal:_o,Adverb:_o,Negative:_o,Plural:_o},afterTags:{Determiner:_o,Adverb:_o,Possessive:_o,Preposition:_o},beforeWords:{i:_o,we:_o,you:_o,they:_o,to:_o,please:_o,will:_o,have:_o,had:_o,would:_o,could:_o,should:_o,do:_o,did:_o,does:_o,can:_o,must:_o,us:_o,me:_o,he:_o,she:_o,it:_o,being:_o},afterWords:{the:_o,me:_o,you:_o,him:_o,her:_o,them:_o,it:_o,a:_o,an:_o,up:_o,down:_o,by:_o,out:_o,off:_o,under:_o,when:_o,all:_o,to:_o,because:_o,although:_o,before:_o,how:_o,otherwise:_o,together:_o,though:_o,yet:_o}};const Yo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ei={beforeTags:Object.assign({},$o.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},$o.afterTags,Xo.afterTags,Yo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Xo.afterWords,{to:void 0})};const ti={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ni={},ai={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ri={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var oi={beforeTags:Object.assign({},Ho.beforeTags,Mo.beforeTags,ti),afterTags:Object.assign({},Ho.afterTags,Mo.afterTags,ni),beforeWords:Object.assign({},Ho.beforeWords,Mo.beforeWords,ai),afterWords:Object.assign({},Ho.afterWords,Mo.afterWords,ri)},ii={beforeTags:Object.assign({},Xo.beforeTags,Mo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xo.afterTags,Mo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xo.beforeWords,Mo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xo.afterWords,Mo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const si="Person";var li={beforeTags:{Honorific:si,Person:si,Preposition:si},afterTags:{Person:si,ProperNoun:si,Verb:si},ownTags:{ProperNoun:si},beforeWords:{hi:si,hey:si,yo:si,dear:si,hello:si},afterWords:{said:si,says:si,told:si,tells:si,feels:si,felt:si,seems:si,thinks:si,thought:si,spends:si,spendt:si,plays:si,played:si,sing:si,sang:si,learn:si,learned:si,wants:si,wanted:si}};const ui="Month",ci={beforeTags:{Date:ui,Value:ui},afterTags:{Date:ui,Value:ui},beforeWords:{by:ui,in:ui,on:ui,during:ui,after:ui,before:ui,between:ui,until:ui,til:ui,sometime:ui,of:ui,this:ui,next:ui,last:ui,previous:ui,following:ui},afterWords:{sometime:ui,in:ui,of:ui,until:ui,the:ui}};var hi={beforeTags:Object.assign({},li.beforeTags,ci.beforeTags),afterTags:Object.assign({},li.afterTags,ci.afterTags),beforeWords:Object.assign({},li.beforeWords,ci.beforeWords),afterWords:Object.assign({},li.afterWords,ci.afterWords)};const di={Place:"Place"},gi={Place:"Place",Abbreviation:"Place"},mi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},pi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let fi="Unit";const bi="Honorific";let yi={first:bi,general:bi,royal:bi,vice:bi,rear:bi,major:bi};const vi={"Adj|Gerund":Jo,"Adj|Noun":Ko,"Adj|Past":Zo,"Adj|Present":ei,"Noun|Verb":ii,"Noun|Gerund":oi,"Person|Noun":{beforeTags:Object.assign({},Mo.beforeTags,li.beforeTags),afterTags:Object.assign({},Mo.afterTags,li.afterTags),beforeWords:Object.assign({},Mo.beforeWords,li.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Mo.afterWords,li.afterWords)},"Person|Date":hi,"Person|Verb":{beforeTags:Object.assign({},li.beforeTags,Xo.beforeTags),afterTags:Object.assign({},li.afterTags,Xo.afterTags),beforeWords:Object.assign({},li.beforeWords,Xo.beforeWords),afterWords:Object.assign({},li.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},di,li.beforeTags),afterTags:Object.assign({},gi,li.afterTags),beforeWords:Object.assign({},mi,li.beforeWords),afterWords:Object.assign({},pi,li.afterWords)},"Unit|Noun":{beforeTags:{Value:fi},afterTags:{},beforeWords:{per:fi,every:fi,each:fi,square:fi,cubic:fi,sq:fi,metric:fi},afterWords:{per:fi,squared:fi,cubed:fi,long:fi}},"Honorific|Noun":{beforeTags:{Honorific:bi,ProperNoun:bi,Ordinal:bi},afterTags:{Person:bi,ProperNoun:bi},beforeWords:Object.assign({},yi,{honorable:bi,honourable:bi,worship:bi,excellency:bi,majesty:bi,right:bi}),afterWords:yi}},wi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};vi["Plural|Verb"]={beforeWords:wi(vi["Noun|Verb"].beforeWords,{}),afterWords:wi(vi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:wi(vi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:wi(vi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ki=vi;const Pi="Adjective",Ai="Infinitive",Ei="PresentTense",ji="Singular",Ii="PastTense",Gi="Adverb",Ni="Plural",Di="Actor",xi="Verb",Ti="Noun",Ci="LastName",Oi="Modal",Bi="Participle";var zi=[null,null,{ea:ji,ia:Ti,ic:Pi,ly:Gi,"'n":xi,"'t":xi},{oed:Ii,ued:Ii,xed:Ii," so":Gi,"'ll":Oi,"'re":"Copula",azy:Pi,eer:Ti,end:xi,ped:Ii,ffy:Pi,ify:Ai,ing:"Gerund",ize:Ai,ibe:Ai,lar:Pi,mum:Pi,nes:Ei,nny:Pi,ous:Pi,que:Pi,rol:ji,sis:ji,ogy:ji,oid:ji,ian:ji,zes:Ei,eld:Ii,ken:Bi,ven:Bi,ten:Bi,ect:Ai,ict:Ai,ign:Ai,ful:Pi,bal:Pi},{amed:Ii,aped:Ii,ched:Ii,lked:Ii,rked:Ii,reed:Ii,nded:Ii,mned:Pi,cted:Ii,dged:Ii,ield:ji,akis:Ci,cede:Ai,chuk:Ci,czyk:Ci,ects:Ei,ends:xi,enko:Ci,ette:ji,wner:ji,fies:Ei,fore:Gi,gate:Ai,gone:Pi,ices:Ni,ints:Ni,ruct:Ai,ines:Ni,ions:Ni,less:Pi,llen:Pi,made:Pi,nsen:Ci,oses:Ei,ould:Oi,some:Pi,sson:Ci,tion:ji,tage:Ti,ique:ji,tive:Pi,tors:Ti,vice:ji,lier:ji,fier:ji,wned:Ii,gent:ji,tist:ji,pist:ji,rist:ji,mist:ji,yist:ji,vist:ji,lite:ji,site:ji,rite:ji,mite:ji,bite:ji,mate:ji,date:ji,ndal:ji,vent:ji,uist:ji,gist:ji,note:ji,cide:ji,wide:Pi,vide:Ai,ract:Ai,duce:Ai,pose:Ai,eive:Ai,lyze:Ai,lyse:Ai,iant:Pi,nary:Pi},{elist:ji,holic:ji,phite:ji,tized:Ii,urned:Ii,eased:Ii,ances:Ni,bound:Pi,ettes:Ni,fully:Gi,ishes:Ei,ities:Ni,marek:Ci,nssen:Ci,ology:Ti,osome:ji,tment:ji,ports:Ni,rough:Pi,tches:Ei,tieth:"Ordinal",tures:Ni,wards:Gi,where:Gi,archy:Ti,pathy:Ti,opoly:Ti,embly:Ti,phate:Ti,ndent:ji,scent:ji,onist:ji,anist:ji,alist:ji,olist:ji,icist:ji,ounce:Ai,iable:Pi,borne:Pi,gnant:Pi,inant:Pi,igent:Pi,atory:Pi,rient:ji,dient:ji},{auskas:Ci,parent:ji,cedent:ji,ionary:ji,cklist:ji,keeper:Di,logist:Di,teenth:"Value"},{opoulos:Ci,borough:"Place",sdottir:Ci}];const Vi="Adjective",Fi="Noun",$i="Verb";var Si=[null,null,{},{neo:Fi,bio:Fi,"de-":$i,"re-":$i,"un-":$i},{anti:Fi,auto:Fi,faux:Vi,hexa:Fi,kilo:Fi,mono:Fi,nano:Fi,octa:Fi,poly:Fi,semi:Vi,tele:Fi,"pro-":Vi,"mis-":$i,"dis-":$i,"pre-":Vi},{anglo:Fi,centi:Fi,ethno:Fi,ferro:Fi,grand:Fi,hepta:Fi,hydro:Fi,intro:Fi,macro:Fi,micro:Fi,milli:Fi,nitro:Fi,penta:Fi,quasi:Vi,radio:Fi,tetra:Fi,"omni-":Vi,"post-":Vi},{pseudo:Vi,"extra-":Vi,"hyper-":Vi,"inter-":Vi,"intra-":Vi,"deca-":Vi},{electro:Fi}];const Hi="Adjective",Ji="Infinitive",Li="PresentTense",Mi="Singular",Wi="PastTense",Ki="Adverb",qi="Expression",Ui="Actor",Ri="Verb",Qi="Noun",Zi="LastName";var _i={a:[[/.[aeiou]na$/,Qi,"tuna"],[/.[oau][wvl]ska$/,Zi],[/.[^aeiou]ica$/,Mi,"harmonica"],[/^([hyj]a+)+$/,qi,"haha"]],c:[[/.[^aeiou]ic$/,Hi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Wi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Wi,"rammed"],[/.[aeiou][sg]hed$/,Wi,"gushed"],[/.[aeiou]red$/,Wi,"hired"],[/.[aeiou]r?ried$/,Wi,"hurried"],[/[^aeiou]ard$/,Mi,"steward"],[/[aeiou][^aeiou]id$/,Hi,""],[/.[vrl]id$/,Hi,"livid"],[/..led$/,Wi,"hurled"],[/.[iao]sed$/,Wi,""],[/[aeiou]n?[cs]ed$/,Wi,""],[/[aeiou][rl]?[mnf]ed$/,Wi,""],[/[aeiou][ns]?c?ked$/,Wi,"bunked"],[/[aeiou]gned$/,Wi],[/[aeiou][nl]?ged$/,Wi],[/.[tdbwxyz]ed$/,Wi],[/[^aeiou][aeiou][tvx]ed$/,Wi],[/.[cdflmnprstv]ied$/,Wi,"emptied"]],e:[[/.[lnr]ize$/,Ji,"antagonize"],[/.[^aeiou]ise$/,Ji,"antagonise"],[/.[aeiou]te$/,Ji,"bite"],[/.[^aeiou][ai]ble$/,Hi,"fixable"],[/.[^aeiou]eable$/,Hi,"maleable"],[/.[ts]ive$/,Hi,"festive"],[/[a-z]-like$/,Hi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Hi,"cornish"],[/.v[iy]ch$/,Zi,"..ovich"],[/^ug?h+$/,qi,"ughh"],[/^uh[ -]?oh$/,qi,"uhoh"],[/[a-z]-ish$/,Hi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Zi,"polish-male"]],k:[[/^(k){2}$/,qi,"kkkk"]],l:[[/.[gl]ial$/,Hi,"familial"],[/.[^aeiou]ful$/,Hi,"fitful"],[/.[nrtumcd]al$/,Hi,"natal"],[/.[^aeiou][ei]al$/,Hi,"familial"]],m:[[/.[^aeiou]ium$/,Mi,"magnesium"],[/[^aeiou]ism$/,Mi,"schism"],[/^[hu]m+$/,qi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Hi,"republican"],[/[^aeiou]ician$/,Ui,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,qi,"noooo"],[/^(yo)+$/,qi,"yoo"],[/^wo{2,}[pt]?$/,qi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Mi],[/[^i]fer$/,Ji],[/.[^aeiou][ao]pher$/,Ui],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Hi],[/[aeiou].*ist$/,Hi],[/^[a-z]et$/,Ri]],s:[[/.[^aeiou]ises$/,Li],[/.[rln]ates$/,Li],[/.[^z]ens$/,Ri],[/.[lstrn]us$/,Mi],[/.[aeiou]sks$/,Li],[/.[aeiou]kes$/,Li],[/[aeiou][^aeiou]is$/,Mi],[/[a-z]'s$/,Qi],[/^yes+$/,qi]],v:[[/.[^aeiou][ai][kln]ov$/,Zi]],y:[[/.[cts]hy$/,Hi],[/.[st]ty$/,Hi],[/.[tnl]ary$/,Hi],[/.[oe]ry$/,Mi],[/[rdntkbhs]ly$/,Ki],[/.(gg|bb|zz)ly$/,Hi],[/...lly$/,Ki],[/.[gk]y$/,Hi],[/[bszmp]{2}y$/,Hi],[/.[ai]my$/,Hi],[/[ea]{2}zy$/,Hi],[/.[^aeiou]ity$/,Mi]]};const Xi="Verb",Yi="Noun";var es={leftTags:[["Adjective",Yi],["Possessive",Yi],["Determiner",Yi],["Adverb",Xi],["Pronoun",Xi],["Value",Yi],["Ordinal",Yi],["Modal",Xi],["Superlative",Yi],["Demonym",Yi],["Honorific","Person"]],leftWords:[["i",Xi],["first",Yi],["it",Xi],["there",Xi],["not",Xi],["because",Yi],["if",Yi],["but",Yi],["who",Xi],["this",Yi],["his",Yi],["when",Yi],["you",Xi],["very","Adjective"],["old",Yi],["never",Xi],["before",Yi],["a","Singular"],["the",Yi],["been",Xi]],rightTags:[["Copula",Yi],["PastTense",Yi],["Conjunction",Yi],["Modal",Yi]],rightWords:[["there",Xi],["me",Xi],["man","Adjective"],["only",Xi],["him",Xi],["it",Xi],["were",Yi],["took",Yi],["himself",Xi],["went",Yi],["who",Yi],["jr","Person"]]},ts={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},ns={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},as={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},rs={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},os={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const is=/^.([0-9]+)/;var ss=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(is);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(is,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)})),t},us=/^([0-9]+)/,cs=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(us);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(us,"")]}(n[0],n[1])}))};var hs=function(e={}){return(e=Object.assign({},e)).rules=cs(e.rules),e.rules=ls(e.rules),e.rev&&(e.rev=cs(e.rev),e.rev=ls(e.rev)),e.exceptions=cs(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},ds=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const gs=hs({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ms=hs(rs),ps=hs(ns),fs=hs(as),bs=ds(gs),ys=ds(ms),vs=ds(ps),ws=ds(fs),ks=hs(ts),Ps=hs(os);var As={fromPast:gs,fromPresent:ms,fromGerund:ps,fromParticiple:fs,toPast:bs,toPresent:ys,toGerund:vs,toParticiple:ws,toComparative:ks,toSuperlative:Ps,fromComparative:ds(ks),fromSuperlative:ds(Ps)},Es=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),js=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Is=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce(((e,t)=>(e[r[t]]=t,e)),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(Gs[t].forEach((n=>e[n]=t)),e)),{});var Ns=Gs,Ds=function(e){let t=e.substring(e.length-3);if(!0===Ns.hasOwnProperty(t))return Ns[t];let n=e.substring(e.length-2);return!0===Ns.hasOwnProperty(n)?Ns[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const xs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Ts=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=Ds(e)),xs.hasOwnProperty(e))c=xs[e];else if("Participle"===n)c=ss(l,i);else if("PastTense"===n)c=ss(l,a);else if("PresentTense"===n)c=ss(l,r);else{if("Gerund"!==n)return e;c=ss(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};const Cs=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ss(i,n),PresentTense:ss(i,a),Gerund:ss(i,r),FutureTense:"will "+e},u=ss(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Os=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r))return e.slice(0,n-a)+t[r.length][r]}return null};const Bs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],zs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Vs=function(e){if(zs.hasOwnProperty(e))return zs[e];let t=Os(e,Bs);return t||e+"ly"};const Fs=function(e,t){const n=t.two.models.toSuperlative;return ss(e,n)},$s=function(e,t){const n=t.two.models.toComparative;return ss(e,n)},Ss="ically",Hs=new Set(["analyt"+Ss,"chem"+Ss,"class"+Ss,"clin"+Ss,"crit"+Ss,"ecolog"+Ss,"electr"+Ss,"empir"+Ss,"frant"+Ss,"grammat"+Ss,"ident"+Ss,"ideolog"+Ss,"log"+Ss,"mag"+Ss,"mathemat"+Ss,"mechan"+Ss,"med"+Ss,"method"+Ss,"method"+Ss,"mus"+Ss,"phys"+Ss,"phys"+Ss,"polit"+Ss,"pract"+Ss,"rad"+Ss,"satir"+Ss,"statist"+Ss,"techn"+Ss,"technolog"+Ss,"theoret"+Ss,"typ"+Ss,"vert"+Ss,"whims"+Ss]),Js=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ls=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ms={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Ws=function(e){return e.endsWith("ly")?Hs.has(e)?e.replace(/ically/,"ical"):Ls.has(e)?null:Ms.hasOwnProperty(e)?Ms[e]:Os(e,Js)||e:null};const Ks=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],qs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Us=new Set(["terrible","annoying"]);var Rs={noun:{toPlural:Co,toSingular:Is,all:Co},verb:{toInfinitive:Ts,conjugate:Cs,all:function(e,t){let n=Cs(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},adjective:{toSuperlative:Fs,toComparative:$s,toAdverb:Vs,toNoun:function(e){if(qs.hasOwnProperty(e))return qs[e];if(Us.has(e))return null;let t=Os(e,Ks);return t||e+"ness"},fromAdverb:Ws,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ss(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ss(e,n)},all:function(e,t){let n=[e];return n.push(Fs(e,t)),n.push($s(e,t)),n.push(Vs(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}}},Qs={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,a);r[s]||(t[s]=t[s]||"Superlative");let l=i(e,a);r[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.noun.toPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verb.conjugate(e,a);Object.entries(o).forEach((e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,a);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Zs=function(e,t){const{methods:n,model:a}=t;let r={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Qs.hasOwnProperty(i)&&Qs[i](t,r,n,a),r[t]=r[t]||i})),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},_s=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let a=0;e.forEach(((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))return!1;let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)})),ae.endsWith(t))):"s"===t&&!el.find((t=>e.endsWith(t)))},nl={two:{quickSplit:_s,expandLexicon:Zs,transform:Rs,looksPlural:tl}},al=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const rl=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e)),{})};var ol=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=rl(n,"Infinitive","PastTense"),Object.assign(s,l),l=rl(a,"Infinitive","Verb"),Object.assign(s,l),l=rl(r,"Infinitive","Gerund"),Object.assign(s,l),l=rl(o,"Adjective","Superlative"),Object.assign(s,l),l=rl(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let il={two:{models:As}};const sl={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},ll=function(e,t){const n={model:t,methods:nl};let{lex:a,_multi:r}=nl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},ul=function(e,t,n){let a=Cs(e,il);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},cl=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach((r=>{const o=e[r];if(n[r]=sl[o],"Noun|Verb"!==o&&"Person|Verb"!==o||ul(r,a,!1),"Adj|Present"===o&&(ul(r,a,!0),function(e,t,n){let a=Fs(e,n);t[a]=t[a]||"Superlative";let r=$s(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Ts(r,il,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Ts(r,il,"PastTense");a[e]||(n[e]="Infinitive")}})),t=ll(n,t)};var hl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=ll(e.one.lexicon,e)).one.lexicon,e),e=cl(e.two.switches,e),e=ol(e),e=al(e)};let dl={one:{_multiCache:{},lexicon:Bo},two:{irregularPlurals:wo,models:As,suffixPatterns:zi,prefixPatterns:Si,endsWith:_i,neighbours:es,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:zo,clues:ki,uncountable:{},orgWords:Es}};dl=hl(dl);var gl=dl;const ml=/^(under|over|mis|re|un|dis|semi)-?/;var pl=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(ml.test(r.normal)){let e=r.normal.replace(ml,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},fl=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const bl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var yl=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t)))||(tl(e.normal)?fl(e,"Plural","3-plural-guess"):fl(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ds(e.normal);t&&fl(e,t,"3-verb-tense-guess")}}(a)};const vl=/^\p{Lu}[\p{Ll}'’]/u,wl=/[0-9]/,kl=["Date","Month","WeekDay","Unit"],Pl=/^[IVXLCDM]{2,}$/,Al=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,El={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var jl=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===vl.test(o)&&!1===wl.test(o)?kl.find((e=>a.tags.has(e)))?null:(yl(e,t,n),a.tags.has("Noun")||a.tags.clear(),fl(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&Pl.test(o)&&Al.test(o)&&!El[a.normal]?(fl(a,"RomanNumeral","2-xvii"),!0):null};const Il=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null};var Gl=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=Il(a.normal,n.two.suffixPatterns);if(null!==e)return fl(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=Il(a.implicit,n.two.suffixPatterns),null!==e))return fl(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const Nl=/['‘’‛‵′`´]/,Dl=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return fl(a,e,"2-prefix"),a.confidence=.5,!0}return null};const Cl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Ol=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Cl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Bl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},zl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Vl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(Ol(r)||Ol(o))return fl(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Bl(r)||Bl(o))return fl(n,"Year","2-tagYear-close");if(zl(e[t-2])||zl(e[t+2]))return fl(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return fl(n,"Year","2-tagYear-noun")}}}return null};const Fl=/^[A-Z]('s|,)?$/,$l=/^[A-Z-]+$/,Sl=/([A-Z]\.)+[A-Z]?,?$/,Hl=/[A-Z]{2,}('s|,)?$/,Jl=/([a-z]\.)+[a-z]\.?$/,Ll={I:!0,A:!0};var Ml=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===$l.test(n)||n.length>5||Ll.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Sl.test(n)&&!0!==Jl.test(n)&&!0!==Fl.test(n)&&!0!==Hl.test(n))}(a,n)?(a.tags.clear(),fl(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ll.hasOwnProperty(a.text)&&Fl.test(a.text)?(a.tags.clear(),fl(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(fl(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&$l.test(a.text)&&a.text.length<=6?(fl(a,"Acronym","3-titlecase-acronym"),!0):null};const Wl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Kl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var ql=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Wl(e[t-1],r),l=l||Wl(e[t+1],o),l=l||Kl(e[t-1],a),l=l||Kl(e[t+1],i),l)return fl(s,l,"3-[neighbour]"),yl(e,t,n),e[t].confidence=.2,!0}return null};const Ul=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Rl=function(e,t,n){const a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Ul(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Ul(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},Ql=function(e,t,n){0===e[t].tags.size&&(fl(e[t],"Noun","3-[fallback]"),yl(e,t,n),e[t].confidence=.1)};const Zl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,_l=(e,t,n)=>0!==t||e[1]?null:n,Xl={"Adj|Gerund":(e,t)=>Zl(e,t),"Adj|Noun":(e,t)=>Zl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Zl(e,t),"Adj|Present":(e,t)=>Zl(e,t),"Noun|Gerund":(e,t)=>Zl(e,t),"Noun|Verb":(e,t)=>Zl(e,t)||_l(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Zl(e,t)||_l(e,t,"PresentTense"),"Person|Noun":(e,t)=>Zl(e,t),"Person|Verb":(e,t)=>0!==t?Zl(e,t):null};var Yl=Xl;const eu="undefined"!=typeof process&&process.env?process.env:self.env||{},tu=/^(under|over|mis|re|un|dis|semi)-?/,nu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,a=null;return t.hasOwnProperty(n)&&(a=t[n]),a&&eu.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},au=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),r=a.find((e=>t[e]));return r&&eu.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${r}) `),r=t[r],r};var ru=function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(tu.test(l)&&!o[l]&&(l=l.replace(tu,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=nu(e[t+1],n.afterWords);return o=o||nu(e[t-1],n.beforeWords),o=o||au(e[t-1],n.beforeTags,r),o=o||au(e[t+1],n.afterTags,r),o}(e,t,i[o],a);Yl[o]&&(u=Yl[o](e,t)||u),u?(r([s],u,n,null,`3-[switch] (${o})`),yl(e,t,a)):eu.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},ou=function(e,t,n){let a=e[t+1];if(!a)return;let{prefixes:r}=n.one,o=e[t];!0===r[o.normal]&&(a.tags.has("Verb")&&(fl(o,"Verb","3-[prefix]"),fl(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(fl(o,"Adjective","3-[prefix]"),fl(o,"Prefix","3-[prefix]")))};const iu={tagSwitch:pl,checkSuffix:Gl,checkRegex:xl,checkCase:jl,checkPrefix:Tl,checkHyphen:ou,checkYear:Vl},su={checkAcronym:Ml,neighbours:ql,orgWords:Rl,nounFallback:Ql,switches:ru},lu=function(e,t,n){for(let a=0;a{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var du=function(e){const t=e.world,n=Object.keys(hu);e.docs.forEach((e=>{for(let a=0;a{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=Eu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Au},Iu=function(e,t,n){let[a,r]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const Gu=/'/;var Nu=function(e,t){let n=e[t].normal.split(Gu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Du=/'/;var xu=function(e,t){let n=e[t].normal.split(Du)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Tu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Cu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Ou={in:!0,by:!0,for:!0};var Bu=(e,t)=>{let n=e[t];if(Cu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let a=e[t+1];if(!a)return!0;if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return!("here"===e||"there"===e||"everywhere"===e||a.tags.has("Possessive")||a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Ou[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const zu=/'/,Vu=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Fu={d:(e,t)=>xu(e,t),t:(e,t)=>Tu(e,t),s:(e,t,n)=>Bu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Nu(e,t)},$u=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Su={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===zu.test(a[o].normal)&&([,i]=a[o].normal.split(zu));let s=null;Fu.hasOwnProperty(i)&&(s=Fu[i](a,o,t)),s&&(s=$u(s,e),Iu(n,[r,o],s),Vu(n[r],e,o,s.length))}}))}},Hu={compute:Su,api:ju,hooks:["contractionTwo"]};const Ju="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Lu=["i","we","they"];let Mu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Ju} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Ju} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Ju}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Lu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Lu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Lu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Wu=null;var Ku={postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;Wu=Wu||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(r);return o.cache(),o.sweep(Wu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const qu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ku,model:{two:{matches:Mu}},hooks:["postTagger"]};var Uu=qu,Ru=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter(((e,t)=>n.some((e=>a[t].has(e)))))},Qu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=Ru(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()},Zu={lib:{lazy:Qu}},_u=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},Xu=function(e,t,n){let a=e.split(/ /g).map((e=>`{${e}}`)).join(" "),r=this.match(a);return n&&(r=r.if(n)),r.has("#Verb")?_u(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let a=n(t);a&&e.replaceWith(a)}(r,t):r.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:a}=e.methods.two.transform.adjective;let r=t;e.has("#Comparative")?r=n(r,e.model):e.has("#Superlative")&&(r=a(r,e.model)),r&&e.replaceWith(r)}(r,t):this},Yu={api:function(e){e.prototype.swap=Xu}};return b.plugin(wu),b.plugin(Hu),b.plugin(Uu),b.plugin(Zu),b.plugin(Yu),b},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,a={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let a=this.update([t]);e(a,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach((e=>{a=a.concat(e.fullPointer)})),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let a=this.update([t]);return e(a,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let a=this.update([t]);return e(a,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let a=this.update([t]);return e(a,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,n,a);i.get=i.eq;var s=i;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,a=t||e.map(((e,t)=>[t]));return a.map((e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>a[t]=e.lib[t])),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:a}=n;let r=new t([]);if(r.world=n,"number"==typeof e&&(e=String(e)),!e)return r;if("string"==typeof e)return new t(a.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return r};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let a=m(e,l,p);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var b=f,y=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},E=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},I=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?E(n):(E(n),E([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!P(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||P(r.text)&&r.text.length>1&&(r.text=r.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let G=0;const N=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var D=function(e){let[t,n]=e.index||[0,0];G+=1,G=G>46655?0:G,t=t>46655?0:t,n=n>1294?0:n;let a=N(G.toString(36));a+=N(t.toString(36));let r=n.toString(36);return r=r.length<2?"0"+r:r,a+=r,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},T=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:T(e)?T(e[0])?e[0]:e:[]}(e,r);0!==d.length&&(d=function(e){return e.map((e=>(e.id=D(e),e)))}(d),n?(x(t.update([u]).firstTerm()),I(h,u,d,a)):(x(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(z,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,a);let r=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(r.docs[0]||[]).map((e=>Array.from(e.tags)));a.insertAfter(e),r.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction+").contractions().expand(),a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this}};var F=V,$=function(e,t){t.forEach((t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let r=n.fullPointer,o=a.fullPointer.reverse(),i=$(this.document,o);return r=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var L=J,M={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a)))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map(((e,t)=>[t])),r=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:a[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(r=M.byFreq(r),this.update(r.map((e=>e.pointer)))):"function"==typeof M[e]?(r=r.sort(M[e]),this.update(r.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var Q={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=R(this.document,e);return this.document=t,this.all()}var r;return this}},Z={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const _=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},B,F,H,L,U,Q,Z);var X=function(e){Object.assign(e.prototype,_)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const ae=/'/,re=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(ae)[0];if(re.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,pe=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],a=n.text.match(ge);return null!==a?!0===n.tags.has("PhoneNumber")||pe.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(me),null!==a?[a[1],"to",a[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,ye=new Set(["st","nd","rd","th","am","pm","max"]);var ve=function(e,t){let n=e[t].text.match(be);if(null!==n){let e=n[2].toLowerCase().trim();return ye.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ee={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];new Set(a.one.units||[]),n.forEach(((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(a[s].normal)&&([l,u]=a[s].normal.split(we));let c=je(o,a[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](a,s,t)),!c&&Ee.hasOwnProperty(l)&&(c=Ee[l](a,s)),c?(c=Ie(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(a[s].normal)?(c=fe(a,s),c&&(c=Ie(c,e),ne(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ve(a,s),c&&(c=Ie(c,e),ne(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ne={model:te,compute:{contractions:Ge},hooks:["contractions"]},De=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===xe.test(l)){let e=l.replace(xe,"");if(i.hasOwnProperty(e)&&e.length>3&&Te.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let r=e[a],o=(a=(a=a.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},ze={addWords:function(e){const t=this.world(),{methods:n,model:a}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},Ve={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Be}},compute:Oe,lib:ze,hooks:["lexicon"]},Fe=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const $e=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Le=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const Me={buildTrie:function(e){const t=Fe(e,this.world());return Le(t)}};Me.compile=Me.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Fe(e,this.world));var a;let r=He(this,n,t);return r=r.settle(),r}},lib:Me};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},qe=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Ke(n,t),Object.keys(a).forEach((e=>{a[e]=Ke(a[e],t)})),{ptrs:n,byGroup:a}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,Ze=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e};var _e={matchOne:function(e,t,n){const a=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=Ze(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=Ze(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ze(e,n,this.world);let o=this._cache||[],i=this.filter(((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Xe={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&r.push([t[0],0,t[1]])}));let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}})),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach(((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}})),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Ye=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},tt=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Ye(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Ye(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var at=nt;const rt=Object.assign({},_e,Xe,at);rt.lookBehind=rt.before,rt.lookBefore=rt.before,rt.lookAhead=rt.after,rt.lookAfter=rt.after,rt.notIf=rt.ifNo;var ot=function(e){Object.assign(e.prototype,rt)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let a=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?a.push(e):a=a.concat(e.split(lt))})),a=ct(a),a};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),pt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),yt=e=>e.substring(1),vt=e=>e.substring(0,e.length-1),wt=function(e){return e=yt(e),e=vt(e)},kt=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===ft(e)&&(n.end=!0,e=vt(e)),"^"===bt(e)&&(n.start=!0,e=yt(e)),("["===bt(e)||"]"===ft(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=vt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=vt(e)),"?"===ft(e)&&(n.optional=!0,e=vt(e)),"!"===bt(e)&&(n.negative=!0,e=yt(e)),"~"===bt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===bt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=yt(n.choices[0]);let a=n.choices.length-1;n.choices[a]=vt(n.choices[a]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===bt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===bt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===bt(e)&&">"===ft(e))return e=wt(e),n.chunk=pt(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===bt(e)?(n.tag=yt(e),n.tag=pt(n.tag),n):"@"===bt(e)?(n.method=yt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var Et=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&At.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter((e=>e)).reverse(),e.splice(t,1),r.forEach((n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},a=e.root;return n?n(a,t.model):[]},It=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Gt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Nt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(It(e,t)):"Adjective"===e.pos&&(n=n.concat(Gt(e,t))):(n=n.concat(jt(e,t)),n=n.concat(It(e,t)),n=n.concat(Gt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Dt=function(e){return e=function(e){let t=0,n=null;for(let a=0;a(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},xt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=ht(e);return a=a.map((e=>Pt(e,t))),a=Et(a,n),a=Nt(a,n),a=Dt(a),a};const Tt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Bt.test(e.pre)||zt.test(e.post),hasComma:e=>$t(e,","),hasPeriod:e=>!0===$t(e,".")&&!1===$t(e,"..."),hasExclamation:e=>$t(e,"!"),hasQuestionMark:e=>$t(e,"?")||$t(e,"¿"),hasEllipses:e=>$t(e,"..")||$t(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>$t(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Vt.test(e.post)||Vt.test(e.pre),hasDash:e=>Ft.test(e.post)||Ft.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Jt=Ht;let Lt=function(){};Lt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Jt[t.method]&&!0===Jt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Lt(e,t,n,a))):t.choices.some((t=>Lt(e,t,n,a))))}(e,t,n,a);return!0===t.negative?!r:r};var Mt=Lt;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Kt(e,e.t).length=a-e.t),e.t=a,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Mt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every(((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Mt(e.terms[a],t,a,e.phrase_length)}));return!0===a&&n.length>t&&(t=n.length),a}))&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Kt(e,e.t).length+=a),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null},Zt=function(e,t,n){let a=0;for(let r=e.t;ra||(e.t+=a,0))},_t=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);if(a.negative=!1,Mt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Mt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Mt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Zt(e,a,t[e.r+1]):(e.t+=1,!0)},Xt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Mt(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Mt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Yt=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Xt(e),a.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Yt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=Kt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0):null)},nn=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Wt(e,r)){if(e.negative){if(!_t(r))return null}else if(!0!==Mt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(!0!==e.optional)return null}else if(!tn(r))return null}else if(!tn(r))return null}else{if(e.negative&&e.anything)return null;if(!tn(r))return null}else if(!Qt(r))return null}else if(!Rt(r))return null}else if(!qt(r))return null}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach((e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]})),{pointer:o,groups:i}},an=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{a[t]=a[t]||[],a[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:a}};const rn=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let a=nn(e,t,0,e.length);return a?(a=rn(a,n),a):null};var sn=function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=an(i,r),i.ptrs.forEach((t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id})),i},ln={api:ot,methods:{one:{termMethods:Jt,parseMatch:xt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},a={};return Object.keys(t).forEach((r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)}))})),{starts:n,ends:a}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),a="";return this.docs.forEach((e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(r)&&(r=" "),r=r.replace(pn,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),r="-"===r?" ":r.replace(gn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&bn.test(r)||(r+=" "),a+=n+o+r})),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},vn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};vn.clean=vn.normal,vn.reduced=vn.root;var wn=vn;let kn=[],Pn=0;for(;Pn<64;)kn[Pn]=0|4294967296*Math.sin(++Pn%Math.PI);function An(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Pn=i=0;Pn>4]+kn[i]+~~o[Pn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const En={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const In=function(e,t){return Object.assign({},e,t)},Gn={text:e=>yn(e,{keepPunct:!0},!1),normal:e=>yn(e,In(wn.normal,{keepPunct:!0}),!1),implicit:e=>yn(e,In(wn.implicit,{keepPunct:!0}),!1),machine:e=>yn(e,jn,!1),root:e=>yn(e,In(jn,{form:"root"}),!1),hash:e=>An(yn(e,{keepPunct:!0},!1)),offset:e=>{let t=Gn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};Gn.sentences=Gn.sentence,Gn.clean=Gn.normal,Gn.reduced=Gn.root;const Nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},En,a)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let r={};return Object.keys(a).forEach((o=>{a[o]&&Gn[o]&&(r[o]=Gn[o](e,n,t))})),r})));var n,a;return"number"==typeof e?t[e]:t}};Nn.data=Nn.json;var Dn=Nn,xn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Tn="";var Cn={green:e=>""+e+Tn,red:e=>""+e+Tn,blue:e=>""+e+Tn,magenta:e=>""+e+Tn,cyan:e=>""+e+Tn,yellow:e=>""+e+Tn,black:e=>""+e+Tn,dim:e=>""+e+Tn,i:e=>""+e+Tn},On=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Cn.blue("\n ──────")),t.forEach((e=>{console.log(Cn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=Cn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=Cn.blue(" │ ")+Cn.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Cn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Bn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},zn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${Cn.blue(a[1])}${a[2]}`}(a,e.offset,t)})),console.log(a)}))},Vn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(xn(t),t):(!1!==e.tags&&(On(t),console.log("\n")),!0===e.chunks&&(Bn(t),console.log("\n")),!0===e.highlight&&(zn(t),console.log("\n")),t)};const Fn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var $n=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((a=>{e.match(a).fullPointer.forEach((e=>{n[e[3]]={fn:t[a],end:e[2]}}))})),n}(e,t),a="";return e.docs.forEach(((t,r)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Hn=Sn,Jn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},qn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=qn(t),a=[];return e.forEach((e=>{let[t]=e,r=n[t]||[];if(r=r.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===r.length)return void a.push({passthrough:e});r=r.sort(((e,t)=>e[1]-t[1]));let o=e;r.forEach(((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)}))})),a},Rn=function(e,t){let n=[];return e.forEach(((a,r)=>{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<20;a+=1){if(t[n-a]){let r=t[n-a].findIndex((t=>t.id===e));if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex((t=>t.id===e));if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex((e=>e.id===r));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},Qn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter((t=>Kn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);r.push(o)})),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Xn=function(e,t){let n=qn(t),a=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Kn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},ea=function(e,t){return e.map((e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e}))},ta={union:function(e){e=Yn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=ea(t,this.document),this.toView(t)}};ta.and=ta.union,ta.intersection=function(e){e=Yn(e,this);let t=Xn(this.fullPointer,e.fullPointer);return t=ea(t,this.document),this.toView(t)},ta.not=function(e){e=Yn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=ea(t,this.document),this.toView(t)},ta.difference=ta.not,ta.complement=function(){let e=this.all(),t=_n(e.fullPointer,this.fullPointer);return t=ea(t,this.document),this.toView(t)},ta.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Zn(e,[t])})),e=ea(e,this.document),this.update(e)};var na=function(e){Object.assign(e.prototype,ta)},aa={methods:Qn,api:na},ra=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:a}=this,{methods:r}=n;let o=r.one.bulkMatch(a,e,this.methods,t);!1!==t.tagger&&r.one.bulkTagger(o,a,this.world),o=o.map((e=>{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const oa=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ia=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(oa(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(oa(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=oa(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},sa=function(e,t){e=ia(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let a=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:a}},la=function(e,t){return e.map(((n,a)=>{let r=[];Object.keys(t).forEach((n=>{e[a].has(n)&&(r=r.concat(t[n]))}));let o={};return r=r.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),r}))},ua=function(e,t){return e.map(((e,n)=>{let a=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>a.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>a.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>a.has(e))).length>=e.minWant))}))},ca=function(e,t,n,a,r){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===r.matchOne))return[o[0]]}return o},ha=function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=la(r,t.hooks);return o=ua(o,r),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let a=t[n].length;return e=e.filter((e=>a>=e.minWords)),e}))}(o,e),ca(o,e,r,n,a)},da=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===da(u,e.tag,a))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${r}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,r),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},ma={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ra,methods:{one:{buildNet:sa,bulkMatch:ha,bulkTagger:ga}}};const pa=/ /,fa=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},ba=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),pa.test(t))!function(e,t,n,a){let r=t.split(pa);e.forEach(((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),ba(e,o,n,a))}))}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nya(e,t,n,a)))};var va=ya,wa=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>ka({id:e}))),t}return[ka({id:e})]}(e))})),n=n.filter((e=>e));let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),a.push(n)}))}return n},ja=e=>"[object Array]"===Object.prototype.toString.call(e),Ia=e=>(e=e||"").trim(),Ga=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Pa.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Aa(e)})}));let a=function(e){let t={children:[]};return e.forEach(((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=ka({});return e.forEach((e=>{if((e=ka(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ea(t=e).forEach(ka),t);var t},Na=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Ea(e).forEach(((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"})),a},Da=function(e){let t=Ea(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},xa={text:Na,txt:Na,array:Da,flat:Da},Ta=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Na(e,!0)),null):xa.hasOwnProperty(t)?xa[t](e):e},Ca=e=>{Ea(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Oa=/\//;let Ba=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Ia(e),!Oa.test(e)){let t=this.json.children.find((t=>t.id===e));return new Ba(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!a)return null;e=a}return e})(this.json,e)||ka({});return new Ba(t)}add(e,t={}){if(ja(e))return e.forEach((e=>this.add(Ia(e),t))),this;e=Ia(e);let n=ka({id:e,props:t});return this.json.children.push(n),new Ba(n)}remove(e){return e=Ia(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ea(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ea(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ea(this.json)}fillDown(){var e;return e=this.json,Ea(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else ja(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Ca(this.json);let e=Ea(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Ca(this.json),Ta(this.json,e)}debug(){return Ca(this.json),Ta(this.json,"debug"),this}};const za=function(e){let t=Ga(e);return new Ba(t)};za.prototype.plugin=function(e){e(this)};var Va={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Fa=function(e){if(Va.hasOwnProperty(e.id))return Va[e.id];if(Va.hasOwnProperty(e.is))return Va[e.is];let t=e._cache.parents.find((e=>Va[e]));return Va[t]};var $a=function(e){const t={};return e.forEach((e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:Fa(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sa=function(e){return e?"string"==typeof e?[e]:e:[]};var Ha=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sa(e[t].children),e[t].not=Sa(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Ja=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Ha(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}}));return za(t).cache().fillDown().out("array")}(Object.assign({},t,e));return $a(n)},La={one:{setTag:va,unTag:wa,addTags:Ja}};const Ma=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Wa={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Ma(e)?e.forEach((e=>r.one.setTag(a,e,i,n,t))):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Ma(e)?e.forEach((e=>a.one.unTag(n,e,i))):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach(((e,t)=>{e.forEach(((e,r)=>{n.find((t=>e.tags.has(t)))&&a.push([t,r,r+1])}))}));let r=this.update(a);return this.difference(r)}};var Ka=Wa,qa=function(e){Object.assign(e.prototype,Ka)},Ua={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const Ra=new Set(["Auxiliary","Possessive"]);var Qa=function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Ra.has(e)||!t.hasOwnProperty(n))return 1;if(Ra.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})),e}(t,a)}))}))},Za={model:{one:{tagSet:{}}},compute:{tagRank:Qa},methods:La,api:qa,lib:Ua};const _a=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Xa=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Ya=/((?:\r?\n|\r)+)/;var er=function(e){let t=[],n=e.split(Ya);for(let e=0;e0&&(r.push(o),e[t]="")}return r};const or={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ir=RegExp("("+Object.keys(or).join("|")+")","g"),sr=RegExp("("+Object.values(or).join("|")+")","g"),lr=function(e){if(!e)return!1;let t=e.match(sr);return null!==t&&1===t.length};var ur=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var jr=function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split(Ar);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wr(n),n=yr(n),n=n.filter((e=>e)),n};let Ir=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Gr=new RegExp(`^[${["%","_"].join("")}]+`,"");const Nr=/[\p{Punctuation}\s]+$/u,Dr=/^[\p{Punctuation}\s]+/u,xr=/['’]/,Tr=/^[a-z]\.([a-z]\.)+/i,Cr=/^'[0-9]{2}/;var Or=function(e){let t=e,n="",a="";return e=e.replace(Dr,(t=>{let a=t.match(Ir);return a?(n=t.replace(Ir,""),a):"'"===n&&Cr.test(e)?(n="",t):(n=t,"")})),e=e.replace(Nr,(r=>{let o=r.match(Gr);return o?(a=r.replace(Gr,""),o):xr.test(r)&&/[sn]['’]$/.test(t)&&!1===xr.test(n)?(a=a.replace(xr,""),"'"):!0===Tr.test(e)?(a=r.replace(/^\./,""),"."):(a=r,"")})),""===e&&(t=t.replace(/ *$/,(e=>(a=e||"",""))),e=t,n=""),{str:e,pre:n,post:a}},Br=function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach(((e,t)=>{n[e]&&(a[t]=n[e])})),a.join("")},zr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Vr=/([A-Z]\.)+[A-Z]?,?$/,Fr=/^[A-Z]\.,?$/,$r=/[A-Z]{2,}('s|,)?$/,Sr=/([a-z]\.)+[a-z]\.?$/;var Hr=function(e){return function(e){return!0===Vr.test(e)||!0===Sr.test(e)||!0===Fr.test(e)||!0===$r.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Jr=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=zr(a),a=n(a,t),a=Hr(a),e.normal=a},Lr=function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",t).map((e=>{let n=o(e,a);return n=n.map(i),n.forEach((e=>{Jr(e,t)})),n})),e};const Mr=/[ .][A-Z]\.? *$/i,Wr=/(?:\u2026|\.{2,}) *$/,Kr=/\p{L}/u,qr=/^[A-Z]\. $/;var Ur={one:{killUnicode:Br,tokenize:{splitSentences:pr,isSentence:function(e,t){if(!1===Kr.test(e))return!1;if(!0===Mr.test(e))return!1;if(3===e.length&&qr.test(e))return!1;if(!0===Wr.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),a=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(a)},splitTerms:jr,splitWhitespace:e=>{let{str:t,pre:n,post:a}=Or(e);return{text:t,pre:n,post:a,tags:new Set}},fromString:Lr}}},Rr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},Zr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qr[t]=!0,Zr[t]="Abbreviation",void 0!==e[1]&&(Zr[t]=[Zr[t],e[1]])}))}));var _r=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Xr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Yr={};Object.keys(Xr).forEach((function(e){Xr[e].split("").forEach((function(t){Yr[t]=e}))}));const eo=/\//,to=/[a-z]\.[a-z]/i,no=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),eo.test(n)&&!to.test(n)&&!no.test(n)){let t=n.split(eo);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ro=/^\p{Letter}+-\p{Letter}+$/u;var oo=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ro.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},io=function(e){let t=e.docs,n={};for(let e=0;eco(e,ao),machine:e=>co(e,oo),normal:e=>co(e,Jr),freq:io,offset:so,index:lo,wordCount:uo},methods:Ur,model:{one:{aliases:Rr,abbreviations:Qr,prefixes:_r,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Zr,unicode:Yr}},hooks:["alias","machine","index","id"]},go={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const mo=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var po=function(e){e.prototype.autoFill=mo},fo=function(e,t,n){let a={},r=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]})),a};const bo={safe:!0,min:3};var yo={typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},bo,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=fo(e,t,this.world());return Object.keys(r).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]})),this}},vo={model:{one:{typeahead:{}}},api:po,lib:yo,compute:go,hooks:["typeahead"]};b.extend(ee),b.extend(Wn),b.extend(ln),b.extend(aa),b.extend(Za),b.plugin(Ne),b.extend(ho),b.plugin(k),b.extend(We),b.extend(vo),b.extend(Ve),b.extend(ma);var wo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ko={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Po=36,Ao="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Eo=Ao.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var jo=function(e){if(void 0!==Eo[e])return Eo[e];let t=0,n=1,a=Po,r=1;for(;n=0;n--,r*=Po){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},Io=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const a=No(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Do(ko[e]);Oo.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Co(t,Vo);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Bo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Bo[e]="Emoticon")),delete Bo[""],delete Bo.null,delete Bo[" "];const Fo="Adjective";var $o={beforeTags:{Determiner:Fo,Possessive:Fo},afterTags:{Adjective:Fo},beforeWords:{seem:Fo,seemed:Fo,seems:Fo,feel:Fo,feels:Fo,felt:Fo,appear:Fo,appears:Fo,appeared:Fo,also:Fo,over:Fo,under:Fo,too:Fo,it:Fo,but:Fo,still:Fo,really:Fo,quite:Fo,well:Fo,very:Fo,deeply:Fo,profoundly:Fo,extremely:Fo,so:Fo,badly:Fo,mostly:Fo,totally:Fo,awfully:Fo,rather:Fo,nothing:Fo,something:Fo,anything:Fo,not:Fo,me:Fo},afterWords:{too:Fo,also:Fo,or:Fo}};const So="Gerund";var Ho={beforeTags:{Adverb:So,Preposition:So,Conjunction:So},afterTags:{Adverb:So,Possessive:So,Person:So,Pronoun:So,Determiner:So,Copula:So,Preposition:So,Conjunction:So,Comparative:So},beforeWords:{been:So,keep:So,continue:So,stop:So,am:So,be:So,me:So,began:So,start:So,starts:So,started:So,stops:So,stopped:So,help:So,helps:So,avoid:So,avoids:So,love:So,loves:So,loved:So,hate:So,hates:So,hated:So},afterWords:{you:So,me:So,her:So,him:So,them:So,their:So,it:So,this:So,there:So,on:So,about:So,for:So}},Jo={beforeTags:Object.assign({},$o.beforeTags,Ho.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},$o.afterTags,Ho.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},$o.beforeWords,Ho.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},$o.afterWords,Ho.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Lo="Singular";var Mo={beforeTags:{Determiner:Lo,Possessive:Lo,Acronym:Lo,Noun:Lo,Adjective:Lo,PresentTense:Lo,Gerund:Lo,PastTense:Lo,Infinitive:Lo,Date:Lo},afterTags:{Value:Lo,Modal:Lo,Copula:Lo,PresentTense:Lo,PastTense:Lo,Demonym:Lo},beforeWords:{the:Lo,with:Lo,without:Lo,of:Lo,for:Lo,any:Lo,all:Lo,on:Lo,cut:Lo,cuts:Lo,save:Lo,saved:Lo,saves:Lo,make:Lo,makes:Lo,made:Lo,minus:Lo,plus:Lo,than:Lo,another:Lo,versus:Lo,neither:Lo,favorite:Lo,best:Lo,daily:Lo,weekly:Lo,linear:Lo,binary:Lo,mobile:Lo,lexical:Lo,technical:Lo,computer:Lo,scientific:Lo,formal:Lo},afterWords:{of:Lo,system:Lo,aid:Lo,method:Lo,utility:Lo,tool:Lo,reform:Lo,therapy:Lo,philosophy:Lo,room:Lo,authority:Lo,says:Lo,said:Lo,wants:Lo,wanted:Lo}};const Wo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ko={beforeTags:Object.assign({},$o.beforeTags,Mo.beforeTags,Wo.beforeTags),afterTags:Object.assign({},$o.afterTags,Mo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Mo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Mo.afterWords)};const qo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Uo={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ro={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Qo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Zo={beforeTags:Object.assign({},$o.beforeTags,qo),afterTags:Object.assign({},$o.afterTags,Uo),beforeWords:Object.assign({},$o.beforeWords,Ro),afterWords:Object.assign({},$o.afterWords,Qo)};const _o="Infinitive";var Xo={beforeTags:{Modal:_o,Adverb:_o,Negative:_o,Plural:_o},afterTags:{Determiner:_o,Adverb:_o,Possessive:_o,Preposition:_o},beforeWords:{i:_o,we:_o,you:_o,they:_o,to:_o,please:_o,will:_o,have:_o,had:_o,would:_o,could:_o,should:_o,do:_o,did:_o,does:_o,can:_o,must:_o,us:_o,me:_o,he:_o,she:_o,it:_o,being:_o},afterWords:{the:_o,me:_o,you:_o,him:_o,her:_o,them:_o,it:_o,a:_o,an:_o,up:_o,down:_o,by:_o,out:_o,off:_o,under:_o,when:_o,all:_o,to:_o,because:_o,although:_o,before:_o,how:_o,otherwise:_o,together:_o,though:_o,yet:_o}};const Yo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ei={beforeTags:Object.assign({},$o.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},$o.afterTags,Xo.afterTags,Yo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Xo.afterWords,{to:void 0})};const ti={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ni={},ai={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ri={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var oi={beforeTags:Object.assign({},Ho.beforeTags,Mo.beforeTags,ti),afterTags:Object.assign({},Ho.afterTags,Mo.afterTags,ni),beforeWords:Object.assign({},Ho.beforeWords,Mo.beforeWords,ai),afterWords:Object.assign({},Ho.afterWords,Mo.afterWords,ri)},ii={beforeTags:Object.assign({},Xo.beforeTags,Mo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xo.afterTags,Mo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xo.beforeWords,Mo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xo.afterWords,Mo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const si="Person";var li={beforeTags:{Honorific:si,Person:si,Preposition:si},afterTags:{Person:si,ProperNoun:si,Verb:si},ownTags:{ProperNoun:si},beforeWords:{hi:si,hey:si,yo:si,dear:si,hello:si},afterWords:{said:si,says:si,told:si,tells:si,feels:si,felt:si,seems:si,thinks:si,thought:si,spends:si,spendt:si,plays:si,played:si,sing:si,sang:si,learn:si,learned:si,wants:si,wanted:si}};const ui="Month",ci={beforeTags:{Date:ui,Value:ui},afterTags:{Date:ui,Value:ui},beforeWords:{by:ui,in:ui,on:ui,during:ui,after:ui,before:ui,between:ui,until:ui,til:ui,sometime:ui,of:ui,this:ui,next:ui,last:ui,previous:ui,following:ui},afterWords:{sometime:ui,in:ui,of:ui,until:ui,the:ui}};var hi={beforeTags:Object.assign({},li.beforeTags,ci.beforeTags),afterTags:Object.assign({},li.afterTags,ci.afterTags),beforeWords:Object.assign({},li.beforeWords,ci.beforeWords),afterWords:Object.assign({},li.afterWords,ci.afterWords)};const di={Place:"Place"},gi={Place:"Place",Abbreviation:"Place"},mi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},pi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let fi="Unit";const bi="Honorific";let yi={first:bi,general:bi,royal:bi,vice:bi,rear:bi,major:bi};const vi={"Adj|Gerund":Jo,"Adj|Noun":Ko,"Adj|Past":Zo,"Adj|Present":ei,"Noun|Verb":ii,"Noun|Gerund":oi,"Person|Noun":{beforeTags:Object.assign({},Mo.beforeTags,li.beforeTags),afterTags:Object.assign({},Mo.afterTags,li.afterTags),beforeWords:Object.assign({},Mo.beforeWords,li.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Mo.afterWords,li.afterWords)},"Person|Date":hi,"Person|Verb":{beforeTags:Object.assign({},li.beforeTags,Xo.beforeTags),afterTags:Object.assign({},li.afterTags,Xo.afterTags),beforeWords:Object.assign({},li.beforeWords,Xo.beforeWords),afterWords:Object.assign({},li.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},di,li.beforeTags),afterTags:Object.assign({},gi,li.afterTags),beforeWords:Object.assign({},mi,li.beforeWords),afterWords:Object.assign({},pi,li.afterWords)},"Unit|Noun":{beforeTags:{Value:fi},afterTags:{},beforeWords:{per:fi,every:fi,each:fi,square:fi,cubic:fi,sq:fi,metric:fi},afterWords:{per:fi,squared:fi,cubed:fi,long:fi}},"Honorific|Noun":{beforeTags:{Honorific:bi,ProperNoun:bi,Ordinal:bi},afterTags:{Person:bi,ProperNoun:bi},beforeWords:Object.assign({},yi,{honorable:bi,honourable:bi,worship:bi,excellency:bi,majesty:bi,right:bi}),afterWords:yi}},wi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};vi["Plural|Verb"]={beforeWords:wi(vi["Noun|Verb"].beforeWords,{}),afterWords:wi(vi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:wi(vi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:wi(vi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ki=vi;const Pi="Adjective",Ai="Infinitive",Ei="PresentTense",ji="Singular",Ii="PastTense",Gi="Adverb",Ni="Plural",Di="Actor",xi="Verb",Ti="Noun",Ci="LastName",Oi="Modal",Bi="Participle";var zi=[null,null,{ea:ji,ia:Ti,ic:Pi,ly:Gi,"'n":xi,"'t":xi},{oed:Ii,ued:Ii,xed:Ii," so":Gi,"'ll":Oi,"'re":"Copula",azy:Pi,eer:Ti,end:xi,ped:Ii,ffy:Pi,ify:Ai,ing:"Gerund",ize:Ai,ibe:Ai,lar:Pi,mum:Pi,nes:Ei,nny:Pi,ous:Pi,que:Pi,rol:ji,sis:ji,ogy:ji,oid:ji,ian:ji,zes:Ei,eld:Ii,ken:Bi,ven:Bi,ten:Bi,ect:Ai,ict:Ai,ign:Ai,ful:Pi,bal:Pi},{amed:Ii,aped:Ii,ched:Ii,lked:Ii,rked:Ii,reed:Ii,nded:Ii,mned:Pi,cted:Ii,dged:Ii,ield:ji,akis:Ci,cede:Ai,chuk:Ci,czyk:Ci,ects:Ei,ends:xi,enko:Ci,ette:ji,wner:ji,fies:Ei,fore:Gi,gate:Ai,gone:Pi,ices:Ni,ints:Ni,ruct:Ai,ines:Ni,ions:Ni,less:Pi,llen:Pi,made:Pi,nsen:Ci,oses:Ei,ould:Oi,some:Pi,sson:Ci,tion:ji,tage:Ti,ique:ji,tive:Pi,tors:Ti,vice:ji,lier:ji,fier:ji,wned:Ii,gent:ji,tist:ji,pist:ji,rist:ji,mist:ji,yist:ji,vist:ji,lite:ji,site:ji,rite:ji,mite:ji,bite:ji,mate:ji,date:ji,ndal:ji,vent:ji,uist:ji,gist:ji,note:ji,cide:ji,wide:Pi,vide:Ai,ract:Ai,duce:Ai,pose:Ai,eive:Ai,lyze:Ai,lyse:Ai,iant:Pi,nary:Pi},{elist:ji,holic:ji,phite:ji,tized:Ii,urned:Ii,eased:Ii,ances:Ni,bound:Pi,ettes:Ni,fully:Gi,ishes:Ei,ities:Ni,marek:Ci,nssen:Ci,ology:Ti,osome:ji,tment:ji,ports:Ni,rough:Pi,tches:Ei,tieth:"Ordinal",tures:Ni,wards:Gi,where:Gi,archy:Ti,pathy:Ti,opoly:Ti,embly:Ti,phate:Ti,ndent:ji,scent:ji,onist:ji,anist:ji,alist:ji,olist:ji,icist:ji,ounce:Ai,iable:Pi,borne:Pi,gnant:Pi,inant:Pi,igent:Pi,atory:Pi,rient:ji,dient:ji},{auskas:Ci,parent:ji,cedent:ji,ionary:ji,cklist:ji,keeper:Di,logist:Di,teenth:"Value"},{opoulos:Ci,borough:"Place",sdottir:Ci}];const Vi="Adjective",Fi="Noun",$i="Verb";var Si=[null,null,{},{neo:Fi,bio:Fi,"de-":$i,"re-":$i,"un-":$i},{anti:Fi,auto:Fi,faux:Vi,hexa:Fi,kilo:Fi,mono:Fi,nano:Fi,octa:Fi,poly:Fi,semi:Vi,tele:Fi,"pro-":Vi,"mis-":$i,"dis-":$i,"pre-":Vi},{anglo:Fi,centi:Fi,ethno:Fi,ferro:Fi,grand:Fi,hepta:Fi,hydro:Fi,intro:Fi,macro:Fi,micro:Fi,milli:Fi,nitro:Fi,penta:Fi,quasi:Vi,radio:Fi,tetra:Fi,"omni-":Vi,"post-":Vi},{pseudo:Vi,"extra-":Vi,"hyper-":Vi,"inter-":Vi,"intra-":Vi,"deca-":Vi},{electro:Fi}];const Hi="Adjective",Ji="Infinitive",Li="PresentTense",Mi="Singular",Wi="PastTense",Ki="Adverb",qi="Expression",Ui="Actor",Ri="Verb",Qi="Noun",Zi="LastName";var _i={a:[[/.[aeiou]na$/,Qi,"tuna"],[/.[oau][wvl]ska$/,Zi],[/.[^aeiou]ica$/,Mi,"harmonica"],[/^([hyj]a+)+$/,qi,"haha"]],c:[[/.[^aeiou]ic$/,Hi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Wi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Wi,"rammed"],[/.[aeiou][sg]hed$/,Wi,"gushed"],[/.[aeiou]red$/,Wi,"hired"],[/.[aeiou]r?ried$/,Wi,"hurried"],[/[^aeiou]ard$/,Mi,"steward"],[/[aeiou][^aeiou]id$/,Hi,""],[/.[vrl]id$/,Hi,"livid"],[/..led$/,Wi,"hurled"],[/.[iao]sed$/,Wi,""],[/[aeiou]n?[cs]ed$/,Wi,""],[/[aeiou][rl]?[mnf]ed$/,Wi,""],[/[aeiou][ns]?c?ked$/,Wi,"bunked"],[/[aeiou]gned$/,Wi],[/[aeiou][nl]?ged$/,Wi],[/.[tdbwxyz]ed$/,Wi],[/[^aeiou][aeiou][tvx]ed$/,Wi],[/.[cdflmnprstv]ied$/,Wi,"emptied"]],e:[[/.[lnr]ize$/,Ji,"antagonize"],[/.[^aeiou]ise$/,Ji,"antagonise"],[/.[aeiou]te$/,Ji,"bite"],[/.[^aeiou][ai]ble$/,Hi,"fixable"],[/.[^aeiou]eable$/,Hi,"maleable"],[/.[ts]ive$/,Hi,"festive"],[/[a-z]-like$/,Hi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Hi,"cornish"],[/.v[iy]ch$/,Zi,"..ovich"],[/^ug?h+$/,qi,"ughh"],[/^uh[ -]?oh$/,qi,"uhoh"],[/[a-z]-ish$/,Hi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Zi,"polish-male"]],k:[[/^(k){2}$/,qi,"kkkk"]],l:[[/.[gl]ial$/,Hi,"familial"],[/.[^aeiou]ful$/,Hi,"fitful"],[/.[nrtumcd]al$/,Hi,"natal"],[/.[^aeiou][ei]al$/,Hi,"familial"]],m:[[/.[^aeiou]ium$/,Mi,"magnesium"],[/[^aeiou]ism$/,Mi,"schism"],[/^[hu]m+$/,qi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Hi,"republican"],[/[^aeiou]ician$/,Ui,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,qi,"noooo"],[/^(yo)+$/,qi,"yoo"],[/^wo{2,}[pt]?$/,qi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Mi],[/[^i]fer$/,Ji],[/.[^aeiou][ao]pher$/,Ui],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Hi],[/[aeiou].*ist$/,Hi],[/^[a-z]et$/,Ri]],s:[[/.[^aeiou]ises$/,Li],[/.[rln]ates$/,Li],[/.[^z]ens$/,Ri],[/.[lstrn]us$/,Mi],[/.[aeiou]sks$/,Li],[/.[aeiou]kes$/,Li],[/[aeiou][^aeiou]is$/,Mi],[/[a-z]'s$/,Qi],[/^yes+$/,qi]],v:[[/.[^aeiou][ai][kln]ov$/,Zi]],y:[[/.[cts]hy$/,Hi],[/.[st]ty$/,Hi],[/.[tnl]ary$/,Hi],[/.[oe]ry$/,Mi],[/[rdntkbhs]ly$/,Ki],[/.(gg|bb|zz)ly$/,Hi],[/...lly$/,Ki],[/.[gk]y$/,Hi],[/[bszmp]{2}y$/,Hi],[/.[ai]my$/,Hi],[/[ea]{2}zy$/,Hi],[/.[^aeiou]ity$/,Mi]]};const Xi="Verb",Yi="Noun";var es={leftTags:[["Adjective",Yi],["Possessive",Yi],["Determiner",Yi],["Adverb",Xi],["Pronoun",Xi],["Value",Yi],["Ordinal",Yi],["Modal",Xi],["Superlative",Yi],["Demonym",Yi],["Honorific","Person"]],leftWords:[["i",Xi],["first",Yi],["it",Xi],["there",Xi],["not",Xi],["because",Yi],["if",Yi],["but",Yi],["who",Xi],["this",Yi],["his",Yi],["when",Yi],["you",Xi],["very","Adjective"],["old",Yi],["never",Xi],["before",Yi],["a","Singular"],["the",Yi],["been",Xi]],rightTags:[["Copula",Yi],["PastTense",Yi],["Conjunction",Yi],["Modal",Yi]],rightWords:[["there",Xi],["me",Xi],["man","Adjective"],["only",Xi],["him",Xi],["it",Xi],["were",Yi],["took",Yi],["himself",Xi],["went",Yi],["who",Yi],["jr","Person"]]},ts={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},ns={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},as={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},rs={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},os={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const is=/^.([0-9]+)/;var ss=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(is);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(is,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)})),t},us=/^([0-9]+)/,cs=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(us);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(us,"")]}(n[0],n[1])}))};var hs=function(e={}){return(e=Object.assign({},e)).rules=cs(e.rules),e.rules=ls(e.rules),e.rev&&(e.rev=cs(e.rev),e.rev=ls(e.rev)),e.exceptions=cs(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},ds=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const gs=hs({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ms=hs(rs),ps=hs(ns),fs=hs(as),bs=ds(gs),ys=ds(ms),vs=ds(ps),ws=ds(fs),ks=hs(ts),Ps=hs(os);var As={fromPast:gs,fromPresent:ms,fromGerund:ps,fromParticiple:fs,toPast:bs,toPresent:ys,toGerund:vs,toParticiple:ws,toComparative:ks,toSuperlative:Ps,fromComparative:ds(ks),fromSuperlative:ds(Ps)},Es=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),js=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Is=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce(((e,t)=>(e[r[t]]=t,e)),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(Ns[t].forEach((n=>e[n]=t)),e)),{});var Ds=Ns,xs=function(e){let t=e.substring(e.length-3);if(!0===Ds.hasOwnProperty(t))return Ds[t];let n=e.substring(e.length-2);return!0===Ds.hasOwnProperty(n)?Ds[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ts={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Cs=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=xs(e)),Ts.hasOwnProperty(e))c=Ts[e];else if("Participle"===n)c=ss(l,i);else if("PastTense"===n)c=ss(l,a);else if("PresentTense"===n)c=ss(l,r);else{if("Gerund"!==n)return e;c=ss(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Os=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ss(i,n),PresentTense:ss(i,a),Gerund:ss(i,r),FutureTense:"will "+e},u=ss(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Bs={toInfinitive:Cs,conjugate:Os,all:function(e,t){let n=Os(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},zs=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r))return e.slice(0,n-a)+t[r.length][r]}return null};const Vs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Fs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var $s=function(e){if(Fs.hasOwnProperty(e))return Fs[e];let t=zs(e,Vs);return t||e+"ly"};const Ss=function(e,t){const n=t.two.models.toSuperlative;return ss(e,n)},Hs=function(e,t){const n=t.two.models.toComparative;return ss(e,n)},Js="ically",Ls=new Set(["analyt"+Js,"chem"+Js,"class"+Js,"clin"+Js,"crit"+Js,"ecolog"+Js,"electr"+Js,"empir"+Js,"frant"+Js,"grammat"+Js,"ident"+Js,"ideolog"+Js,"log"+Js,"mag"+Js,"mathemat"+Js,"mechan"+Js,"med"+Js,"method"+Js,"method"+Js,"mus"+Js,"phys"+Js,"phys"+Js,"polit"+Js,"pract"+Js,"rad"+Js,"satir"+Js,"statist"+Js,"techn"+Js,"technolog"+Js,"theoret"+Js,"typ"+Js,"vert"+Js,"whims"+Js]),Ms=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ws=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ks={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var qs=function(e){return e.endsWith("ly")?Ls.has(e)?e.replace(/ically/,"ical"):Ws.has(e)?null:Ks.hasOwnProperty(e)?Ks[e]:zs(e,Ms)||e:null};const Us=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Rs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Qs=new Set(["terrible","annoying"]);var Zs={toSuperlative:Ss,toComparative:Hs,toAdverb:$s,toNoun:function(e){if(Rs.hasOwnProperty(e))return Rs[e];if(Qs.has(e))return null;let t=zs(e,Us);return t||e+"ness"},fromAdverb:qs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ss(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ss(e,n)},all:function(e,t){let n=[e];return n.push(Ss(e,t)),n.push(Hs(e,t)),n.push($s(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},_s={noun:Gs,verb:Bs,adjective:Zs},Xs={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,a);r[s]||(t[s]=t[s]||"Superlative");let l=i(e,a);r[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.noun.toPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verb.conjugate(e,a);Object.entries(o).forEach((e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,a);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Ys=function(e,t){const{methods:n,model:a}=t;let r={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Xs.hasOwnProperty(i)&&Xs[i](t,r,n,a),r[t]=r[t]||i})),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},el=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let a=0;e.forEach(((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))return!1;let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)})),ae.endsWith(t))):"s"===t&&!al.find((t=>e.endsWith(t)))},ol={two:{quickSplit:el,expandLexicon:Ys,transform:_s,looksPlural:rl}},il=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const sl=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e)),{})};var ll=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=sl(n,"Infinitive","PastTense"),Object.assign(s,l),l=sl(a,"Infinitive","Verb"),Object.assign(s,l),l=sl(r,"Infinitive","Gerund"),Object.assign(s,l),l=sl(o,"Adjective","Superlative"),Object.assign(s,l),l=sl(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let ul={two:{models:As}};const cl={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},hl=function(e,t){const n={model:t,methods:ol};let{lex:a,_multi:r}=ol.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},dl=function(e,t,n){let a=Os(e,ul);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},gl=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach((r=>{const o=e[r];if(n[r]=cl[o],"Noun|Verb"!==o&&"Person|Verb"!==o||dl(r,a,!1),"Adj|Present"===o&&(dl(r,a,!0),function(e,t,n){let a=Ss(e,n);t[a]=t[a]||"Superlative";let r=Hs(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Cs(r,ul,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Cs(r,ul,"PastTense");a[e]||(n[e]="Infinitive")}})),t=hl(n,t)};var ml=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=hl(e.one.lexicon,e)).one.lexicon,e),e=gl(e.two.switches,e),e=ll(e),e=il(e)};let pl={one:{_multiCache:{},lexicon:Bo},two:{irregularPlurals:wo,models:As,suffixPatterns:zi,prefixPatterns:Si,endsWith:_i,neighbours:es,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:zo,clues:ki,uncountable:{},orgWords:Es}};pl=ml(pl);var fl=pl;const bl=/^(under|over|mis|re|un|dis|semi)-?/;var yl=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(bl.test(r.normal)){let e=r.normal.replace(bl,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},vl=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const wl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var kl=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t)))||(rl(e.normal)?vl(e,"Plural","3-plural-guess"):vl(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=xs(e.normal);t&&vl(e,t,"3-verb-tense-guess")}}(a)};const Pl=/^\p{Lu}[\p{Ll}'’]/u,Al=/[0-9]/,El=["Date","Month","WeekDay","Unit"],jl=/^[IVXLCDM]{2,}$/,Il=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Gl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Nl=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===Pl.test(o)&&!1===Al.test(o)?El.find((e=>a.tags.has(e)))?null:(kl(e,t,n),a.tags.has("Noun")||a.tags.clear(),vl(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&jl.test(o)&&Il.test(o)&&!Gl[a.normal]?(vl(a,"RomanNumeral","2-xvii"),!0):null};const Dl=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null};var xl=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=Dl(a.normal,n.two.suffixPatterns);if(null!==e)return vl(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=Dl(a.implicit,n.two.suffixPatterns),null!==e))return vl(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const Tl=/['‘’‛‵′`´]/,Cl=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return vl(a,e,"2-prefix"),a.confidence=.5,!0}return null};const zl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Vl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!zl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Fl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},$l=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Sl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(Vl(r)||Vl(o))return vl(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Fl(r)||Fl(o))return vl(n,"Year","2-tagYear-close");if($l(e[t-2])||$l(e[t+2]))return vl(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return vl(n,"Year","2-tagYear-noun")}}}return null};const Hl=/^[A-Z]('s|,)?$/,Jl=/^[A-Z-]+$/,Ll=/([A-Z]\.)+[A-Z]?,?$/,Ml=/[A-Z]{2,}('s|,)?$/,Wl=/([a-z]\.)+[a-z]\.?$/,Kl={I:!0,A:!0};var ql=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Jl.test(n)||n.length>5||Kl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ll.test(n)&&!0!==Wl.test(n)&&!0!==Hl.test(n)&&!0!==Ml.test(n))}(a,n)?(a.tags.clear(),vl(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Kl.hasOwnProperty(a.text)&&Hl.test(a.text)?(a.tags.clear(),vl(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(vl(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Jl.test(a.text)&&a.text.length<=6?(vl(a,"Acronym","3-titlecase-acronym"),!0):null};const Ul=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Rl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ql=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ul(e[t-1],r),l=l||Ul(e[t+1],o),l=l||Rl(e[t-1],a),l=l||Rl(e[t+1],i),l)return vl(s,l,"3-[neighbour]"),kl(e,t,n),e[t].confidence=.2,!0}return null};const Zl=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var _l=function(e,t,n){const a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Zl(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Zl(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},Xl=function(e,t,n){0===e[t].tags.size&&(vl(e[t],"Noun","3-[fallback]"),kl(e,t,n),e[t].confidence=.1)};const Yl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,eu=(e,t,n)=>0!==t||e[1]?null:n,tu={"Adj|Gerund":(e,t)=>Yl(e,t),"Adj|Noun":(e,t)=>Yl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Yl(e,t),"Adj|Present":(e,t)=>Yl(e,t),"Noun|Gerund":(e,t)=>Yl(e,t),"Noun|Verb":(e,t)=>Yl(e,t)||eu(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Yl(e,t)||eu(e,t,"PresentTense"),"Person|Noun":(e,t)=>Yl(e,t),"Person|Verb":(e,t)=>0!==t?Yl(e,t):null};var nu=tu;const au="undefined"!=typeof process&&process.env?process.env:self.env||{},ru=/^(under|over|mis|re|un|dis|semi)-?/,ou=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,a=null;return t.hasOwnProperty(n)&&(a=t[n]),a&&au.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},iu=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),r=a.find((e=>t[e]));return r&&au.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${r}) `),r=t[r],r};var su=function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(ru.test(l)&&!o[l]&&(l=l.replace(ru,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=ou(e[t+1],n.afterWords);return o=o||ou(e[t-1],n.beforeWords),o=o||iu(e[t-1],n.beforeTags,r),o=o||iu(e[t+1],n.afterTags,r),o}(e,t,i[o],a);nu[o]&&(u=nu[o](e,t)||u),u?(r([s],u,n,null,`3-[switch] (${o})`),kl(e,t,a)):au.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},lu=function(e,t,n){let a=e[t+1];if(!a)return;let{prefixes:r}=n.one,o=e[t];!0===r[o.normal]&&(a.tags.has("Verb")&&(vl(o,"Verb","3-[prefix]"),vl(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(vl(o,"Adjective","3-[prefix]"),vl(o,"Prefix","3-[prefix]")))};const uu={tagSwitch:yl,checkSuffix:xl,checkRegex:Ol,checkCase:Nl,checkPrefix:Bl,checkHyphen:lu,checkYear:Sl},cu={checkAcronym:ql,neighbours:Ql,orgWords:_l,nounFallback:Xl,switches:su},hu=function(e,t,n){for(let a=0;a{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var pu=function(e){const t=e.world,n=Object.keys(mu);e.docs.forEach((e=>{for(let a=0;a{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=Gu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Iu},Du=function(e,t,n){let[a,r]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const xu=/'/;var Tu=function(e,t){let n=e[t].normal.split(xu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Cu=/'/;var Ou=function(e,t){let n=e[t].normal.split(Cu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Bu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const zu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Vu={in:!0,by:!0,for:!0};var Fu=(e,t)=>{let n=e[t];if(zu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let a=e[t+1];if(!a)return!0;if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return!("here"===e||"there"===e||"everywhere"===e||a.tags.has("Possessive")||a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Vu[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const $u=/'/,Su=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Hu={d:(e,t)=>Ou(e,t),t:(e,t)=>Bu(e,t),s:(e,t,n)=>Fu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Tu(e,t)},Ju=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Lu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===$u.test(a[o].normal)&&([,i]=a[o].normal.split($u));let s=null;Hu.hasOwnProperty(i)&&(s=Hu[i](a,o,t)),s&&(s=Ju(s,e),Du(n,[r,o],s),Su(n[r],e,o,s.length))}}))}},Mu={compute:Lu,api:Nu,hooks:["contractionTwo"]};const Wu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Ku=["i","we","they"];let qu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Wu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Wu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Wu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ku,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Uu=null;var Ru={postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;Uu=Uu||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(r);return o.cache(),o.sweep(Uu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Qu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ru,model:{two:{matches:qu}},hooks:["postTagger"]};var Zu=Qu,_u=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter(((e,t)=>n.some((e=>a[t].has(e)))))},Xu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=_u(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()},Yu={lib:{lazy:Xu}},ec=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},tc=function(e,t,n){let a=e.split(/ /g).map((e=>`{${e}}`)).join(" "),r=this.match(a);return n&&(r=r.if(n)),r.has("#Verb")?ec(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let a=n(t);a&&e.replaceWith(a)}(r,t):r.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:a}=e.methods.two.transform.adjective;let r=t;e.has("#Comparative")?r=n(r,e.model):e.has("#Superlative")&&(r=a(r,e.model)),r&&e.replaceWith(r)}(r,t):this},nc={api:function(e){e.prototype.swap=tc}};return b.plugin(Au),b.plugin(Mu),b.plugin(Zu),b.plugin(Yu),b.plugin(nc),b},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/two/compromise-two.mjs b/builds/two/compromise-two.mjs index 911663714..94d64f2d0 100644 --- a/builds/two/compromise-two.mjs +++ b/builds/two/compromise-two.mjs @@ -1 +1 @@ -var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var b=f;var v=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},E=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?E(n):(E(n),E([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let I=0;const G=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var D=function(e){let[t,n]=e.index||[0,0];I+=1,I=I>46655?0:I,t=t>46655?0:t,n=n>1294?0:n;let r=G(I.toString(36));r+=G(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const x=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},T=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:T(e)?T(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=D(e),e)))}(d),n?(x(t.update([u]).firstTerm()),N(h,u,d,r)):(x(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(z,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},V.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var F=V;var $=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=$(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var L=J;var M={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(a=M.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof M[e]?(a=a.sort(M[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var Q={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}};var Z={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const _=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},B,F,H,L,U,Q,Z);var X=function(e){Object.assign(e.prototype,_)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null};var le=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,pe=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(ge);return null!==r?!0===n.tags.has("PhoneNumber")||pe.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,ve=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(be);if(null!==n){let e=n[2].toLowerCase().trim();return ve.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ee={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=je(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ee.hasOwnProperty(l)&&(c=Ee[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var Ge={model:te,compute:{contractions:Ie},hooks:["contractions"]};var De=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===xe.test(l)){let e=l.replace(xe,"");if(i.hasOwnProperty(e)&&e.length>3&&Te.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var ze={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}};var Ve={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Be}},compute:Oe,lib:ze,hooks:["lexicon"]};var Fe=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const $e=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Le=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const Me={buildTrie:function(e){const t=Fe(e,this.world());return Le(t)}};Me.compile=Me.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Fe(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Me};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},qe=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ke(n,t),Object.keys(r).forEach((e=>{r[e]=Ke(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,Ze=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var _e={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Ze(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e)){return e.fullPointer.length>0}if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ze(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Xe={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Ye=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Ye(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Ye(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},_e,Xe,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),pt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),vt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=vt(e),e=yt(e)},kt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===bt(e)&&(n.start=!0,e=vt(e)),("["===bt(e)||"]"===ft(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===bt(e)&&(n.negative=!0,e=vt(e)),"~"===bt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===bt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=vt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===bt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===bt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===bt(e)&&">"===ft(e))return e=wt(e),n.chunk=pt(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===bt(e)?(n.tag=vt(e),n.tag=pt(n.tag),n):"@"===bt(e)?(n.method=vt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var Et=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},It=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Gt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(It(e,t))):(n=n.concat(jt(e,t)),n=n.concat(Nt(e,t)),n=n.concat(It(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var Dt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var xt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>Pt(e,t))),r=Et(r,n),r=Gt(r,n),r=Dt(r),r};const Tt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Bt.test(e.pre)||zt.test(e.post),hasComma:e=>$t(e,","),hasPeriod:e=>!0===$t(e,".")&&!1===$t(e,"..."),hasExclamation:e=>$t(e,"!"),hasQuestionMark:e=>$t(e,"?")||$t(e,"¿"),hasEllipses:e=>$t(e,"..")||$t(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>$t(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Vt.test(e.post)||Vt.test(e.pre),hasDash:e=>Ft.test(e.post)||Ft.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Jt=Ht;let Lt=function(){};Lt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Jt[t.method]&&!0===Jt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Lt(e,t,n,r))):t.choices.some((t=>Lt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Mt=Lt;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Kt(e,e.t).length=r-e.t}return e.t=r,!0};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Mt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Mt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Kt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Zt=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var _t=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Mt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Mt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Mt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?Zt(e,r,t[e.r+1]):(e.t+=1,!0)};var Xt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Mt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Mt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Yt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Xt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Yt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Kt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Wt(e,a))if(e.negative){if(!_t(a))return null}else if(!0!==Mt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!tn(a))return null}else{if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else{if(!Qt(a))return null}else{if(!Rt(a))return null}else{if(!qt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}};var rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i};var ln={api:ot,methods:{one:{termMethods:Jt,parseMatch:xt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(a)&&(a=" "),a=a.replace(pn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(gn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&bn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let kn=[],Pn=0;for(;Pn<64;)kn[Pn]=0|4294967296*Math.sin(++Pn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Pn=i=0;Pn>4]+kn[i]+~~o[Pn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const En={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},In={text:e=>vn(e,{keepPunct:!0},!1),normal:e=>vn(e,Nn(wn.normal,{keepPunct:!0}),!1),implicit:e=>vn(e,Nn(wn.implicit,{keepPunct:!0}),!1),machine:e=>vn(e,jn,!1),root:e=>vn(e,Nn(jn,{form:"root"}),!1),hash:e=>An(vn(e,{keepPunct:!0},!1)),offset:e=>{let t=In.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};In.sentences=In.sentence,In.clean=In.normal,In.reduced=In.root;const Gn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},En,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&In[o]&&(a[o]=In[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};Gn.data=Gn.json;var Dn=Gn;var xn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var Tn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var Cn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Tn.blue("\n ──────")),t.forEach((e=>{console.log(Tn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Tn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Tn.blue(" │ ")+Tn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Tn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))};var On=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Tn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Tn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Tn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Tn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Tn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))};var zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(xn(t),t):(!1!==e.tags&&(Cn(t),console.log("\n")),!0===e.chunks&&(On(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const Vn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Fn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Sn=$n;var Hn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Kn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var qn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r};var Un=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var Rn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Wn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var _n=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Wn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Yn=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},er={union:function(e){e=Xn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)}};er.and=er.union,er.intersection=function(e){e=Xn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.not=function(e){e=Xn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.difference=er.not,er.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Qn(e,[t])})),e=Yn(e,this.document),this.update(e)};var tr=function(e){Object.assign(e.prototype,er)},nr={methods:Rn,api:tr};var rr=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const ar=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var or=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(ar(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(ar(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=ar(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var ir=function(e,t){e=or(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}};var sr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))};var lr=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var ur=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o};var cr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=sr(a,t.hooks);return o=lr(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),ur(o,e,a,n,r)};var hr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===hr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},gr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:rr,methods:{one:{buildNet:ir,bulkMatch:cr,bulkTagger:dr}}};const mr=/ /,pr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},fr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),mr.test(t))!function(e,t,n,r){let a=t.split(mr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),fr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var vr=br;var yr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>wr({id:e}))),t}return[wr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},Er=e=>"[object Array]"===Object.prototype.toString.call(e),jr=e=>(e=e||"").trim(),Nr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||kr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Pr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=wr({});return e.forEach((e=>{if((e=wr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ar(t=e).forEach(wr),t);var t},Ir=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Ar(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Gr=function(e){let t=Ar(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Dr={text:Ir,txt:Ir,array:Gr,flat:Gr},xr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ir(e,!0)),null):Dr.hasOwnProperty(t)?Dr[t](e):e},Tr=e=>{Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Cr=/\//;let Or=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=jr(e),!Cr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Or(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||wr({});return new Or(t)}add(e,t={}){if(Er(e))return e.forEach((e=>this.add(jr(e),t))),this;e=jr(e);let n=wr({id:e,props:t});return this.json.children.push(n),new Or(n)}remove(e){return e=jr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ar(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ar(this.json)}fillDown(){var e;return e=this.json,Ar(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Er(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Tr(this.json);let e=Ar(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Tr(this.json),xr(this.json,e)}debug(){return Tr(this.json),xr(this.json,"debug"),this}};const Br=function(e){let t=Nr(e);return new Or(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Vr=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Fr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:Vr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const $r=function(e){return e?"string"==typeof e?[e]:e:[]};var Sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=$r(e[t].children),e[t].not=$r(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var Hr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Sr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Fr(n)},Jr={one:{setTag:vr,unTag:yr,addTags:Hr}};const Lr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Mr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Lr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Lr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Wr=Mr;var Kr=function(e){Object.assign(e.prototype,Wr)};var qr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Ur=new Set(["Auxiliary","Possessive"]);var Rr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Ur.has(e)||!t.hasOwnProperty(n))return 1;if(Ur.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Qr={model:{one:{tagSet:{}}},compute:{tagRank:Rr},methods:Jr,api:Kr,lib:qr};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,_r=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var Yr=function(e){let t=[],n=e.split(Xr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const aa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},oa=RegExp("("+Object.keys(aa).join("|")+")","g"),ia=RegExp("("+Object.values(aa).join("|")+")","g"),sa=function(e){if(!e)return!1;let t=e.match(ia);return null!==t&&1===t.length};var la=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Ea=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Pa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=ya(n),n=ba(n),n=n.filter((e=>e)),n};let ja=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Na=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ia=/[\p{Punctuation}\s]+$/u,Ga=/^[\p{Punctuation}\s]+/u,Da=/['’]/,xa=/^[a-z]\.([a-z]\.)+/i,Ta=/^'[0-9]{2}/;var Ca=function(e){let t=e,n="",r="";return e=e.replace(Ga,(t=>{let r=t.match(ja);return r?(n=t.replace(ja,""),r):"'"===n&&Ta.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ia,(a=>{let o=a.match(Na);return o?(r=a.replace(Na,""),o):Da.test(a)&&/[sn]['’]$/.test(t)&&!1===Da.test(n)?(r=r.replace(Da,""),"'"):!0===xa.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}};var Oa=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")};var Ba=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const za=/([A-Z]\.)+[A-Z]?,?$/,Va=/^[A-Z]\.,?$/,Fa=/[A-Z]{2,}('s|,)?$/,$a=/([a-z]\.)+[a-z]\.?$/;var Sa=function(e){return function(e){return!0===za.test(e)||!0===$a.test(e)||!0===Va.test(e)||!0===Fa.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ha=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ba(r),r=n(r,t),r=Sa(r),e.normal=r};var Ja=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Ha(e,t)})),n})),e};const La=/[ .][A-Z]\.? *$/i,Ma=/(?:\u2026|\.{2,}) *$/,Wa=/\p{L}/u,Ka=/^[A-Z]\. $/;var qa={one:{killUnicode:Oa,tokenize:{splitSentences:ma,isSentence:function(e,t){if(!1===Wa.test(e))return!1;if(!0===La.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===Ma.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},splitTerms:Ea,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ca(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Ja}}};var Ua={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ra={},Qa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Ra[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])}))}));var Za=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let _a={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Xa={};Object.keys(_a).forEach((function(e){_a[e].split("").forEach((function(t){Xa[t]=e}))}));const Ya=/\//,eo=/[a-z]\.[a-z]/i,to=/[0-9]/;var no=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Ya.test(n)&&!eo.test(n)&&!to.test(n)){let t=n.split(Ya);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ro=/^\p{Letter}+-\p{Letter}+$/u;var ao=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ro.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var oo=function(e){let t=e.docs,n={};for(let e=0;euo(e,no),machine:e=>uo(e,ao),normal:e=>uo(e,Ha),freq:oo,offset:io,index:so,wordCount:lo},methods:qa,model:{one:{aliases:Ua,abbreviations:Ra,prefixes:Za,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Qa,unicode:Xa}},hooks:["alias","machine","index","id"]};var ho={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var mo=function(e){e.prototype.autoFill=go};var po=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const fo={safe:!0,min:3};var bo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},fo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=po(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}};var vo={model:{one:{typeahead:{}}},api:mo,lib:bo,compute:ho,hooks:["typeahead"]};b.extend(ee),b.extend(Mn),b.extend(ln),b.extend(nr),b.extend(Qr),b.plugin(Ge),b.extend(co),b.plugin(k),b.extend(We),b.extend(vo),b.extend(Ve),b.extend(gr);var yo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},wo={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const ko="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Po=ko.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ao=function(e){if(void 0!==Po[e])return Po[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var Eo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=No(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Io(wo[e]);To.test(e)?Object.keys(t).forEach((t=>{if(Oo[t]=e,"Noun|Verb"===e){let e=xo(t,Bo);Oo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Co[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Co[e]="Emoticon")),delete Co[""],delete Co.null,delete Co[" "];const zo="Adjective";var Vo={beforeTags:{Determiner:zo,Possessive:zo},afterTags:{Adjective:zo},beforeWords:{seem:zo,seemed:zo,seems:zo,feel:zo,feels:zo,felt:zo,appear:zo,appears:zo,appeared:zo,also:zo,over:zo,under:zo,too:zo,it:zo,but:zo,still:zo,really:zo,quite:zo,well:zo,very:zo,deeply:zo,profoundly:zo,extremely:zo,so:zo,badly:zo,mostly:zo,totally:zo,awfully:zo,rather:zo,nothing:zo,something:zo,anything:zo,not:zo,me:zo},afterWords:{too:zo,also:zo,or:zo}};const Fo="Gerund";var $o={beforeTags:{Adverb:Fo,Preposition:Fo,Conjunction:Fo},afterTags:{Adverb:Fo,Possessive:Fo,Person:Fo,Pronoun:Fo,Determiner:Fo,Copula:Fo,Preposition:Fo,Conjunction:Fo,Comparative:Fo},beforeWords:{been:Fo,keep:Fo,continue:Fo,stop:Fo,am:Fo,be:Fo,me:Fo,began:Fo,start:Fo,starts:Fo,started:Fo,stops:Fo,stopped:Fo,help:Fo,helps:Fo,avoid:Fo,avoids:Fo,love:Fo,loves:Fo,loved:Fo,hate:Fo,hates:Fo,hated:Fo},afterWords:{you:Fo,me:Fo,her:Fo,him:Fo,them:Fo,their:Fo,it:Fo,this:Fo,there:Fo,on:Fo,about:Fo,for:Fo}};var So={beforeTags:Object.assign({},Vo.beforeTags,$o.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Vo.afterTags,$o.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Vo.beforeWords,$o.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Vo.afterWords,$o.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ho="Singular";var Jo={beforeTags:{Determiner:Ho,Possessive:Ho,Acronym:Ho,Noun:Ho,Adjective:Ho,PresentTense:Ho,Gerund:Ho,PastTense:Ho,Infinitive:Ho,Date:Ho},afterTags:{Value:Ho,Modal:Ho,Copula:Ho,PresentTense:Ho,PastTense:Ho,Demonym:Ho},beforeWords:{the:Ho,with:Ho,without:Ho,of:Ho,for:Ho,any:Ho,all:Ho,on:Ho,cut:Ho,cuts:Ho,save:Ho,saved:Ho,saves:Ho,make:Ho,makes:Ho,made:Ho,minus:Ho,plus:Ho,than:Ho,another:Ho,versus:Ho,neither:Ho,favorite:Ho,best:Ho,daily:Ho,weekly:Ho,linear:Ho,binary:Ho,mobile:Ho,lexical:Ho,technical:Ho,computer:Ho,scientific:Ho,formal:Ho},afterWords:{of:Ho,system:Ho,aid:Ho,method:Ho,utility:Ho,tool:Ho,reform:Ho,therapy:Ho,philosophy:Ho,room:Ho,authority:Ho,says:Ho,said:Ho,wants:Ho,wanted:Ho}};const Lo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Mo={beforeTags:Object.assign({},Vo.beforeTags,Jo.beforeTags,Lo.beforeTags),afterTags:Object.assign({},Vo.afterTags,Jo.afterTags),beforeWords:Object.assign({},Vo.beforeWords,Jo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vo.afterWords,Jo.afterWords)};const Wo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ko={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},qo={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Uo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ro={beforeTags:Object.assign({},Vo.beforeTags,Wo),afterTags:Object.assign({},Vo.afterTags,Ko),beforeWords:Object.assign({},Vo.beforeWords,qo),afterWords:Object.assign({},Vo.afterWords,Uo)};const Qo="Infinitive";var Zo={beforeTags:{Modal:Qo,Adverb:Qo,Negative:Qo,Plural:Qo},afterTags:{Determiner:Qo,Adverb:Qo,Possessive:Qo,Preposition:Qo},beforeWords:{i:Qo,we:Qo,you:Qo,they:Qo,to:Qo,please:Qo,will:Qo,have:Qo,had:Qo,would:Qo,could:Qo,should:Qo,do:Qo,did:Qo,does:Qo,can:Qo,must:Qo,us:Qo,me:Qo,he:Qo,she:Qo,it:Qo,being:Qo},afterWords:{the:Qo,me:Qo,you:Qo,him:Qo,her:Qo,them:Qo,it:Qo,a:Qo,an:Qo,up:Qo,down:Qo,by:Qo,out:Qo,off:Qo,under:Qo,when:Qo,all:Qo,to:Qo,because:Qo,although:Qo,before:Qo,how:Qo,otherwise:Qo,together:Qo,though:Qo,yet:Qo}};const _o={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xo={beforeTags:Object.assign({},Vo.beforeTags,Zo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Vo.afterTags,Zo.afterTags,_o.afterTags),beforeWords:Object.assign({},Vo.beforeWords,Zo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vo.afterWords,Zo.afterWords,{to:void 0})};const Yo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ei={},ti={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ni={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ri={beforeTags:Object.assign({},$o.beforeTags,Jo.beforeTags,Yo),afterTags:Object.assign({},$o.afterTags,Jo.afterTags,ei),beforeWords:Object.assign({},$o.beforeWords,Jo.beforeWords,ti),afterWords:Object.assign({},$o.afterWords,Jo.afterWords,ni)};var ai={beforeTags:Object.assign({},Zo.beforeTags,Jo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Zo.afterTags,Jo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Zo.beforeWords,Jo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Zo.afterWords,Jo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const oi="Person";var ii={beforeTags:{Honorific:oi,Person:oi,Preposition:oi},afterTags:{Person:oi,ProperNoun:oi,Verb:oi},ownTags:{ProperNoun:oi},beforeWords:{hi:oi,hey:oi,yo:oi,dear:oi,hello:oi},afterWords:{said:oi,says:oi,told:oi,tells:oi,feels:oi,felt:oi,seems:oi,thinks:oi,thought:oi,spends:oi,spendt:oi,plays:oi,played:oi,sing:oi,sang:oi,learn:oi,learned:oi,wants:oi,wanted:oi}};const si="Month",li={beforeTags:{Date:si,Value:si},afterTags:{Date:si,Value:si},beforeWords:{by:si,in:si,on:si,during:si,after:si,before:si,between:si,until:si,til:si,sometime:si,of:si,this:si,next:si,last:si,previous:si,following:si},afterWords:{sometime:si,in:si,of:si,until:si,the:si}};var ui={beforeTags:Object.assign({},ii.beforeTags,li.beforeTags),afterTags:Object.assign({},ii.afterTags,li.afterTags),beforeWords:Object.assign({},ii.beforeWords,li.beforeWords),afterWords:Object.assign({},ii.afterWords,li.afterWords)};const ci={Place:"Place"},hi={Place:"Place",Abbreviation:"Place"},di={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},gi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let mi="Unit";const pi="Honorific";let fi={first:pi,general:pi,royal:pi,vice:pi,rear:pi,major:pi};const bi={"Adj|Gerund":So,"Adj|Noun":Mo,"Adj|Past":Ro,"Adj|Present":Xo,"Noun|Verb":ai,"Noun|Gerund":ri,"Person|Noun":{beforeTags:Object.assign({},Jo.beforeTags,ii.beforeTags),afterTags:Object.assign({},Jo.afterTags,ii.afterTags),beforeWords:Object.assign({},Jo.beforeWords,ii.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Jo.afterWords,ii.afterWords)},"Person|Date":ui,"Person|Verb":{beforeTags:Object.assign({},ii.beforeTags,Zo.beforeTags),afterTags:Object.assign({},ii.afterTags,Zo.afterTags),beforeWords:Object.assign({},ii.beforeWords,Zo.beforeWords),afterWords:Object.assign({},ii.afterWords,Zo.afterWords)},"Person|Place":{beforeTags:Object.assign({},ci,ii.beforeTags),afterTags:Object.assign({},hi,ii.afterTags),beforeWords:Object.assign({},di,ii.beforeWords),afterWords:Object.assign({},gi,ii.afterWords)},"Unit|Noun":{beforeTags:{Value:mi},afterTags:{},beforeWords:{per:mi,every:mi,each:mi,square:mi,cubic:mi,sq:mi,metric:mi},afterWords:{per:mi,squared:mi,cubed:mi,long:mi}},"Honorific|Noun":{beforeTags:{Honorific:pi,ProperNoun:pi,Ordinal:pi},afterTags:{Person:pi,ProperNoun:pi},beforeWords:Object.assign({},fi,{honorable:pi,honourable:pi,worship:pi,excellency:pi,majesty:pi,right:pi}),afterWords:fi}},vi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};bi["Plural|Verb"]={beforeWords:vi(bi["Noun|Verb"].beforeWords,{}),afterWords:vi(bi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:vi(bi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:vi(bi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yi=bi;const wi="Adjective",ki="Infinitive",Pi="PresentTense",Ai="Singular",Ei="PastTense",ji="Adverb",Ni="Plural",Ii="Verb",Gi="LastName",Di="Participle";var xi=[null,null,{ea:Ai,ia:"Noun",ic:wi,ly:ji,"'n":Ii,"'t":Ii},{oed:Ei,ued:Ei,xed:Ei," so":ji,"'ll":"Modal","'re":"Copula",azy:wi,eer:"Noun",end:Ii,ped:Ei,ffy:wi,ify:ki,ing:"Gerund",ize:ki,ibe:ki,lar:wi,mum:wi,nes:Pi,nny:wi,ous:wi,que:wi,rol:Ai,sis:Ai,ogy:Ai,oid:Ai,ian:Ai,zes:Pi,eld:Ei,ken:Di,ven:Di,ten:Di,ect:ki,ict:ki,ign:ki,ful:wi,bal:wi},{amed:Ei,aped:Ei,ched:Ei,lked:Ei,rked:Ei,reed:Ei,nded:Ei,mned:wi,cted:Ei,dged:Ei,ield:Ai,akis:Gi,cede:ki,chuk:Gi,czyk:Gi,ects:Pi,ends:Ii,enko:Gi,ette:Ai,wner:Ai,fies:Pi,fore:ji,gate:ki,gone:wi,ices:Ni,ints:Ni,ruct:ki,ines:Ni,ions:Ni,less:wi,llen:wi,made:wi,nsen:Gi,oses:Pi,ould:"Modal",some:wi,sson:Gi,tion:Ai,tage:"Noun",ique:Ai,tive:wi,tors:"Noun",vice:Ai,lier:Ai,fier:Ai,wned:Ei,gent:Ai,tist:Ai,pist:Ai,rist:Ai,mist:Ai,yist:Ai,vist:Ai,lite:Ai,site:Ai,rite:Ai,mite:Ai,bite:Ai,mate:Ai,date:Ai,ndal:Ai,vent:Ai,uist:Ai,gist:Ai,note:Ai,cide:Ai,wide:wi,vide:ki,ract:ki,duce:ki,pose:ki,eive:ki,lyze:ki,lyse:ki,iant:wi,nary:wi},{elist:Ai,holic:Ai,phite:Ai,tized:Ei,urned:Ei,eased:Ei,ances:Ni,bound:wi,ettes:Ni,fully:ji,ishes:Pi,ities:Ni,marek:Gi,nssen:Gi,ology:"Noun",osome:Ai,tment:Ai,ports:Ni,rough:wi,tches:Pi,tieth:"Ordinal",tures:Ni,wards:ji,where:ji,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Ai,scent:Ai,onist:Ai,anist:Ai,alist:Ai,olist:Ai,icist:Ai,ounce:ki,iable:wi,borne:wi,gnant:wi,inant:wi,igent:wi,atory:wi,rient:Ai,dient:Ai},{auskas:Gi,parent:Ai,cedent:Ai,ionary:Ai,cklist:Ai,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Gi,borough:"Place",sdottir:Gi}];const Ti="Adjective";var Ci=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Ti,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Ti,tele:"Noun","pro-":Ti,"mis-":"Verb","dis-":"Verb","pre-":Ti},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Ti,radio:"Noun",tetra:"Noun","omni-":Ti,"post-":Ti},{pseudo:Ti,"extra-":Ti,"hyper-":Ti,"inter-":Ti,"intra-":Ti,"deca-":Ti},{electro:"Noun"}];const Oi="Adjective",Bi="Infinitive",zi="PresentTense",Vi="Singular",Fi="PastTense",$i="Expression",Si="LastName";var Hi={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Si],[/.[^aeiou]ica$/,Vi,"harmonica"],[/^([hyj]a+)+$/,$i,"haha"]],c:[[/.[^aeiou]ic$/,Oi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Fi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Fi,"rammed"],[/.[aeiou][sg]hed$/,Fi,"gushed"],[/.[aeiou]red$/,Fi,"hired"],[/.[aeiou]r?ried$/,Fi,"hurried"],[/[^aeiou]ard$/,Vi,"steward"],[/[aeiou][^aeiou]id$/,Oi,""],[/.[vrl]id$/,Oi,"livid"],[/..led$/,Fi,"hurled"],[/.[iao]sed$/,Fi,""],[/[aeiou]n?[cs]ed$/,Fi,""],[/[aeiou][rl]?[mnf]ed$/,Fi,""],[/[aeiou][ns]?c?ked$/,Fi,"bunked"],[/[aeiou]gned$/,Fi],[/[aeiou][nl]?ged$/,Fi],[/.[tdbwxyz]ed$/,Fi],[/[^aeiou][aeiou][tvx]ed$/,Fi],[/.[cdflmnprstv]ied$/,Fi,"emptied"]],e:[[/.[lnr]ize$/,Bi,"antagonize"],[/.[^aeiou]ise$/,Bi,"antagonise"],[/.[aeiou]te$/,Bi,"bite"],[/.[^aeiou][ai]ble$/,Oi,"fixable"],[/.[^aeiou]eable$/,Oi,"maleable"],[/.[ts]ive$/,Oi,"festive"],[/[a-z]-like$/,Oi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Oi,"cornish"],[/.v[iy]ch$/,Si,"..ovich"],[/^ug?h+$/,$i,"ughh"],[/^uh[ -]?oh$/,$i,"uhoh"],[/[a-z]-ish$/,Oi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Si,"polish-male"]],k:[[/^(k){2}$/,$i,"kkkk"]],l:[[/.[gl]ial$/,Oi,"familial"],[/.[^aeiou]ful$/,Oi,"fitful"],[/.[nrtumcd]al$/,Oi,"natal"],[/.[^aeiou][ei]al$/,Oi,"familial"]],m:[[/.[^aeiou]ium$/,Vi,"magnesium"],[/[^aeiou]ism$/,Vi,"schism"],[/^[hu]m+$/,$i,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Oi,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,$i,"noooo"],[/^(yo)+$/,$i,"yoo"],[/^wo{2,}[pt]?$/,$i,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Vi],[/[^i]fer$/,Bi],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Oi],[/[aeiou].*ist$/,Oi],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,zi],[/.[rln]ates$/,zi],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Vi],[/.[aeiou]sks$/,zi],[/.[aeiou]kes$/,zi],[/[aeiou][^aeiou]is$/,Vi],[/[a-z]'s$/,"Noun"],[/^yes+$/,$i]],v:[[/.[^aeiou][ai][kln]ov$/,Si]],y:[[/.[cts]hy$/,Oi],[/.[st]ty$/,Oi],[/.[tnl]ary$/,Oi],[/.[oe]ry$/,Vi],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Oi],[/...lly$/,"Adverb"],[/.[gk]y$/,Oi],[/[bszmp]{2}y$/,Oi],[/.[ai]my$/,Oi],[/[ea]{2}zy$/,Oi],[/.[^aeiou]ity$/,Vi]]};const Ji="Verb",Li="Noun";var Mi={leftTags:[["Adjective",Li],["Possessive",Li],["Determiner",Li],["Adverb",Ji],["Pronoun",Ji],["Value",Li],["Ordinal",Li],["Modal",Ji],["Superlative",Li],["Demonym",Li],["Honorific","Person"]],leftWords:[["i",Ji],["first",Li],["it",Ji],["there",Ji],["not",Ji],["because",Li],["if",Li],["but",Li],["who",Ji],["this",Li],["his",Li],["when",Li],["you",Ji],["very","Adjective"],["old",Li],["never",Ji],["before",Li],["a","Singular"],["the",Li],["been",Ji]],rightTags:[["Copula",Li],["PastTense",Li],["Conjunction",Li],["Modal",Li]],rightWords:[["there",Ji],["me",Ji],["man","Adjective"],["only",Ji],["him",Ji],["it",Ji],["were",Li],["took",Li],["himself",Ji],["went",Li],["who",Li],["jr","Person"]]},Wi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ki={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},qi={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Ui={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Ri={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Qi=/^.([0-9]+)/;var Zi=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Qi);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Qi,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},Xi=/^([0-9]+)/,Yi=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Xi);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Xi,"")]}(n[0],n[1])}))};var es=function(e={}){return(e=Object.assign({},e)).rules=Yi(e.rules),e.rules=_i(e.rules),e.rev&&(e.rev=Yi(e.rev),e.rev=_i(e.rev)),e.exceptions=Yi(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e};var ts=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const ns=es({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),rs=es(Ui),as=es(Ki),os=es(qi),is=ts(ns),ss=ts(rs),ls=ts(as),us=ts(os),cs=es(Wi),hs=es(Ri);var ds={fromPast:ns,fromPresent:rs,fromGerund:as,fromParticiple:os,toPast:is,toPresent:ss,toGerund:ls,toParticiple:us,toComparative:cs,toSuperlative:hs,fromComparative:ts(cs),fromSuperlative:ts(hs)},gs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),ms=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var ps=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(fs[t].forEach((n=>e[n]=t)),e)),{});var bs=fs;var vs=function(e){let t=e.substring(e.length-3);if(!0===bs.hasOwnProperty(t))return bs[t];let n=e.substring(e.length-2);return!0===bs.hasOwnProperty(n)?bs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ys={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var ws=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=vs(e)),ys.hasOwnProperty(e))c=ys[e];else if("Participle"===n)c=Zi(l,i);else if("PastTense"===n)c=Zi(l,r);else if("PresentTense"===n)c=Zi(l,a);else{if("Gerund"!==n)return e;c=Zi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};const ks=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Zi(i,n),PresentTense:Zi(i,r),Gerund:Zi(i,a),FutureTense:"will "+e},u=Zi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Ps=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const As=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Es={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var js=function(e){if(Es.hasOwnProperty(e))return Es[e];let t=Ps(e,As);return t||e+"ly"};const Ns=function(e,t){const n=t.two.models.toSuperlative;return Zi(e,n)},Is=function(e,t){const n=t.two.models.toComparative;return Zi(e,n)},Gs="ically",Ds=new Set(["analyt"+Gs,"chem"+Gs,"class"+Gs,"clin"+Gs,"crit"+Gs,"ecolog"+Gs,"electr"+Gs,"empir"+Gs,"frant"+Gs,"grammat"+Gs,"ident"+Gs,"ideolog"+Gs,"log"+Gs,"mag"+Gs,"mathemat"+Gs,"mechan"+Gs,"med"+Gs,"method"+Gs,"method"+Gs,"mus"+Gs,"phys"+Gs,"phys"+Gs,"polit"+Gs,"pract"+Gs,"rad"+Gs,"satir"+Gs,"statist"+Gs,"techn"+Gs,"technolog"+Gs,"theoret"+Gs,"typ"+Gs,"vert"+Gs,"whims"+Gs]),xs=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ts=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Cs={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Os=function(e){return e.endsWith("ly")?Ds.has(e)?e.replace(/ically/,"ical"):Ts.has(e)?null:Cs.hasOwnProperty(e)?Cs[e]:Ps(e,xs)||e:null};const Bs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],zs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Vs=new Set(["terrible","annoying"]);var Fs={noun:{toPlural:xo,toSingular:ps,all:xo},verb:{toInfinitive:ws,conjugate:ks,all:function(e,t){let n=ks(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},adjective:{toSuperlative:Ns,toComparative:Is,toAdverb:js,toNoun:function(e){if(zs.hasOwnProperty(e))return zs[e];if(Vs.has(e))return null;let t=Ps(e,Bs);return t||e+"ness"},fromAdverb:Os,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Zi(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Zi(e,n)},all:function(e,t){let n=[e];return n.push(Ns(e,t)),n.push(Is(e,t)),n.push(js(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}}},$s={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Ss=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===$s.hasOwnProperty(i)&&$s[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var Hs=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Ms.find((t=>e.endsWith(t)))},Ks={two:{quickSplit:Hs,expandLexicon:Ss,transform:Fs,looksPlural:Ws}};var qs=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const Us=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var Rs=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Us(n,"Infinitive","PastTense"),Object.assign(s,l),l=Us(r,"Infinitive","Verb"),Object.assign(s,l),l=Us(a,"Infinitive","Gerund"),Object.assign(s,l),l=Us(o,"Adjective","Superlative"),Object.assign(s,l),l=Us(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Qs={two:{models:ds}};const Zs={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},_s=function(e,t){const n={model:t,methods:Ks};let{lex:r,_multi:a}=Ks.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Xs=function(e,t,n){let r=ks(e,Qs);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Ys=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=Zs[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Xs(a,r,!1),"Adj|Present"===o&&(Xs(a,r,!0),function(e,t,n){let r=Ns(e,n);t[r]=t[r]||"Superlative";let a=Is(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=ws(a,Qs,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=ws(a,Qs,"PastTense");r[e]||(n[e]="Infinitive")}})),t=_s(n,t)};var el=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=_s(e.one.lexicon,e)).one.lexicon,e),e=Ys(e.two.switches,e),e=Rs(e),e=qs(e)};let tl={one:{_multiCache:{},lexicon:Co},two:{irregularPlurals:yo,models:ds,suffixPatterns:xi,prefixPatterns:Ci,endsWith:Hi,neighbours:Mi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Oo,clues:yi,uncountable:{},orgWords:gs}};tl=el(tl);var nl=tl;const rl=/^(under|over|mis|re|un|dis|semi)-?/;var al=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(rl.test(a.normal)){let e=a.normal.replace(rl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var ol=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const il=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var sl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(Ws(e.normal)?ol(e,"Plural","3-plural-guess"):ol(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=vs(e.normal);t&&ol(e,t,"3-verb-tense-guess")}}(r)};const ll=/^\p{Lu}[\p{Ll}'’]/u,ul=/[0-9]/,cl=["Date","Month","WeekDay","Unit"],hl=/^[IVXLCDM]{2,}$/,dl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,gl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ml=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===ll.test(o)&&!1===ul.test(o)?cl.find((e=>r.tags.has(e)))?null:(sl(e,t,n),r.tags.has("Noun")||r.tags.clear(),ol(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&hl.test(o)&&dl.test(o)&&!gl[r.normal]?(ol(r,"RomanNumeral","2-xvii"),!0):null};const pl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var fl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=pl(r.normal,n.two.suffixPatterns);if(null!==e)return ol(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=pl(r.implicit,n.two.suffixPatterns),null!==e))return ol(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const bl=/['‘’‛‵′`´]/,vl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ol(r,e,"2-prefix"),r.confidence=.5,!0}return null};const kl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Pl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!kl.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},Al=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},El=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var jl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Pl(a)||Pl(o))return ol(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Al(a)||Al(o))return ol(n,"Year","2-tagYear-close");if(El(e[t-2])||El(e[t+2]))return ol(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ol(n,"Year","2-tagYear-noun")}}}return null};const Nl=/^[A-Z]('s|,)?$/,Il=/^[A-Z-]+$/,Gl=/([A-Z]\.)+[A-Z]?,?$/,Dl=/[A-Z]{2,}('s|,)?$/,xl=/([a-z]\.)+[a-z]\.?$/,Tl={I:!0,A:!0};var Cl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Il.test(n)||n.length>5||Tl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Gl.test(n)&&!0!==xl.test(n)&&!0!==Nl.test(n)&&!0!==Dl.test(n))}(r,n)?(r.tags.clear(),ol(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Tl.hasOwnProperty(r.text)&&Nl.test(r.text)?(r.tags.clear(),ol(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ol(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Il.test(r.text)&&r.text.length<=6?(ol(r,"Acronym","3-titlecase-acronym"),!0):null};const Ol=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Bl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var zl=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ol(e[t-1],a),l=l||Ol(e[t+1],o),l=l||Bl(e[t-1],r),l=l||Bl(e[t+1],i),l)return ol(s,l,"3-[neighbour]"),sl(e,t,n),e[t].confidence=.2,!0}return null};const Vl=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Fl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Vl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Vl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var $l=function(e,t,n){0===e[t].tags.size&&(ol(e[t],"Noun","3-[fallback]"),sl(e,t,n),e[t].confidence=.1)};const Sl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Hl=(e,t,n)=>0!==t||e[1]?null:n,Jl={"Adj|Gerund":(e,t)=>Sl(e,t),"Adj|Noun":(e,t)=>Sl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Sl(e,t),"Adj|Present":(e,t)=>Sl(e,t),"Noun|Gerund":(e,t)=>Sl(e,t),"Noun|Verb":(e,t)=>Sl(e,t)||Hl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Sl(e,t)||Hl(e,t,"PresentTense"),"Person|Noun":(e,t)=>Sl(e,t),"Person|Verb":(e,t)=>0!==t?Sl(e,t):null};var Ll=Jl;const Ml="undefined"!=typeof process&&process.env?process.env:self.env||{},Wl=/^(under|over|mis|re|un|dis|semi)-?/,Kl=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Ml.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},ql=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&Ml.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var Ul=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Wl.test(l)&&!o[l]&&(l=l.replace(Wl,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Kl(e[t+1],n.afterWords);return o=o||Kl(e[t-1],n.beforeWords),o=o||ql(e[t-1],n.beforeTags,a),o=o||ql(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ll[o]&&(u=Ll[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),sl(e,t,r)):Ml.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};var Rl=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ol(o,"Verb","3-[prefix]"),ol(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ol(o,"Adjective","3-[prefix]"),ol(o,"Prefix","3-[prefix]")))};const Ql={tagSwitch:al,checkSuffix:fl,checkRegex:yl,checkCase:ml,checkPrefix:wl,checkHyphen:Rl,checkYear:jl},Zl={checkAcronym:Cl,neighbours:zl,orgWords:Fl,nounFallback:$l,switches:Ul},_l=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var tu=function(e){const t=e.world,n=Object.keys(eu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=gu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=du};var pu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const fu=/'/;var bu=function(e,t){let n=e[t].normal.split(fu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const vu=/'/;var yu=function(e,t){let n=e[t].normal.split(vu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var wu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const ku={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Pu={in:!0,by:!0,for:!0};var Au=(e,t)=>{let n=e[t];if(ku.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===Pu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Eu=/'/,ju=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Nu={d:(e,t)=>yu(e,t),t:(e,t)=>wu(e,t),s:(e,t,n)=>Au(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):bu(e,t)},Iu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Gu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Eu.test(r[o].normal)&&([,i]=r[o].normal.split(Eu));let s=null;Nu.hasOwnProperty(i)&&(s=Nu[i](r,o,t)),s&&(s=Iu(s,e),pu(n,[a,o],s),ju(n[a],e,o,s.length))}}))}},Du={compute:Gu,api:mu,hooks:["contractionTwo"]};const xu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const Tu=["i","we","they"];let Cu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${xu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${xu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${xu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Tu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Tu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Tu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let Ou=null;var Bu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Ou=Ou||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Ou),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const zu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Bu,model:{two:{matches:Cu}},hooks:["postTagger"]};var Vu=zu;var Fu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var $u=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Fu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Su={lib:{lazy:$u}};var Hu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var Ju=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Hu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Lu={api:function(e){e.prototype.swap=Ju}};b.plugin(uu),b.plugin(Du),b.plugin(Vu),b.plugin(Su),b.plugin(Lu);export{b as default}; +var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var b=f;var v=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},E=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?E(n):(E(n),E([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let I=0;const G=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var D=function(e){let[t,n]=e.index||[0,0];I+=1,I=I>46655?0:I,t=t>46655?0:t,n=n>1294?0:n;let r=G(I.toString(36));r+=G(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const x=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},T=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:T(e)?T(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=D(e),e)))}(d),n?(x(t.update([u]).firstTerm()),N(h,u,d,r)):(x(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(z,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},V.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var F=V;var $=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=$(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var L=J;var M={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(a=M.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof M[e]?(a=a.sort(M[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var Q={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}};var Z={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const _=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},B,F,H,L,U,Q,Z);var X=function(e){Object.assign(e.prototype,_)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null};var le=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,pe=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(ge);return null!==r?!0===n.tags.has("PhoneNumber")||pe.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,ve=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(be);if(null!==n){let e=n[2].toLowerCase().trim();return ve.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ee={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=je(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ee.hasOwnProperty(l)&&(c=Ee[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var Ge={model:te,compute:{contractions:Ie},hooks:["contractions"]};var De=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===xe.test(l)){let e=l.replace(xe,"");if(i.hasOwnProperty(e)&&e.length>3&&Te.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var ze={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}};var Ve={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Be}},compute:Oe,lib:ze,hooks:["lexicon"]};var Fe=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const $e=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Le=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const Me={buildTrie:function(e){const t=Fe(e,this.world());return Le(t)}};Me.compile=Me.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Fe(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Me};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},qe=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ke(n,t),Object.keys(r).forEach((e=>{r[e]=Ke(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,Ze=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var _e={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Ze(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e)){return e.fullPointer.length>0}if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ze(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Xe={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Ye=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Ye(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Ye(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},_e,Xe,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),pt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),vt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=vt(e),e=yt(e)},kt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===bt(e)&&(n.start=!0,e=vt(e)),("["===bt(e)||"]"===ft(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===bt(e)&&(n.negative=!0,e=vt(e)),"~"===bt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===bt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=vt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===bt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===bt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===bt(e)&&">"===ft(e))return e=wt(e),n.chunk=pt(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===bt(e)?(n.tag=vt(e),n.tag=pt(n.tag),n):"@"===bt(e)?(n.method=vt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var Et=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},It=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Gt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(It(e,t))):(n=n.concat(jt(e,t)),n=n.concat(Nt(e,t)),n=n.concat(It(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var Dt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var xt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>Pt(e,t))),r=Et(r,n),r=Gt(r,n),r=Dt(r),r};const Tt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Bt.test(e.pre)||zt.test(e.post),hasComma:e=>$t(e,","),hasPeriod:e=>!0===$t(e,".")&&!1===$t(e,"..."),hasExclamation:e=>$t(e,"!"),hasQuestionMark:e=>$t(e,"?")||$t(e,"¿"),hasEllipses:e=>$t(e,"..")||$t(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>$t(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Vt.test(e.post)||Vt.test(e.pre),hasDash:e=>Ft.test(e.post)||Ft.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Jt=Ht;let Lt=function(){};Lt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Jt[t.method]&&!0===Jt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Lt(e,t,n,r))):t.choices.some((t=>Lt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Mt=Lt;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Kt(e,e.t).length=r-e.t}return e.t=r,!0};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Mt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Mt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Kt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Zt=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var _t=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Mt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Mt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Mt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?Zt(e,r,t[e.r+1]):(e.t+=1,!0)};var Xt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Mt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Mt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Yt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Xt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Yt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Kt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Wt(e,a))if(e.negative){if(!_t(a))return null}else if(!0!==Mt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!tn(a))return null}else{if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else{if(!Qt(a))return null}else{if(!Rt(a))return null}else{if(!qt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}};var rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i};var ln={api:ot,methods:{one:{termMethods:Jt,parseMatch:xt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(a)&&(a=" "),a=a.replace(pn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(gn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&bn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let kn=[],Pn=0;for(;Pn<64;)kn[Pn]=0|4294967296*Math.sin(++Pn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Pn=i=0;Pn>4]+kn[i]+~~o[Pn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const En={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},In={text:e=>vn(e,{keepPunct:!0},!1),normal:e=>vn(e,Nn(wn.normal,{keepPunct:!0}),!1),implicit:e=>vn(e,Nn(wn.implicit,{keepPunct:!0}),!1),machine:e=>vn(e,jn,!1),root:e=>vn(e,Nn(jn,{form:"root"}),!1),hash:e=>An(vn(e,{keepPunct:!0},!1)),offset:e=>{let t=In.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};In.sentences=In.sentence,In.clean=In.normal,In.reduced=In.root;const Gn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},En,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&In[o]&&(a[o]=In[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};Gn.data=Gn.json;var Dn=Gn;var xn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var Tn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var Cn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Tn.blue("\n ──────")),t.forEach((e=>{console.log(Tn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Tn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Tn.blue(" │ ")+Tn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Tn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))};var On=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Tn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Tn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Tn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Tn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Tn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))};var zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(xn(t),t):(!1!==e.tags&&(Cn(t),console.log("\n")),!0===e.chunks&&(On(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const Vn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Fn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Sn=$n;var Hn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Kn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var qn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r};var Un=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var Rn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Wn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var _n=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Wn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Yn=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},er={union:function(e){e=Xn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)}};er.and=er.union,er.intersection=function(e){e=Xn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.not=function(e){e=Xn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.difference=er.not,er.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Qn(e,[t])})),e=Yn(e,this.document),this.update(e)};var tr=function(e){Object.assign(e.prototype,er)},nr={methods:Rn,api:tr};var rr=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const ar=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var or=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(ar(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(ar(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=ar(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var ir=function(e,t){e=or(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}};var sr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))};var lr=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var ur=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o};var cr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=sr(a,t.hooks);return o=lr(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),ur(o,e,a,n,r)};var hr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===hr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},gr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:rr,methods:{one:{buildNet:ir,bulkMatch:cr,bulkTagger:dr}}};const mr=/ /,pr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},fr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),mr.test(t))!function(e,t,n,r){let a=t.split(mr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),fr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var vr=br;var yr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>wr({id:e}))),t}return[wr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},Er=e=>"[object Array]"===Object.prototype.toString.call(e),jr=e=>(e=e||"").trim(),Nr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||kr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Pr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=wr({});return e.forEach((e=>{if((e=wr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ar(t=e).forEach(wr),t);var t},Ir=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Ar(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Gr=function(e){let t=Ar(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Dr={text:Ir,txt:Ir,array:Gr,flat:Gr},xr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ir(e,!0)),null):Dr.hasOwnProperty(t)?Dr[t](e):e},Tr=e=>{Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Cr=/\//;let Or=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=jr(e),!Cr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Or(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||wr({});return new Or(t)}add(e,t={}){if(Er(e))return e.forEach((e=>this.add(jr(e),t))),this;e=jr(e);let n=wr({id:e,props:t});return this.json.children.push(n),new Or(n)}remove(e){return e=jr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ar(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ar(this.json)}fillDown(){var e;return e=this.json,Ar(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Er(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Tr(this.json);let e=Ar(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Tr(this.json),xr(this.json,e)}debug(){return Tr(this.json),xr(this.json,"debug"),this}};const Br=function(e){let t=Nr(e);return new Or(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Vr=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Fr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:Vr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const $r=function(e){return e?"string"==typeof e?[e]:e:[]};var Sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=$r(e[t].children),e[t].not=$r(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var Hr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Sr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Fr(n)},Jr={one:{setTag:vr,unTag:yr,addTags:Hr}};const Lr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Mr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Lr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Lr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Wr=Mr;var Kr=function(e){Object.assign(e.prototype,Wr)};var qr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Ur=new Set(["Auxiliary","Possessive"]);var Rr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Ur.has(e)||!t.hasOwnProperty(n))return 1;if(Ur.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Qr={model:{one:{tagSet:{}}},compute:{tagRank:Rr},methods:Jr,api:Kr,lib:qr};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,_r=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var Yr=function(e){let t=[],n=e.split(Xr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const aa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},oa=RegExp("("+Object.keys(aa).join("|")+")","g"),ia=RegExp("("+Object.values(aa).join("|")+")","g"),sa=function(e){if(!e)return!1;let t=e.match(ia);return null!==t&&1===t.length};var la=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Ea=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Pa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=ya(n),n=ba(n),n=n.filter((e=>e)),n};let ja=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Na=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ia=/[\p{Punctuation}\s]+$/u,Ga=/^[\p{Punctuation}\s]+/u,Da=/['’]/,xa=/^[a-z]\.([a-z]\.)+/i,Ta=/^'[0-9]{2}/;var Ca=function(e){let t=e,n="",r="";return e=e.replace(Ga,(t=>{let r=t.match(ja);return r?(n=t.replace(ja,""),r):"'"===n&&Ta.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ia,(a=>{let o=a.match(Na);return o?(r=a.replace(Na,""),o):Da.test(a)&&/[sn]['’]$/.test(t)&&!1===Da.test(n)?(r=r.replace(Da,""),"'"):!0===xa.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}};var Oa=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")};var Ba=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const za=/([A-Z]\.)+[A-Z]?,?$/,Va=/^[A-Z]\.,?$/,Fa=/[A-Z]{2,}('s|,)?$/,$a=/([a-z]\.)+[a-z]\.?$/;var Sa=function(e){return function(e){return!0===za.test(e)||!0===$a.test(e)||!0===Va.test(e)||!0===Fa.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ha=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ba(r),r=n(r,t),r=Sa(r),e.normal=r};var Ja=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Ha(e,t)})),n})),e};const La=/[ .][A-Z]\.? *$/i,Ma=/(?:\u2026|\.{2,}) *$/,Wa=/\p{L}/u,Ka=/^[A-Z]\. $/;var qa={one:{killUnicode:Oa,tokenize:{splitSentences:ma,isSentence:function(e,t){if(!1===Wa.test(e))return!1;if(!0===La.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===Ma.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},splitTerms:Ea,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ca(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Ja}}};var Ua={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ra={},Qa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Ra[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])}))}));var Za=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let _a={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Xa={};Object.keys(_a).forEach((function(e){_a[e].split("").forEach((function(t){Xa[t]=e}))}));const Ya=/\//,eo=/[a-z]\.[a-z]/i,to=/[0-9]/;var no=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Ya.test(n)&&!eo.test(n)&&!to.test(n)){let t=n.split(Ya);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ro=/^\p{Letter}+-\p{Letter}+$/u;var ao=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ro.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var oo=function(e){let t=e.docs,n={};for(let e=0;euo(e,no),machine:e=>uo(e,ao),normal:e=>uo(e,Ha),freq:oo,offset:io,index:so,wordCount:lo},methods:qa,model:{one:{aliases:Ua,abbreviations:Ra,prefixes:Za,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Qa,unicode:Xa}},hooks:["alias","machine","index","id"]};var ho={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var mo=function(e){e.prototype.autoFill=go};var po=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const fo={safe:!0,min:3};var bo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},fo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=po(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}};var vo={model:{one:{typeahead:{}}},api:mo,lib:bo,compute:ho,hooks:["typeahead"]};b.extend(ee),b.extend(Mn),b.extend(ln),b.extend(nr),b.extend(Qr),b.plugin(Ge),b.extend(co),b.plugin(k),b.extend(We),b.extend(vo),b.extend(Ve),b.extend(gr);var yo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},wo={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const ko="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Po=ko.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ao=function(e){if(void 0!==Po[e])return Po[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var Eo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=No(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Io(wo[e]);To.test(e)?Object.keys(t).forEach((t=>{if(Oo[t]=e,"Noun|Verb"===e){let e=xo(t,Bo);Oo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Co[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Co[e]="Emoticon")),delete Co[""],delete Co.null,delete Co[" "];const zo="Adjective";var Vo={beforeTags:{Determiner:zo,Possessive:zo},afterTags:{Adjective:zo},beforeWords:{seem:zo,seemed:zo,seems:zo,feel:zo,feels:zo,felt:zo,appear:zo,appears:zo,appeared:zo,also:zo,over:zo,under:zo,too:zo,it:zo,but:zo,still:zo,really:zo,quite:zo,well:zo,very:zo,deeply:zo,profoundly:zo,extremely:zo,so:zo,badly:zo,mostly:zo,totally:zo,awfully:zo,rather:zo,nothing:zo,something:zo,anything:zo,not:zo,me:zo},afterWords:{too:zo,also:zo,or:zo}};const Fo="Gerund";var $o={beforeTags:{Adverb:Fo,Preposition:Fo,Conjunction:Fo},afterTags:{Adverb:Fo,Possessive:Fo,Person:Fo,Pronoun:Fo,Determiner:Fo,Copula:Fo,Preposition:Fo,Conjunction:Fo,Comparative:Fo},beforeWords:{been:Fo,keep:Fo,continue:Fo,stop:Fo,am:Fo,be:Fo,me:Fo,began:Fo,start:Fo,starts:Fo,started:Fo,stops:Fo,stopped:Fo,help:Fo,helps:Fo,avoid:Fo,avoids:Fo,love:Fo,loves:Fo,loved:Fo,hate:Fo,hates:Fo,hated:Fo},afterWords:{you:Fo,me:Fo,her:Fo,him:Fo,them:Fo,their:Fo,it:Fo,this:Fo,there:Fo,on:Fo,about:Fo,for:Fo}};var So={beforeTags:Object.assign({},Vo.beforeTags,$o.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Vo.afterTags,$o.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Vo.beforeWords,$o.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Vo.afterWords,$o.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ho="Singular";var Jo={beforeTags:{Determiner:Ho,Possessive:Ho,Acronym:Ho,Noun:Ho,Adjective:Ho,PresentTense:Ho,Gerund:Ho,PastTense:Ho,Infinitive:Ho,Date:Ho},afterTags:{Value:Ho,Modal:Ho,Copula:Ho,PresentTense:Ho,PastTense:Ho,Demonym:Ho},beforeWords:{the:Ho,with:Ho,without:Ho,of:Ho,for:Ho,any:Ho,all:Ho,on:Ho,cut:Ho,cuts:Ho,save:Ho,saved:Ho,saves:Ho,make:Ho,makes:Ho,made:Ho,minus:Ho,plus:Ho,than:Ho,another:Ho,versus:Ho,neither:Ho,favorite:Ho,best:Ho,daily:Ho,weekly:Ho,linear:Ho,binary:Ho,mobile:Ho,lexical:Ho,technical:Ho,computer:Ho,scientific:Ho,formal:Ho},afterWords:{of:Ho,system:Ho,aid:Ho,method:Ho,utility:Ho,tool:Ho,reform:Ho,therapy:Ho,philosophy:Ho,room:Ho,authority:Ho,says:Ho,said:Ho,wants:Ho,wanted:Ho}};const Lo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Mo={beforeTags:Object.assign({},Vo.beforeTags,Jo.beforeTags,Lo.beforeTags),afterTags:Object.assign({},Vo.afterTags,Jo.afterTags),beforeWords:Object.assign({},Vo.beforeWords,Jo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vo.afterWords,Jo.afterWords)};const Wo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ko={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},qo={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Uo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ro={beforeTags:Object.assign({},Vo.beforeTags,Wo),afterTags:Object.assign({},Vo.afterTags,Ko),beforeWords:Object.assign({},Vo.beforeWords,qo),afterWords:Object.assign({},Vo.afterWords,Uo)};const Qo="Infinitive";var Zo={beforeTags:{Modal:Qo,Adverb:Qo,Negative:Qo,Plural:Qo},afterTags:{Determiner:Qo,Adverb:Qo,Possessive:Qo,Preposition:Qo},beforeWords:{i:Qo,we:Qo,you:Qo,they:Qo,to:Qo,please:Qo,will:Qo,have:Qo,had:Qo,would:Qo,could:Qo,should:Qo,do:Qo,did:Qo,does:Qo,can:Qo,must:Qo,us:Qo,me:Qo,he:Qo,she:Qo,it:Qo,being:Qo},afterWords:{the:Qo,me:Qo,you:Qo,him:Qo,her:Qo,them:Qo,it:Qo,a:Qo,an:Qo,up:Qo,down:Qo,by:Qo,out:Qo,off:Qo,under:Qo,when:Qo,all:Qo,to:Qo,because:Qo,although:Qo,before:Qo,how:Qo,otherwise:Qo,together:Qo,though:Qo,yet:Qo}};const _o={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xo={beforeTags:Object.assign({},Vo.beforeTags,Zo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Vo.afterTags,Zo.afterTags,_o.afterTags),beforeWords:Object.assign({},Vo.beforeWords,Zo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vo.afterWords,Zo.afterWords,{to:void 0})};const Yo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ei={},ti={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ni={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ri={beforeTags:Object.assign({},$o.beforeTags,Jo.beforeTags,Yo),afterTags:Object.assign({},$o.afterTags,Jo.afterTags,ei),beforeWords:Object.assign({},$o.beforeWords,Jo.beforeWords,ti),afterWords:Object.assign({},$o.afterWords,Jo.afterWords,ni)};var ai={beforeTags:Object.assign({},Zo.beforeTags,Jo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Zo.afterTags,Jo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Zo.beforeWords,Jo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Zo.afterWords,Jo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const oi="Person";var ii={beforeTags:{Honorific:oi,Person:oi,Preposition:oi},afterTags:{Person:oi,ProperNoun:oi,Verb:oi},ownTags:{ProperNoun:oi},beforeWords:{hi:oi,hey:oi,yo:oi,dear:oi,hello:oi},afterWords:{said:oi,says:oi,told:oi,tells:oi,feels:oi,felt:oi,seems:oi,thinks:oi,thought:oi,spends:oi,spendt:oi,plays:oi,played:oi,sing:oi,sang:oi,learn:oi,learned:oi,wants:oi,wanted:oi}};const si="Month",li={beforeTags:{Date:si,Value:si},afterTags:{Date:si,Value:si},beforeWords:{by:si,in:si,on:si,during:si,after:si,before:si,between:si,until:si,til:si,sometime:si,of:si,this:si,next:si,last:si,previous:si,following:si},afterWords:{sometime:si,in:si,of:si,until:si,the:si}};var ui={beforeTags:Object.assign({},ii.beforeTags,li.beforeTags),afterTags:Object.assign({},ii.afterTags,li.afterTags),beforeWords:Object.assign({},ii.beforeWords,li.beforeWords),afterWords:Object.assign({},ii.afterWords,li.afterWords)};const ci={Place:"Place"},hi={Place:"Place",Abbreviation:"Place"},di={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},gi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let mi="Unit";const pi="Honorific";let fi={first:pi,general:pi,royal:pi,vice:pi,rear:pi,major:pi};const bi={"Adj|Gerund":So,"Adj|Noun":Mo,"Adj|Past":Ro,"Adj|Present":Xo,"Noun|Verb":ai,"Noun|Gerund":ri,"Person|Noun":{beforeTags:Object.assign({},Jo.beforeTags,ii.beforeTags),afterTags:Object.assign({},Jo.afterTags,ii.afterTags),beforeWords:Object.assign({},Jo.beforeWords,ii.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Jo.afterWords,ii.afterWords)},"Person|Date":ui,"Person|Verb":{beforeTags:Object.assign({},ii.beforeTags,Zo.beforeTags),afterTags:Object.assign({},ii.afterTags,Zo.afterTags),beforeWords:Object.assign({},ii.beforeWords,Zo.beforeWords),afterWords:Object.assign({},ii.afterWords,Zo.afterWords)},"Person|Place":{beforeTags:Object.assign({},ci,ii.beforeTags),afterTags:Object.assign({},hi,ii.afterTags),beforeWords:Object.assign({},di,ii.beforeWords),afterWords:Object.assign({},gi,ii.afterWords)},"Unit|Noun":{beforeTags:{Value:mi},afterTags:{},beforeWords:{per:mi,every:mi,each:mi,square:mi,cubic:mi,sq:mi,metric:mi},afterWords:{per:mi,squared:mi,cubed:mi,long:mi}},"Honorific|Noun":{beforeTags:{Honorific:pi,ProperNoun:pi,Ordinal:pi},afterTags:{Person:pi,ProperNoun:pi},beforeWords:Object.assign({},fi,{honorable:pi,honourable:pi,worship:pi,excellency:pi,majesty:pi,right:pi}),afterWords:fi}},vi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};bi["Plural|Verb"]={beforeWords:vi(bi["Noun|Verb"].beforeWords,{}),afterWords:vi(bi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:vi(bi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:vi(bi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yi=bi;const wi="Adjective",ki="Infinitive",Pi="PresentTense",Ai="Singular",Ei="PastTense",ji="Adverb",Ni="Plural",Ii="Verb",Gi="LastName",Di="Participle";var xi=[null,null,{ea:Ai,ia:"Noun",ic:wi,ly:ji,"'n":Ii,"'t":Ii},{oed:Ei,ued:Ei,xed:Ei," so":ji,"'ll":"Modal","'re":"Copula",azy:wi,eer:"Noun",end:Ii,ped:Ei,ffy:wi,ify:ki,ing:"Gerund",ize:ki,ibe:ki,lar:wi,mum:wi,nes:Pi,nny:wi,ous:wi,que:wi,rol:Ai,sis:Ai,ogy:Ai,oid:Ai,ian:Ai,zes:Pi,eld:Ei,ken:Di,ven:Di,ten:Di,ect:ki,ict:ki,ign:ki,ful:wi,bal:wi},{amed:Ei,aped:Ei,ched:Ei,lked:Ei,rked:Ei,reed:Ei,nded:Ei,mned:wi,cted:Ei,dged:Ei,ield:Ai,akis:Gi,cede:ki,chuk:Gi,czyk:Gi,ects:Pi,ends:Ii,enko:Gi,ette:Ai,wner:Ai,fies:Pi,fore:ji,gate:ki,gone:wi,ices:Ni,ints:Ni,ruct:ki,ines:Ni,ions:Ni,less:wi,llen:wi,made:wi,nsen:Gi,oses:Pi,ould:"Modal",some:wi,sson:Gi,tion:Ai,tage:"Noun",ique:Ai,tive:wi,tors:"Noun",vice:Ai,lier:Ai,fier:Ai,wned:Ei,gent:Ai,tist:Ai,pist:Ai,rist:Ai,mist:Ai,yist:Ai,vist:Ai,lite:Ai,site:Ai,rite:Ai,mite:Ai,bite:Ai,mate:Ai,date:Ai,ndal:Ai,vent:Ai,uist:Ai,gist:Ai,note:Ai,cide:Ai,wide:wi,vide:ki,ract:ki,duce:ki,pose:ki,eive:ki,lyze:ki,lyse:ki,iant:wi,nary:wi},{elist:Ai,holic:Ai,phite:Ai,tized:Ei,urned:Ei,eased:Ei,ances:Ni,bound:wi,ettes:Ni,fully:ji,ishes:Pi,ities:Ni,marek:Gi,nssen:Gi,ology:"Noun",osome:Ai,tment:Ai,ports:Ni,rough:wi,tches:Pi,tieth:"Ordinal",tures:Ni,wards:ji,where:ji,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Ai,scent:Ai,onist:Ai,anist:Ai,alist:Ai,olist:Ai,icist:Ai,ounce:ki,iable:wi,borne:wi,gnant:wi,inant:wi,igent:wi,atory:wi,rient:Ai,dient:Ai},{auskas:Gi,parent:Ai,cedent:Ai,ionary:Ai,cklist:Ai,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Gi,borough:"Place",sdottir:Gi}];const Ti="Adjective";var Ci=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Ti,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Ti,tele:"Noun","pro-":Ti,"mis-":"Verb","dis-":"Verb","pre-":Ti},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Ti,radio:"Noun",tetra:"Noun","omni-":Ti,"post-":Ti},{pseudo:Ti,"extra-":Ti,"hyper-":Ti,"inter-":Ti,"intra-":Ti,"deca-":Ti},{electro:"Noun"}];const Oi="Adjective",Bi="Infinitive",zi="PresentTense",Vi="Singular",Fi="PastTense",$i="Expression",Si="LastName";var Hi={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Si],[/.[^aeiou]ica$/,Vi,"harmonica"],[/^([hyj]a+)+$/,$i,"haha"]],c:[[/.[^aeiou]ic$/,Oi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Fi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Fi,"rammed"],[/.[aeiou][sg]hed$/,Fi,"gushed"],[/.[aeiou]red$/,Fi,"hired"],[/.[aeiou]r?ried$/,Fi,"hurried"],[/[^aeiou]ard$/,Vi,"steward"],[/[aeiou][^aeiou]id$/,Oi,""],[/.[vrl]id$/,Oi,"livid"],[/..led$/,Fi,"hurled"],[/.[iao]sed$/,Fi,""],[/[aeiou]n?[cs]ed$/,Fi,""],[/[aeiou][rl]?[mnf]ed$/,Fi,""],[/[aeiou][ns]?c?ked$/,Fi,"bunked"],[/[aeiou]gned$/,Fi],[/[aeiou][nl]?ged$/,Fi],[/.[tdbwxyz]ed$/,Fi],[/[^aeiou][aeiou][tvx]ed$/,Fi],[/.[cdflmnprstv]ied$/,Fi,"emptied"]],e:[[/.[lnr]ize$/,Bi,"antagonize"],[/.[^aeiou]ise$/,Bi,"antagonise"],[/.[aeiou]te$/,Bi,"bite"],[/.[^aeiou][ai]ble$/,Oi,"fixable"],[/.[^aeiou]eable$/,Oi,"maleable"],[/.[ts]ive$/,Oi,"festive"],[/[a-z]-like$/,Oi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Oi,"cornish"],[/.v[iy]ch$/,Si,"..ovich"],[/^ug?h+$/,$i,"ughh"],[/^uh[ -]?oh$/,$i,"uhoh"],[/[a-z]-ish$/,Oi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Si,"polish-male"]],k:[[/^(k){2}$/,$i,"kkkk"]],l:[[/.[gl]ial$/,Oi,"familial"],[/.[^aeiou]ful$/,Oi,"fitful"],[/.[nrtumcd]al$/,Oi,"natal"],[/.[^aeiou][ei]al$/,Oi,"familial"]],m:[[/.[^aeiou]ium$/,Vi,"magnesium"],[/[^aeiou]ism$/,Vi,"schism"],[/^[hu]m+$/,$i,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Oi,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,$i,"noooo"],[/^(yo)+$/,$i,"yoo"],[/^wo{2,}[pt]?$/,$i,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Vi],[/[^i]fer$/,Bi],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Oi],[/[aeiou].*ist$/,Oi],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,zi],[/.[rln]ates$/,zi],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Vi],[/.[aeiou]sks$/,zi],[/.[aeiou]kes$/,zi],[/[aeiou][^aeiou]is$/,Vi],[/[a-z]'s$/,"Noun"],[/^yes+$/,$i]],v:[[/.[^aeiou][ai][kln]ov$/,Si]],y:[[/.[cts]hy$/,Oi],[/.[st]ty$/,Oi],[/.[tnl]ary$/,Oi],[/.[oe]ry$/,Vi],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Oi],[/...lly$/,"Adverb"],[/.[gk]y$/,Oi],[/[bszmp]{2}y$/,Oi],[/.[ai]my$/,Oi],[/[ea]{2}zy$/,Oi],[/.[^aeiou]ity$/,Vi]]};const Ji="Verb",Li="Noun";var Mi={leftTags:[["Adjective",Li],["Possessive",Li],["Determiner",Li],["Adverb",Ji],["Pronoun",Ji],["Value",Li],["Ordinal",Li],["Modal",Ji],["Superlative",Li],["Demonym",Li],["Honorific","Person"]],leftWords:[["i",Ji],["first",Li],["it",Ji],["there",Ji],["not",Ji],["because",Li],["if",Li],["but",Li],["who",Ji],["this",Li],["his",Li],["when",Li],["you",Ji],["very","Adjective"],["old",Li],["never",Ji],["before",Li],["a","Singular"],["the",Li],["been",Ji]],rightTags:[["Copula",Li],["PastTense",Li],["Conjunction",Li],["Modal",Li]],rightWords:[["there",Ji],["me",Ji],["man","Adjective"],["only",Ji],["him",Ji],["it",Ji],["were",Li],["took",Li],["himself",Ji],["went",Li],["who",Li],["jr","Person"]]},Wi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ki={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},qi={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Ui={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Ri={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Qi=/^.([0-9]+)/;var Zi=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Qi);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Qi,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},Xi=/^([0-9]+)/,Yi=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Xi);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Xi,"")]}(n[0],n[1])}))};var es=function(e={}){return(e=Object.assign({},e)).rules=Yi(e.rules),e.rules=_i(e.rules),e.rev&&(e.rev=Yi(e.rev),e.rev=_i(e.rev)),e.exceptions=Yi(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e};var ts=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const ns=es({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),rs=es(Ui),as=es(Ki),os=es(qi),is=ts(ns),ss=ts(rs),ls=ts(as),us=ts(os),cs=es(Wi),hs=es(Ri);var ds={fromPast:ns,fromPresent:rs,fromGerund:as,fromParticiple:os,toPast:is,toPresent:ss,toGerund:ls,toParticiple:us,toComparative:cs,toSuperlative:hs,fromComparative:ts(cs),fromSuperlative:ts(hs)},gs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),ms=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var ps=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(bs[t].forEach((n=>e[n]=t)),e)),{});var vs=bs;var ys=function(e){let t=e.substring(e.length-3);if(!0===vs.hasOwnProperty(t))return vs[t];let n=e.substring(e.length-2);return!0===vs.hasOwnProperty(n)?vs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ws={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var ks=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=ys(e)),ws.hasOwnProperty(e))c=ws[e];else if("Participle"===n)c=Zi(l,i);else if("PastTense"===n)c=Zi(l,r);else if("PresentTense"===n)c=Zi(l,a);else{if("Gerund"!==n)return e;c=Zi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var Ps=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Zi(i,n),PresentTense:Zi(i,r),Gerund:Zi(i,a),FutureTense:"will "+e},u=Zi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var As={toInfinitive:ks,conjugate:Ps,all:function(e,t){let n=Ps(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};var Es=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const js=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ns={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Is=function(e){if(Ns.hasOwnProperty(e))return Ns[e];let t=Es(e,js);return t||e+"ly"};const Gs=function(e,t){const n=t.two.models.toSuperlative;return Zi(e,n)},Ds=function(e,t){const n=t.two.models.toComparative;return Zi(e,n)},xs="ically",Ts=new Set(["analyt"+xs,"chem"+xs,"class"+xs,"clin"+xs,"crit"+xs,"ecolog"+xs,"electr"+xs,"empir"+xs,"frant"+xs,"grammat"+xs,"ident"+xs,"ideolog"+xs,"log"+xs,"mag"+xs,"mathemat"+xs,"mechan"+xs,"med"+xs,"method"+xs,"method"+xs,"mus"+xs,"phys"+xs,"phys"+xs,"polit"+xs,"pract"+xs,"rad"+xs,"satir"+xs,"statist"+xs,"techn"+xs,"technolog"+xs,"theoret"+xs,"typ"+xs,"vert"+xs,"whims"+xs]),Cs=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Os=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Bs={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var zs=function(e){return e.endsWith("ly")?Ts.has(e)?e.replace(/ically/,"ical"):Os.has(e)?null:Bs.hasOwnProperty(e)?Bs[e]:Es(e,Cs)||e:null};const Vs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Fs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},$s=new Set(["terrible","annoying"]);var Ss={toSuperlative:Gs,toComparative:Ds,toAdverb:Is,toNoun:function(e){if(Fs.hasOwnProperty(e))return Fs[e];if($s.has(e))return null;let t=Es(e,Vs);return t||e+"ness"},fromAdverb:zs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Zi(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Zi(e,n)},all:function(e,t){let n=[e];return n.push(Gs(e,t)),n.push(Ds(e,t)),n.push(Is(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Hs={noun:fs,verb:As,adjective:Ss},Js={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Ls=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Js.hasOwnProperty(i)&&Js[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var Ms=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!qs.find((t=>e.endsWith(t)))},Rs={two:{quickSplit:Ms,expandLexicon:Ls,transform:Hs,looksPlural:Us}};var Qs=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const Zs=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var _s=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Zs(n,"Infinitive","PastTense"),Object.assign(s,l),l=Zs(r,"Infinitive","Verb"),Object.assign(s,l),l=Zs(a,"Infinitive","Gerund"),Object.assign(s,l),l=Zs(o,"Adjective","Superlative"),Object.assign(s,l),l=Zs(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Xs={two:{models:ds}};const Ys={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},el=function(e,t){const n={model:t,methods:Rs};let{lex:r,_multi:a}=Rs.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},tl=function(e,t,n){let r=Ps(e,Xs);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},nl=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=Ys[o],"Noun|Verb"!==o&&"Person|Verb"!==o||tl(a,r,!1),"Adj|Present"===o&&(tl(a,r,!0),function(e,t,n){let r=Gs(e,n);t[r]=t[r]||"Superlative";let a=Ds(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=ks(a,Xs,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=ks(a,Xs,"PastTense");r[e]||(n[e]="Infinitive")}})),t=el(n,t)};var rl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=el(e.one.lexicon,e)).one.lexicon,e),e=nl(e.two.switches,e),e=_s(e),e=Qs(e)};let al={one:{_multiCache:{},lexicon:Co},two:{irregularPlurals:yo,models:ds,suffixPatterns:xi,prefixPatterns:Ci,endsWith:Hi,neighbours:Mi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Oo,clues:yi,uncountable:{},orgWords:gs}};al=rl(al);var ol=al;const il=/^(under|over|mis|re|un|dis|semi)-?/;var sl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(il.test(a.normal)){let e=a.normal.replace(il,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var ll=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const ul=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var cl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(Us(e.normal)?ll(e,"Plural","3-plural-guess"):ll(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ys(e.normal);t&&ll(e,t,"3-verb-tense-guess")}}(r)};const hl=/^\p{Lu}[\p{Ll}'’]/u,dl=/[0-9]/,gl=["Date","Month","WeekDay","Unit"],ml=/^[IVXLCDM]{2,}$/,pl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,fl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var bl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===hl.test(o)&&!1===dl.test(o)?gl.find((e=>r.tags.has(e)))?null:(cl(e,t,n),r.tags.has("Noun")||r.tags.clear(),ll(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&ml.test(o)&&pl.test(o)&&!fl[r.normal]?(ll(r,"RomanNumeral","2-xvii"),!0):null};const vl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var yl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=vl(r.normal,n.two.suffixPatterns);if(null!==e)return ll(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=vl(r.implicit,n.two.suffixPatterns),null!==e))return ll(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const wl=/['‘’‛‵′`´]/,kl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ll(r,e,"2-prefix"),r.confidence=.5,!0}return null};const El=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),jl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!El.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},Nl=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},Il=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Gl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(jl(a)||jl(o))return ll(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Nl(a)||Nl(o))return ll(n,"Year","2-tagYear-close");if(Il(e[t-2])||Il(e[t+2]))return ll(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ll(n,"Year","2-tagYear-noun")}}}return null};const Dl=/^[A-Z]('s|,)?$/,xl=/^[A-Z-]+$/,Tl=/([A-Z]\.)+[A-Z]?,?$/,Cl=/[A-Z]{2,}('s|,)?$/,Ol=/([a-z]\.)+[a-z]\.?$/,Bl={I:!0,A:!0};var zl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===xl.test(n)||n.length>5||Bl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Tl.test(n)&&!0!==Ol.test(n)&&!0!==Dl.test(n)&&!0!==Cl.test(n))}(r,n)?(r.tags.clear(),ll(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Bl.hasOwnProperty(r.text)&&Dl.test(r.text)?(r.tags.clear(),ll(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ll(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&xl.test(r.text)&&r.text.length<=6?(ll(r,"Acronym","3-titlecase-acronym"),!0):null};const Vl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Fl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var $l=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Vl(e[t-1],a),l=l||Vl(e[t+1],o),l=l||Fl(e[t-1],r),l=l||Fl(e[t+1],i),l)return ll(s,l,"3-[neighbour]"),cl(e,t,n),e[t].confidence=.2,!0}return null};const Sl=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Hl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Sl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Sl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Jl=function(e,t,n){0===e[t].tags.size&&(ll(e[t],"Noun","3-[fallback]"),cl(e,t,n),e[t].confidence=.1)};const Ll=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ml=(e,t,n)=>0!==t||e[1]?null:n,Wl={"Adj|Gerund":(e,t)=>Ll(e,t),"Adj|Noun":(e,t)=>Ll(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Ll(e,t),"Adj|Present":(e,t)=>Ll(e,t),"Noun|Gerund":(e,t)=>Ll(e,t),"Noun|Verb":(e,t)=>Ll(e,t)||Ml(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ll(e,t)||Ml(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ll(e,t),"Person|Verb":(e,t)=>0!==t?Ll(e,t):null};var Kl=Wl;const ql="undefined"!=typeof process&&process.env?process.env:self.env||{},Ul=/^(under|over|mis|re|un|dis|semi)-?/,Rl=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&ql.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ql=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&ql.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var Zl=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Ul.test(l)&&!o[l]&&(l=l.replace(Ul,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Rl(e[t+1],n.afterWords);return o=o||Rl(e[t-1],n.beforeWords),o=o||Ql(e[t-1],n.beforeTags,a),o=o||Ql(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Kl[o]&&(u=Kl[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),cl(e,t,r)):ql.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};var _l=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ll(o,"Verb","3-[prefix]"),ll(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ll(o,"Adjective","3-[prefix]"),ll(o,"Prefix","3-[prefix]")))};const Xl={tagSwitch:sl,checkSuffix:yl,checkRegex:Pl,checkCase:bl,checkPrefix:Al,checkHyphen:_l,checkYear:Gl},Yl={checkAcronym:zl,neighbours:$l,orgWords:Hl,nounFallback:Jl,switches:Zl},eu=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var au=function(e){const t=e.world,n=Object.keys(ru);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=fu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=pu};var vu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const yu=/'/;var wu=function(e,t){let n=e[t].normal.split(yu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const ku=/'/;var Pu=function(e,t){let n=e[t].normal.split(ku)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var Au=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Eu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ju={in:!0,by:!0,for:!0};var Nu=(e,t)=>{let n=e[t];if(Eu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===ju[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Iu=/'/,Gu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Du={d:(e,t)=>Pu(e,t),t:(e,t)=>Au(e,t),s:(e,t,n)=>Nu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):wu(e,t)},xu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Tu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Iu.test(r[o].normal)&&([,i]=r[o].normal.split(Iu));let s=null;Du.hasOwnProperty(i)&&(s=Du[i](r,o,t)),s&&(s=xu(s,e),vu(n,[a,o],s),Gu(n[a],e,o,s.length))}}))}},Cu={compute:Tu,api:bu,hooks:["contractionTwo"]};const Ou="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const Bu=["i","we","they"];let zu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Ou} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Ou} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Ou}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Bu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Bu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Bu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let Vu=null;var Fu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Vu=Vu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Vu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const $u={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Fu,model:{two:{matches:zu}},hooks:["postTagger"]};var Su=$u;var Hu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var Ju=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Hu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Lu={lib:{lazy:Ju}};var Mu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var Wu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Mu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Ku={api:function(e){e.prototype.swap=Wu}};b.plugin(du),b.plugin(Cu),b.plugin(Su),b.plugin(Lu),b.plugin(Ku);export{b as default}; diff --git a/changelog.md b/changelog.md index d990ee351..d51277f3c 100644 --- a/changelog.md +++ b/changelog.md @@ -6,9 +6,13 @@ compromise uses semver, and pushes to npm and github frequently While all _Major_ releases should be reviewed, our only _large_ releases are **v6** in 2016 **v12** in 2019 and **v14** in 2022. Others have been mostly incremental. - +#### 14.6.0 [Oct 2022] +- **[change]** - move internal conjugation methods +- **[update]** - github scripts + #### 14.5.2 [Oct 2022] - **[fix]** - runtime error #965 - **[fix]** - misc possessive tagging issues diff --git a/scratch.js b/scratch.js index 90ea385f5..01a1c930a 100644 --- a/scratch.js +++ b/scratch.js @@ -1,5 +1,5 @@ /* eslint-disable no-console, no-unused-vars */ -import nlp from './src/two.js' +import nlp from './src/three.js' // console.log(nlp.world().methods.two.transform) // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) @@ -38,7 +38,7 @@ import nlp from './src/two.js' // let doc = nlp('i strolled downtown') // doc.match('{stroll}') -nlp.parseMatch('{stroll}') +// nlp.parseMatch('{stroll}') // doc.swap('stroll', 'walk') // console.log(nlp.parseMatch('{kiss/verb}')) @@ -48,7 +48,55 @@ nlp.parseMatch('{stroll}') // let net = nlp.buildNet([{ match: 'his .', ifNo: ['demanding', 'rights'] }]) // doc.match(net).debug() -// let doc = nlp("he said I am a boy") + + + +let arr = [ + "Police say they have nothing to go on.", + "proper adjustment, depending upon the character of the general effect.", + "I'm glad that we stopped kissing the tar on the highway", + "MHC", + "I've been \"trying it\" for months now.", + "Dear dear I reach home le!", + "Heat waves, droughts, wildfires, and floods – all are now more frequent and intense.", + "Click and drag the “aether” and “gilded-games-util” .jar files from your desktop and into the Minecraft folder.", + "Between the hepatocyte plates are liver sinusoids, which are enlarged capillaries through which blood from the hepatic portal vein and hepatic artery enters via the portal triads, then drains to the central vein.", + "But, the wings are cooked in soy!", + "If you can trust me with this cross till to-morrow, Rosina, I should like to have it examined and analysed.", + "Are you, are you, are you sure it’s ah, a new bump?", + "OF FOOTBALL AND DIL CHAHTA HAI", + "In chapter 8, this tribe of Israelites is appointed to work in the tabernacle", + "As Mr Peanut left his house, he said to his wife, \"see you, I'll be back in a Jif", + "sensible forms for the purpose of conveying a particular meaning.", + "He watches, lurking beneath the sea", + "Brandee", + "Only somewhat related: I wonder sometimes if simile and analogy resonate or mean as much to some people.", + "Ya had just now.", + "To cut through the barriers of hateful propaganda, the Voice of America and other broadcast services are expanding their programming in Arabic and Persian - and soon, a new television service will begin providing reliable news and information across the region.", + "Ask your sponsor to sign a DD FORM 1172-2.", + "The modern adventure novel goes back to Daniel Defoe's Robinson Crusoe (1719) and its immediate successors.", + "They have a couple tables where you can eat there too if you want.", + "But we keep his Majesty the Inca waiting, said Prigio.", + "MONICA: No, I will not cave.", + "Patients made to vanish on Malaria Day", + "Stances include regular, goofy foot & this one that angles the toes of both feet in opposite directions", + "I failed my audition as Romeo through a misunderstanding over a stage direction.", + "She was a oneyer, if you like, sir", + "Life's a schoolyard, I ain't gettin' picked last (oh oh)", + "Jane", + "I've *never* been able to shop at all the \"cute\" stores - Abercrombie, Hollister, Aeropostale, American Eagle..all those places that seem like such a big deal when you're in junior high and high school.", + "He got in touch with me last night and wants me to meet him today at 2 pm", + "I respect that part of our culture; I grew up in it.", + "Check with your state and local governments.", +] + +// let doc = nlp("he said I am a boy, so far") +let i = 14 +let txt = arr[i] +txt = 'so lentils, or pasta for your sauce' +let doc = nlp(txt) +console.log(doc.text()) +doc.clauses().debug() // console.log(doc.sentences().json()) // [ { form: 'simple-present', tense: 'PresentTense', copula: true } ] diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js index a9cefe371..8d4a64138 100644 --- a/src/2-two/preTagger/model/lexicon/_data.js +++ b/src/2-two/preTagger/model/lexicon/_data.js @@ -3,12 +3,13 @@ export default { "Comparative": "true¦better", "Superlative": "true¦earlier", "PresentTense": "true¦sounds", - "Condition": "true¦lest,unless", + "Condition": "true¦unless", + "Conjunction": "true¦aXbTcuz,evenRhowPiHjust00lest,noEoCp8supposing,t5wh0yet;at,e2il1o0;evOse;e,st;nevMre0thM; if,vL;h0o;erefOo0;!uU;lus,rovide0; 1d0;! 0;th9;r0therwiJ;! not; mattBr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mFcaCorder t0;h0o;at;! 0;only,t0w0;hen;!ev0;er;! 0;if,t8;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh", "PastTense": "true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan", "Gerund": "true¦accord0be0go0result0stain0;ing", "Expression": "true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la", "Negative": "true¦n0;ever,o0;n,t", - "QuestionWord": "true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s", + "QuestionWord": "true¦how3wh0;e1ich,o0y;!m;n,re; come,'s", "Reflexive": "true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self", "Plural": "true¦ones,records", "Unit|Noun": "true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s", @@ -48,10 +49,9 @@ export default { "LastName": "true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta", "MaleName": "true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on", "Person": "true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er", - "Adjective": "true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt", + "Adjective": "true¦0:96;1:82;2:7Z;3:8X;4:8R;5:6F;6:83;7:87;8:8S;9:8E;A:5X;a7Ob78c6Qd68e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart64r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Jzy;despr8Gs6F;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b96ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Y;ef77u4;b68ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e71i2FoDpCuB;pervis1spect2;e0ok6Z;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6Q;mploy1nd2xpect1;eBue;cid1rB;!a6TcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Aip 1PoCrB;anspa70i3;gethAle84rp9;ena6HmpCrB;r3Gtia6R;e8o6P;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb71;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb51;eq74tanda7Q;atu6BeFi0UrByl3U;aBin4E;ightBy; fBfB;or5Z;adfa7Iri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Kiet;ndBth0X;pro6G;d9ry;at1;ll1;g1XnB;ce59g6;am31eA;at1co1Iem5lf3BnBre7;so5X;ath2holBient2L;ar5;cr1me,tisfac5O;aJeEheumato9iCoB;bu6Ytt5Ay4;ghtBv4;-w2f56;bYcEdu6PlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6OrCuB;bl5Wnjabi;eGiEoB;!b2RfCmi3CpBv4Xxi20;er,ort61;a7u64;maBor,sti7va3;!ry;ci61exist2mBpa9;a1Pi64;c9id;ac29rBti3;fe68ma33ti33v5W;i29rCsB;s5Rt;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Vg1N; bBbBgo2li7;oa61;fashion1school;!ay; gua5YbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Mprof2AsB;top;la0;ght5;arby,cessa4Dighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4F;da3Wy;ali2Joth;ab39ho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3Q;ngu9ps1st;aput,ind5nB;ow2;gno4Xll03mVnDpso 25rB;a3releB;va0; QaPcoMdJe2AfIhibi3DiWnHoGsDtBvalu0V;a4KeB;n48rdep1U;a7igColBuboD;ub6ve0;nifica0;rdi41;a3er;eriCluenOreq3X;eCiEoB;or;fini3p1Ltermi3W;mpCnside8rB;re48;le3;ccu8deq3Xppr37;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe40;ti4;aCeBi0T;d2Zn3M;tu23;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3I;me ma2CnCrrBs04ur5;if30;e3Qo2J;ghfalut1LspB;an2X;lUpf1X;lCnBrdZtI;dy;f,low1;aiHener2Siga26lob4oGraDuB;ilBng ho;ty;cCtB;ef1Pis;ef1O;od;nf1M;aPeMinLlJoErB;aCeBoz1M;q2Ptf1J;gi6nt2H;olErB; keeps,eBge0FmAtu2Owa38;go2i1CseeB;ab6;ish;ag37uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Hmiliar,r Bux;oBreach2;ff;aOfficie0lMmJnHqu4re2Pthere4veryday,xB;a2Oem2RplEquisi3traDuB;be2WlB;ta0;!va1H;icB;it; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt", "Determiner": "true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er", "Adverb": "true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori", - "Conjunction": "true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh", "Currency": "true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s", "Adj|Present": "true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht", "Comparable": "true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd", diff --git a/src/3-three/chunker/api/clauses.js b/src/3-three/chunker/api/clauses.js index 9113c0666..d890c905f 100644 --- a/src/3-three/chunker/api/clauses.js +++ b/src/3-three/chunker/api/clauses.js @@ -1,37 +1,58 @@ +const byComma = function (doc) { + let commas = doc.match('@hasComma') + // remove any non-clause uses + commas = commas.filter(m => { + // don't split the first word + if (m.growLeft('.').wordCount() === 1) { + return false + } + // don't split the last word + if (m.growRight('. .').wordCount() === 1) { + return false + } + let more = m.grow(".") // grow by 1 word in either direction + more = more.ifNo('@hasComma @hasComma') //fun, cool... + more = more.ifNo('@hasComma (and|or) .') //cool, and fun + more = more.ifNo('(#City && @hasComma) #Country') //'toronto, canada' + more = more.ifNo('(#WeekDay && @hasComma) #Date') //'tuesday, march 2nd' + more = more.ifNo('(#Date+ && @hasComma) #Value') //'july 6, 1992' + // more = more.ifNo('@hasComma (too|also)$') //at end of sentence + return more.found + }) + + + return doc.splitAfter(commas) +} + const clauses = function (n) { - // an awkward way to disambiguate a comma use - let commas = this.if('@hasComma') - .ifNo('@hasComma @hasComma') //fun, cool... - .ifNo('@hasComma (and|or) .') //cool, and fun - .ifNo('(#City && @hasComma) #Country') //'toronto, canada' - .ifNo('(#WeekDay && @hasComma) #Date') //'tuesday, march 2nd' - .ifNo('(#Date+ && @hasComma) #Value') //'july 6, 1992' - .ifNo('@hasComma (too|also)$') //at end of sentence - .match('@hasComma') - let found = this.splitAfter(commas) - - // let quotes = found.quotations() - // found = found.splitOn(quotes) - - // let parentheses = found.parentheses() - // found = found.splitOn(parentheses) + let found = byComma(this) + + found = found.splitAfter('(@hasEllipses|@hasSemicolon|@hasDash)') // it is cool and it is .. - let conjunctions = found.if('#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb').match('#Conjunction') - found = found.splitBefore(conjunctions) + // let conjunctions = found.if('#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb').match('#Conjunction') + // found = found.splitBefore(conjunctions) + + // // if it is this then that + // let condition = found.if('if .{2,9} then .').match('then') + // found = found.splitBefore(condition) - // if it is this then that - let condition = found.if('if .{2,9} then .').match('then') - found = found.splitBefore(condition) + // // misc clause partitions + // found = found.splitBefore('as well as .') + // found = found.splitBefore('such as .') + // found = found.splitBefore('in addition to .') + + // // semicolons, dashes + // found = found.splitAfter('@hasSemicolon') + // found = found.splitAfter('@hasDash') + + // // + // found = found.splitBefore('which (were|are|will)') + + // // he said [...] + // found = found.splitAfter('#Noun (said|say|says)') - // misc clause partitions - found = found.splitBefore('as well as .') - found = found.splitBefore('such as .') - found = found.splitBefore('in addition to .') - // semicolons, dashes - found = found.splitAfter('@hasSemicolon') - found = found.splitAfter('@hasDash') // passive voice verb - '.. which was robbed is empty' // let passive = found.match('#Noun (which|that) (was|is) #Adverb? #PastTense #Adverb?') @@ -44,11 +65,14 @@ const clauses = function (n) { // found = found.splitAfter(passive) // } // does there appear to have relative/subordinate clause still? - let tooLong = found.filter(d => d.wordCount() > 5 && d.match('#Verb+').length >= 2) - if (tooLong.found) { - let m = tooLong.splitAfter('#Noun .* #Verb .* #Noun+') - found = found.splitOn(m.eq(0)) - } + // let tooLong = found.filter(d => d.wordCount() > 5 && d.match('#Verb+').length >= 2) + // if (tooLong.found) { + // // and after the .. + // found = found.splitBefore('#Conjunction #Preposition') + + // // let m = tooLong.splitAfter('#Noun .* #Verb .* #Noun+') + // // found = found.splitOn(m.eq(0)) + // } if (typeof n === 'number') { found = found.get(n) diff --git a/tests/three/chunker/clauses.test.js b/tests/three/chunker/clauses.test.js index 728c1c1d2..1ec320e62 100644 --- a/tests/three/chunker/clauses.test.js +++ b/tests/three/chunker/clauses.test.js @@ -2,7 +2,42 @@ import test from 'tape' import nlp from '../_lib.js' const here = '[three/clauses] ' -test('clauses - with commas', function (t) { +test('clauses-count', function (t) { + let arr = [ + ['In fact, you are the most beautiful', 2], + ['And this July, we will begin to bring our troops home.', 2], + ['And keep ya cup, we drink whole bottles', 2], + [`I think I'm gonna stay here.. I desperately need to pack`, 2], + ['and if time and budget permits, make cute little thank-you bags for your friends.', 2], + [`Located at the mouth of the Demerara River, it's the capital & largest city`, 2], + [`For the most part, I really like this Starbucks.`, 2], + [`I'm telling you, she gives the worst massages ever!!`, 2], + [`Emily won't let Ross see Rachel, we're not gonna stop seeing Rachel, hence Ross stops seeing us!`, 3], + [`More than anyone else in our society, they know the true difficulty`, 2], + [`Dear ladies and gentlemen, im organising a trip to ily `, 2], + [`According to some sources, his heart remained at Missolonghi.`, 2], + [`After the 1979 electoral defeat of the Labour Party, she took over for Prime Minister James Callaghan`, 2], + [`Robinsonade is not a refreshing drink, it's a novel similar in theme`, 2], + [`this might be a convenient stop, I highly encourage you to take it`, 2], + [`Thanks again to Lisa, she is the best!`, 2], + [`Off he flew; and there he was`, 2], + [`to cut spending, we're going to have to do more`, 2], + [`Just look at them I mean, is it okay if they come visit?`, 2], + // single + [`Make sure you look clean, neat, and groomed at all times.`, 1], + ['but, no thank you', 1], + [`Use quinoa in any place you’d use lentils, corn, millet, rice, or pasta.`, 1], + [`These are the steps I used.`, 1], + [`actually, that's the shirt`, 1], + ] + arr.forEach(function (a) { + const clauses = nlp(a[0]).clauses() + t.equal(clauses.length, a[1], here + '[number of clauses] ' + a[0]) + }) + t.end() +}) + +test('clauses', function (t) { let arr = [ // ['string', ['expected clauses', 'in an array']] ['fun, cool, etc...', ['fun, cool, etc...']], @@ -15,7 +50,8 @@ test('clauses - with commas', function (t) { ['oh and something else, too', ['oh and something else, too']], ['tuesday, march 2nd', ['tuesday, march 2nd']], ['toronto, canada', ['toronto, canada']], - ['june 6, 1992', ['june 6, 1992']] + ['june 6, 1992', ['june 6, 1992']], + // ['In fact, you are the most beautiful', ['in fact', 'you are the most beautiful']] ] arr.forEach(function (a) { const clauses = nlp(a[0]).clauses().out('array') From 0bfe6c1d130e6ae13ab29569bdaf9da2f1334355 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 10:37:26 -0400 Subject: [PATCH 13/33] more clause work --- changelog.md | 2 + scratch.js | 87 ++++++++++++++------------ src/1-one/match/methods/termMethods.js | 2 + src/3-three/chunker/api/clauses.js | 27 ++++++-- tests/three/chunker/clauses.test.js | 7 +++ 5 files changed, 82 insertions(+), 43 deletions(-) diff --git a/changelog.md b/changelog.md index d51277f3c..1ab86bef1 100644 --- a/changelog.md +++ b/changelog.md @@ -12,6 +12,8 @@ While all _Major_ releases should be reviewed, our only _large_ releases are **v #### 14.6.0 [Oct 2022] - **[change]** - move internal conjugation methods - **[update]** - github scripts +- **[change]** - fixes to .clauses() parser +- **[new]** - @hasColon method #### 14.5.2 [Oct 2022] - **[fix]** - runtime error #965 diff --git a/scratch.js b/scratch.js index 01a1c930a..eed3230bb 100644 --- a/scratch.js +++ b/scratch.js @@ -1,6 +1,5 @@ /* eslint-disable no-console, no-unused-vars */ import nlp from './src/three.js' -// console.log(nlp.world().methods.two.transform) // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) // nlp.verbose('tagger') @@ -52,48 +51,58 @@ import nlp from './src/three.js' let arr = [ - "Police say they have nothing to go on.", - "proper adjustment, depending upon the character of the general effect.", - "I'm glad that we stopped kissing the tar on the highway", - "MHC", - "I've been \"trying it\" for months now.", - "Dear dear I reach home le!", - "Heat waves, droughts, wildfires, and floods – all are now more frequent and intense.", - "Click and drag the “aether” and “gilded-games-util” .jar files from your desktop and into the Minecraft folder.", - "Between the hepatocyte plates are liver sinusoids, which are enlarged capillaries through which blood from the hepatic portal vein and hepatic artery enters via the portal triads, then drains to the central vein.", - "But, the wings are cooked in soy!", - "If you can trust me with this cross till to-morrow, Rosina, I should like to have it examined and analysed.", - "Are you, are you, are you sure it’s ah, a new bump?", - "OF FOOTBALL AND DIL CHAHTA HAI", - "In chapter 8, this tribe of Israelites is appointed to work in the tabernacle", - "As Mr Peanut left his house, he said to his wife, \"see you, I'll be back in a Jif", - "sensible forms for the purpose of conveying a particular meaning.", - "He watches, lurking beneath the sea", - "Brandee", - "Only somewhat related: I wonder sometimes if simile and analogy resonate or mean as much to some people.", - "Ya had just now.", - "To cut through the barriers of hateful propaganda, the Voice of America and other broadcast services are expanding their programming in Arabic and Persian - and soon, a new television service will begin providing reliable news and information across the region.", - "Ask your sponsor to sign a DD FORM 1172-2.", - "The modern adventure novel goes back to Daniel Defoe's Robinson Crusoe (1719) and its immediate successors.", - "They have a couple tables where you can eat there too if you want.", - "But we keep his Majesty the Inca waiting, said Prigio.", - "MONICA: No, I will not cave.", - "Patients made to vanish on Malaria Day", - "Stances include regular, goofy foot & this one that angles the toes of both feet in opposite directions", - "I failed my audition as Romeo through a misunderstanding over a stage direction.", - "She was a oneyer, if you like, sir", - "Life's a schoolyard, I ain't gettin' picked last (oh oh)", - "Jane", - "I've *never* been able to shop at all the \"cute\" stores - Abercrombie, Hollister, Aeropostale, American Eagle..all those places that seem like such a big deal when you're in junior high and high school.", - "He got in touch with me last night and wants me to meet him today at 2 pm", - "I respect that part of our culture; I grew up in it.", - "Check with your state and local governments.", + // "Stances include regular, goofy foot & this one ", + // "He got in touch with me last night and wants me to meet him today at 2 pm", + // "Life's a schoolyard, I ain't gettin' picked last", + + "The late 1990s onwards have seen substantial growth in the reach and market of board games.", + "I've tried the flautas, enchiladas, and juevos rancheros and while none of them were the absolute best mexican dishes I've ever had, I was not disappointed at all.", + "I desire that the golden ship shall turn to black wood, and the crew to hideous negroes; that St. Nicholas shall leave the helm and that the only cargo shall be black cats.", + "I can’t believe he taped the two of them having sex!", + "Surat doctors discuss need for awareness on anthrax", + "The last British athlete to win the Olympic decathlon, he won it back-to-back in 1980 & 1984", + "There's no reason to be tailgating me when I'm doing 50 in a 35...and those flashing lights on your car look stupid.", + "while what did he do but ask me to go wid him to the widdy’s, saying he", + "Young nigga just ran the sac the up", + "It's great for cutting, just be careful because it's easy to injure your knees/hips/groin.", + "By a patient zero who infected many others.", + "To attract new businesses to our shores, we need the fastest, most reliable ways to move people, goods, and information – from high-speed rail to high-speed internet.", + "Respond to the biofeedback.", + "* The large Austronesian language family, with such languages as Malay (Indonesian), and Polynesian languages such as Maori and Hawaiian", + "One thing I didn't like was the fact that the fried rice was a secret $2 charge that they didn't make you aware of.", + "From time to time, indeed, one regains his own proper form and goes back again to his place in the upper world; but the other beings whom you saw are the rivals or the enemies of Ragotte, whom she has imprisoned for a hundred years or so; though even they will go back at last.", + "Although, I have enjoyed the fact that, uh your shirt's been stickin' outta your zipper ever since you came back from the bathroom.", + "Difference surface on oil marketing", + "On May 7, 1915 German submarine commander Walter Schweiger gave the command to torpedo this British liner", + "I hate when I lose my white friends in the snow", + "It is a very dangerous thing", + "I ain't never fuck with no broke bitch", + "Bill -", + "A moment later, he dropped the phone, walked to the other room, and started crying so hard.", + "Oh so you're not meeting them today?", + "Every step toward freedom in the world makes our country safer, and so we will act boldly in freedom’s cause.", + "Initiate a trade with your trade partner.", + "At age 11, he joined the High School in Rajkot.", + "After 15 minutes of this, my husband had had enough.", + "But afterwards he used to say that the moment when the Earthquaker stirred was the most dreadful in his life.", + "I got the feeling we made you a little uncomfortable.", + "Track & Field owners open a snack bar", + "The Episcopal Church at 193 Salem Street in Boston has been holding services continually since December 29, 1723", + "Surely fire is warm enough already?..", + "consented to take off his own.", + "And I bought the shoes that just walked out on me", + "Bill", + "Why are there people that doubleclick?", + "Anyway we r movin off now only lor.", + "Legislation to achieve excellence in education, building on the partnership forged with the 50 governors at the education summit, enabling parents to choose their children's schools and helping to make America No.", + "Type the cheat in the message bar a second time and press Enter to disable it (unless it is a cheat that changes the amount of lumber/gold/oil you have).", + "In Watt's conception, a rise in fictional realism during the 18th century came to distinguish the novel from earlier prose narratives.", + "This is now my favorite restaurant in Portland, and I've been some great ones before now.", ] // let doc = nlp("he said I am a boy, so far") -let i = 14 +let i = 0 let txt = arr[i] -txt = 'so lentils, or pasta for your sauce' let doc = nlp(txt) console.log(doc.text()) doc.clauses().debug() diff --git a/src/1-one/match/methods/termMethods.js b/src/1-one/match/methods/termMethods.js index ea617fc14..40e3f7bd6 100644 --- a/src/1-one/match/methods/termMethods.js +++ b/src/1-one/match/methods/termMethods.js @@ -28,6 +28,8 @@ const methods = { hasEllipses: term => hasPost(term, '..') || hasPost(term, '…') || hasPre(term, '..') || hasPre(term, '…'), /** is there a semicolon after term word? */ hasSemicolon: term => hasPost(term, ';'), + /** is there a colon after term word? */ + hasColon: term => hasPost(term, ':'), /** is there a slash '/' in term word? */ hasSlash: term => /\//.test(term.text), /** a hyphen connects two words like-term */ diff --git a/src/3-three/chunker/api/clauses.js b/src/3-three/chunker/api/clauses.js index d890c905f..a8af145e9 100644 --- a/src/3-three/chunker/api/clauses.js +++ b/src/3-three/chunker/api/clauses.js @@ -19,15 +19,34 @@ const byComma = function (doc) { // more = more.ifNo('@hasComma (too|also)$') //at end of sentence return more.found }) - - return doc.splitAfter(commas) } +// should we split-out parentheses? +const splitParentheses = function (doc) { + let matches = doc.parentheses() + matches = matches.filter(m => { + return m.wordCount() >= 3 && m.has('#Verb') && m.has('#Noun') + }) + return doc.splitOn(matches) +} + const clauses = function (n) { - let found = byComma(this) + let found = this + + found = splitParentheses(found) + + found = byComma(found) + + found = found.splitAfter('(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)') + + // i said + found = found.splitAfter('^#Pronoun (said|says)') + // ... said John. + found = found.splitBefore('(said|says) #ProperNoun$') - found = found.splitAfter('(@hasEllipses|@hasSemicolon|@hasDash)') + // ... if it was + found = found.splitBefore('if .{4}') // it is cool and it is .. // let conjunctions = found.if('#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb').match('#Conjunction') diff --git a/tests/three/chunker/clauses.test.js b/tests/three/chunker/clauses.test.js index 1ec320e62..ec8abcc36 100644 --- a/tests/three/chunker/clauses.test.js +++ b/tests/three/chunker/clauses.test.js @@ -29,6 +29,13 @@ test('clauses-count', function (t) { [`Use quinoa in any place you’d use lentils, corn, millet, rice, or pasta.`, 1], [`These are the steps I used.`, 1], [`actually, that's the shirt`, 1], + [`we can help the world if Congress gives us the means `, 2], + // [``, 2], + // [``, 2], + // [``, 2], + + // "Stances include regular, goofy foot & this one ", + // "He got in touch with me last night and wants me to meet him today at 2 pm", ] arr.forEach(function (a) { const clauses = nlp(a[0]).clauses() From 5a6108774b47000fd38add58e9e552f2d7575977 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 11:04:39 -0400 Subject: [PATCH 14/33] astrix is not a word --- changelog.md | 1 + scratch.js | 19 ++++--------------- .../compute/contractions/number-unit.js | 3 ++- src/1-one/tokenize/methods/02-terms/index.js | 2 +- src/3-three/chunker/api/clauses.js | 12 ++++++++++-- 5 files changed, 18 insertions(+), 19 deletions(-) diff --git a/changelog.md b/changelog.md index 1ab86bef1..289ab88ba 100644 --- a/changelog.md +++ b/changelog.md @@ -13,6 +13,7 @@ While all _Major_ releases should be reviewed, our only _large_ releases are **v - **[change]** - move internal conjugation methods - **[update]** - github scripts - **[change]** - fixes to .clauses() parser +- **[change]** - an astrix is not a word - **[new]** - @hasColon method #### 14.5.2 [Oct 2022] diff --git a/scratch.js b/scratch.js index eed3230bb..d7533e60f 100644 --- a/scratch.js +++ b/scratch.js @@ -54,21 +54,10 @@ let arr = [ // "Stances include regular, goofy foot & this one ", // "He got in touch with me last night and wants me to meet him today at 2 pm", // "Life's a schoolyard, I ain't gettin' picked last", - - "The late 1990s onwards have seen substantial growth in the reach and market of board games.", - "I've tried the flautas, enchiladas, and juevos rancheros and while none of them were the absolute best mexican dishes I've ever had, I was not disappointed at all.", - "I desire that the golden ship shall turn to black wood, and the crew to hideous negroes; that St. Nicholas shall leave the helm and that the only cargo shall be black cats.", - "I can’t believe he taped the two of them having sex!", - "Surat doctors discuss need for awareness on anthrax", - "The last British athlete to win the Olympic decathlon, he won it back-to-back in 1980 & 1984", - "There's no reason to be tailgating me when I'm doing 50 in a 35...and those flashing lights on your car look stupid.", - "while what did he do but ask me to go wid him to the widdy’s, saying he", - "Young nigga just ran the sac the up", - "It's great for cutting, just be careful because it's easy to injure your knees/hips/groin.", - "By a patient zero who infected many others.", - "To attract new businesses to our shores, we need the fastest, most reliable ways to move people, goods, and information – from high-speed rail to high-speed internet.", - "Respond to the biofeedback.", - "* The large Austronesian language family, with such languages as Malay (Indonesian), and Polynesian languages such as Maori and Hawaiian", + // "I've tried the flautas, enchiladas, and juevos rancheros and while none of them were the absolute best mexican dishes I've ever had, I was not disappointed at all.", + // "St. Nicholas shall leave the helm and that the only cargo shall be black cats.", + // "we need the fastest, most reliable ways .", + "* The large Austronesian language family", "One thing I didn't like was the fact that the fried rice was a secret $2 charge that they didn't make you aware of.", "From time to time, indeed, one regains his own proper form and goes back again to his place in the upper world; but the other beings whom you saw are the rivals or the enemies of Ragotte, whom she has imprisoned for a hundred years or so; though even they will go back at last.", "Although, I have enjoyed the fact that, uh your shirt's been stickin' outta your zipper ever since you came back from the bathroom.", diff --git a/src/1-one/contraction-one/compute/contractions/number-unit.js b/src/1-one/contraction-one/compute/contractions/number-unit.js index a77d10729..3baa60f32 100644 --- a/src/1-one/contraction-one/compute/contractions/number-unit.js +++ b/src/1-one/contraction-one/compute/contractions/number-unit.js @@ -7,7 +7,8 @@ const notUnit = new Set([ 'th', 'am', 'pm', - 'max' + 'max', + 's' // 1990s ]) const numberUnit = function (terms, i) { diff --git a/src/1-one/tokenize/methods/02-terms/index.js b/src/1-one/tokenize/methods/02-terms/index.js index 095f48f23..02240e0d3 100644 --- a/src/1-one/tokenize/methods/02-terms/index.js +++ b/src/1-one/tokenize/methods/02-terms/index.js @@ -6,7 +6,7 @@ const wordlike = /\S/ const isBoundary = /^[!?.]+$/ const naiiveSplit = /(\S+)/ -let notWord = ['.', '?', '!', ':', ';', '-', '–', '—', '--', '...', '(', ')', '[', ']', '"', "'", '`', '«', '»'] +let notWord = ['.', '?', '!', ':', ';', '-', '–', '—', '--', '...', '(', ')', '[', ']', '"', "'", '`', '«', '»', '*'] notWord = notWord.reduce((h, c) => { h[c] = true return h diff --git a/src/3-three/chunker/api/clauses.js b/src/3-three/chunker/api/clauses.js index a8af145e9..6373bcb48 100644 --- a/src/3-three/chunker/api/clauses.js +++ b/src/3-three/chunker/api/clauses.js @@ -46,7 +46,16 @@ const clauses = function (n) { found = found.splitBefore('(said|says) #ProperNoun$') // ... if it was - found = found.splitBefore('if .{4}') + found = found.splitBefore('. . if .{4}') + + // various conjunctions + found = found.splitBefore('and while') + found = found.splitBefore('now that') + found = found.splitBefore('(supposing|although)') + found = found.splitBefore('even (while|if|though)') + found = found.splitBefore('(whereas|whose)') + found = found.splitBefore('as (far|long|much|soon) as') + found = found.splitBefore('as (though|if)') // it is cool and it is .. // let conjunctions = found.if('#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb').match('#Conjunction') @@ -92,7 +101,6 @@ const clauses = function (n) { // // let m = tooLong.splitAfter('#Noun .* #Verb .* #Noun+') // // found = found.splitOn(m.eq(0)) // } - if (typeof n === 'number') { found = found.get(n) } From 48820795ef8fc756f8188661374f03903f6a34ac Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 11:14:27 -0400 Subject: [PATCH 15/33] aint contraction fixes --- scratch.js | 20 +------------------ .../contraction-two/compute/apostrophe-t.js | 7 +++++++ src/3-three/chunker/api/clauses.js | 1 + tests/two/contractions/contraction.test.js | 4 ++++ 4 files changed, 13 insertions(+), 19 deletions(-) diff --git a/scratch.js b/scratch.js index d7533e60f..15e75dd93 100644 --- a/scratch.js +++ b/scratch.js @@ -57,25 +57,7 @@ let arr = [ // "I've tried the flautas, enchiladas, and juevos rancheros and while none of them were the absolute best mexican dishes I've ever had, I was not disappointed at all.", // "St. Nicholas shall leave the helm and that the only cargo shall be black cats.", // "we need the fastest, most reliable ways .", - "* The large Austronesian language family", - "One thing I didn't like was the fact that the fried rice was a secret $2 charge that they didn't make you aware of.", - "From time to time, indeed, one regains his own proper form and goes back again to his place in the upper world; but the other beings whom you saw are the rivals or the enemies of Ragotte, whom she has imprisoned for a hundred years or so; though even they will go back at last.", - "Although, I have enjoyed the fact that, uh your shirt's been stickin' outta your zipper ever since you came back from the bathroom.", - "Difference surface on oil marketing", - "On May 7, 1915 German submarine commander Walter Schweiger gave the command to torpedo this British liner", - "I hate when I lose my white friends in the snow", - "It is a very dangerous thing", - "I ain't never fuck with no broke bitch", - "Bill -", - "A moment later, he dropped the phone, walked to the other room, and started crying so hard.", - "Oh so you're not meeting them today?", - "Every step toward freedom in the world makes our country safer, and so we will act boldly in freedom’s cause.", - "Initiate a trade with your trade partner.", - "At age 11, he joined the High School in Rajkot.", - "After 15 minutes of this, my husband had had enough.", - "But afterwards he used to say that the moment when the Earthquaker stirred was the most dreadful in his life.", - "I got the feeling we made you a little uncomfortable.", - "Track & Field owners open a snack bar", + // "A moment later, he dropped the phone, walked to the other room, and started crying so hard.", "The Episcopal Church at 193 Salem Street in Boston has been holding services continually since December 29, 1723", "Surely fire is warm enough already?..", "consented to take off his own.", diff --git a/src/2-two/contraction-two/compute/apostrophe-t.js b/src/2-two/contraction-two/compute/apostrophe-t.js index 5445d11b6..89a5e7bfa 100644 --- a/src/2-two/contraction-two/compute/apostrophe-t.js +++ b/src/2-two/contraction-two/compute/apostrophe-t.js @@ -15,6 +15,10 @@ const lastNoun = function (terms, i) { //ain't -> are/is not const apostropheT = function (terms, i) { if (terms[i].normal === "ain't" || terms[i].normal === 'aint') { + // "ain't never" -> have never (?) + if (terms[i + 1] && terms[i + 1].normal === 'never') { + return ['have'] + } // we aint -> are not, she aint -> is not let noun = lastNoun(terms, i) if (noun) { @@ -22,6 +26,9 @@ const apostropheT = function (terms, i) { if (noun.normal === 'we' || noun.normal === 'they') { return ['are', 'not'] } + if (noun.normal === 'i') { + return ['am', 'not'] + } // plural/singular tags if (noun.tags && noun.tags.has('Plural')) { return ['are', 'not'] diff --git a/src/3-three/chunker/api/clauses.js b/src/3-three/chunker/api/clauses.js index 6373bcb48..ce46e5014 100644 --- a/src/3-three/chunker/api/clauses.js +++ b/src/3-three/chunker/api/clauses.js @@ -51,6 +51,7 @@ const clauses = function (n) { // various conjunctions found = found.splitBefore('and while') found = found.splitBefore('now that') + found = found.splitBefore('ever since') found = found.splitBefore('(supposing|although)') found = found.splitBefore('even (while|if|though)') found = found.splitBefore('(whereas|whose)') diff --git a/tests/two/contractions/contraction.test.js b/tests/two/contractions/contraction.test.js index f726fba7a..fa03c8387 100644 --- a/tests/two/contractions/contraction.test.js +++ b/tests/two/contractions/contraction.test.js @@ -27,6 +27,10 @@ test('tricky contractions', function (t) { doc.contractions().expand() t.equal(doc.text(), 'spencer would go see', here + 'spencerd') + doc = nlp(`I ain't gettin' picked last`) + doc.contractions().expand() + t.equal(doc.text(), 'I am not gettin\' picked last', here + 'aint') + t.end() }) From d1fbb97c8e80e79b36808a0e90890b28ef3efd21 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 11:17:49 -0400 Subject: [PATCH 16/33] tagging fix --- scratch.js | 3 +-- src/2-two/preTagger/model/clues/_adj.js | 1 + src/2-two/preTagger/model/clues/_noun.js | 1 + tests/two/match.test.js | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/scratch.js b/scratch.js index 15e75dd93..feb3fc4d4 100644 --- a/scratch.js +++ b/scratch.js @@ -2,7 +2,7 @@ import nlp from './src/three.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -// nlp.verbose('tagger') +nlp.verbose('tagger') // let txt = '' // let doc // let m @@ -58,7 +58,6 @@ let arr = [ // "St. Nicholas shall leave the helm and that the only cargo shall be black cats.", // "we need the fastest, most reliable ways .", // "A moment later, he dropped the phone, walked to the other room, and started crying so hard.", - "The Episcopal Church at 193 Salem Street in Boston has been holding services continually since December 29, 1723", "Surely fire is warm enough already?..", "consented to take off his own.", "And I bought the shoes that just walked out on me", diff --git a/src/2-two/preTagger/model/clues/_adj.js b/src/2-two/preTagger/model/clues/_adj.js index b327259b8..072925392 100644 --- a/src/2-two/preTagger/model/clues/_adj.js +++ b/src/2-two/preTagger/model/clues/_adj.js @@ -50,6 +50,7 @@ export default { anything: jj, not: jj,//not swell me: jj,//called me swell + is: jj }, afterWords: { too: jj, //insulting too diff --git a/src/2-two/preTagger/model/clues/_noun.js b/src/2-two/preTagger/model/clues/_noun.js index b4e9335a6..7d645174a 100644 --- a/src/2-two/preTagger/model/clues/_noun.js +++ b/src/2-two/preTagger/model/clues/_noun.js @@ -80,5 +80,6 @@ export default { said: n, wants: n, wanted: n, + is: n, }, } diff --git a/tests/two/match.test.js b/tests/two/match.test.js index f1c4fdf6d..734a928a3 100644 --- a/tests/two/match.test.js +++ b/tests/two/match.test.js @@ -499,7 +499,7 @@ let arr = [ ["werner", "#Singular"], ["winner", "#Singular"], ["it is eager to forget", "it is #Adjective to #Verb"], - ["it is direct to ciaro", "it is #Verb to #Noun"], + ["it is direct to ciaro", "it is #Adjective to #Noun"], ['corporate', '!#Verb'], From 11e003a9f662d4d497034538a7ea39d107330b32 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 11:36:14 -0400 Subject: [PATCH 17/33] expression tagger fixes --- data/lexicon/adjectives/adjectives.js | 1 + data/lexicon/misc/expressions.js | 2 +- scratch.js | 66 ++++++++++++++++--- src/2-two/postTagger/model/_misc.js | 2 + .../postTagger/model/person/person-phrase.js | 2 +- src/2-two/preTagger/model/lexicon/_data.js | 4 +- tests/two/match.test.js | 12 ++++ 7 files changed, 75 insertions(+), 14 deletions(-) diff --git a/data/lexicon/adjectives/adjectives.js b/data/lexicon/adjectives/adjectives.js index 09eb6e934..b63aebc42 100644 --- a/data/lexicon/adjectives/adjectives.js +++ b/data/lexicon/adjectives/adjectives.js @@ -641,5 +641,6 @@ export default [ 'renowned', 'beside', + 'alright' ] diff --git a/data/lexicon/misc/expressions.js b/data/lexicon/misc/expressions.js index 0dbf98932..9e216c60c 100644 --- a/data/lexicon/misc/expressions.js +++ b/data/lexicon/misc/expressions.js @@ -43,7 +43,6 @@ export default [ 'hai', 'hallelujah', 'hee', - 'hell', 'hello', 'hey', 'hi', @@ -120,4 +119,5 @@ export default [ 'yuck', 'yup', `d'oh`, + 'shoo' ] diff --git a/scratch.js b/scratch.js index feb3fc4d4..95bd3862a 100644 --- a/scratch.js +++ b/scratch.js @@ -58,16 +58,62 @@ let arr = [ // "St. Nicholas shall leave the helm and that the only cargo shall be black cats.", // "we need the fastest, most reliable ways .", // "A moment later, he dropped the phone, walked to the other room, and started crying so hard.", - "Surely fire is warm enough already?..", - "consented to take off his own.", - "And I bought the shoes that just walked out on me", - "Bill", - "Why are there people that doubleclick?", - "Anyway we r movin off now only lor.", - "Legislation to achieve excellence in education, building on the partnership forged with the 50 governors at the education summit, enabling parents to choose their children's schools and helping to make America No.", - "Type the cheat in the message bar a second time and press Enter to disable it (unless it is a cheat that changes the amount of lumber/gold/oil you have).", - "In Watt's conception, a rise in fictional realism during the 18th century came to distinguish the novel from earlier prose narratives.", - "This is now my favorite restaurant in Portland, and I've been some great ones before now.", + // "Why are there people that doubleclick?", + // "Anyway we r movin off now only lor.", + + "And we also gave tax reductions to most small and new businesses.", + "There is no limit to the amount of Neopoints you can deposit at once (except for the amount of Neopoints you actually have on hand, of course).", + "The money generated by the industry kept the city insulated from much of the economic loss suffered by the rest of the country during the Great Depression.", + "This so-called mall isn't quite a dump, but it's little more than a run of the mill food court.", + "I can say no more, beyond offering my apology for a disappointment which I could not have foreseen.", + "I just, I can't believe you're calling me?", + "Betrothed To Bhopal; Wedded To Words...", + "When an actress in his \"Lifeboat\" asked him what her best side was, he said, \"My dear, you're sitting on it\"", + "None of your damn business!", + "feeling a dim sort of sweat rising up inside his clothes.", + "Just leave, leave me alone with my dreams", + "Each calendar month during the term of the Transaction will be a Dispatch Period.", + "The author's reasoning for why climate change is not dangerous is that carbon dioxide levels in the atmosphere have been higher at some other point in time and that plants consume carbon dioxide, so higher levels of CO2 should be beneficial to them.", + "Haha anyway after tt's approval, I will sendthis to everyone, then we can start to search for manpower andparticipants le.", + "If we can selflessly confront evil for the sake of good in a land so far away, then surely we can make this land all it should be.", + "Sweeten baked goods with blackstrap molasses.", + "Both sulfurization/desulfurization techniques and the use of removable thiol auxiliaries involve the installation of a synthetic thiol moiety to carry out the standard native chemical ligation chemistry, followed by removal of the auxiliary/thiol.", + "After my first class on a Wednesday i knew id be sore and would need a day or two rest.", + "Yes, my sultaness, my queen, I'll give you my heart without the least reserve.", + "You have tears in your eyes.", + "Boston through the eyes of Mayor John Tory", + "Bismarck & Kissinger are among masters of this, politics based on pragmatic concerns", + "What kind of key opens a banana?", + "beating her--not hard, you know; just a smack or two, enough to set her", + "If you turn me on to anything", + "The Transaction is for hot rolled steel with a thickness of 1\" and a width of 72 inches.", + "It has not worked out very well.", + "Hey love.. sorry I crashed =(", + "We’ve all paid the price for lenders who sold mortgages to people who couldn’t afford them, and buyers who knew they couldn’t afford them.", + ",Consider the track record of the manufacturer and any previous experience with them or their consoles, also remember to consider reliability issues with either console", + "The following lists do not include the lifeguard patrolled beaches which also have their own equipment including inflatable boats and jetskis.", + "The shoes ran from new to sketchy, but mine were in the former category (and they said 'team cobra' on the side--awesome, whatever that means!).", + "You have despised my counsel, and have gone your own evil way until you are only outwardly a man; really you are a monster -- the horror of everyone who knows you.", + "Tell Monica I say goodbye.", + "The Island airport tunnel nears completion", + "Prime minister during the war, some later called him \"the minister who lost America\"", + "She thought it was diet coke.", + "merchants with whom Mr. Shuttleworthy dealt, I gave instructions to my", + "But there you go again train travelin'", + "Robert B Cass", + "The nearest interstate is a 4 hour drive away.", + "Reading ARP related article lor.", + "We need to resolve the status of the illegal immigrants who are already in our country without animosity and without amnesty.", + "Do a ground combo as soon as you block a clone’s attack.", + "\"UAB SuperJazz, featuring Ellis Marsalis\" (2001) (Co-produced by Ray Reach and Henry Panion), recorded at the Alys Stephens Center.", + "I spoke with someone on the phone who heard a brief intro to my situation, put me on hold for about 5 minutes- came back and basically told me without even listening to the whole situation told me there was basically nothing they could she would talk to the attorney and call me.", + "Charming replied that he was perfectly willing to go, and would set out the very next day.", + "Ok, well, this was very special.", + "The top 10 bars and pubs with cider on tap in Boston", + "Adventurous 26th president, he was 1st to ride in an automobile & an airplane", + "A girl just told me I've got a huge ego... I think she means cock.", + "It frightened me like nothing else ever has.", + "I couldn't hear a word, a word he said.", ] // let doc = nlp("he said I am a boy, so far") diff --git a/src/2-two/postTagger/model/_misc.js b/src/2-two/postTagger/model/_misc.js index f728a2841..16000ff5f 100644 --- a/src/2-two/postTagger/model/_misc.js +++ b/src/2-two/postTagger/model/_misc.js @@ -28,6 +28,8 @@ let matches = [ // sorry { match: '(say|says|said) [sorry]', group: 0, tag: 'Expression', reason: 'say-sorry' }, + // ok, + { match: '^(ok|alright|well|shoot|hell)', tag: 'Expression', reason: 'ok-' }, // double-prepositions // rush out of diff --git a/src/2-two/postTagger/model/person/person-phrase.js b/src/2-two/postTagger/model/person/person-phrase.js index afe6f97aa..13ecc74ca 100644 --- a/src/2-two/postTagger/model/person/person-phrase.js +++ b/src/2-two/postTagger/model/person/person-phrase.js @@ -3,7 +3,7 @@ export default [ //is foo Smith { match: '#Copula [(#Noun|#PresentTense)] #LastName', group: 0, tag: 'FirstName', reason: 'copula-noun-lastname' }, //pope francis - { match: '(sister|pope|father) #ProperNoun', tag: 'Person', reason: 'lady-titlecase', safe: true }, + { match: '(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun', tag: 'Person', reason: 'lady-titlecase', safe: true }, // ==== Nickname ==== // Dwayne 'the rock' Johnson diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js index 8d4a64138..948abcbf6 100644 --- a/src/2-two/preTagger/model/lexicon/_data.js +++ b/src/2-two/preTagger/model/lexicon/_data.js @@ -7,7 +7,7 @@ export default { "Conjunction": "true¦aXbTcuz,evenRhowPiHjust00lest,noEoCp8supposing,t5wh0yet;at,e2il1o0;evOse;e,st;nevMre0thM; if,vL;h0o;erefOo0;!uU;lus,rovide0; 1d0;! 0;th9;r0therwiJ;! not; mattBr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mFcaCorder t0;h0o;at;! 0;only,t0w0;hen;!ev0;er;! 0;if,t8;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh", "PastTense": "true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan", "Gerund": "true¦accord0be0go0result0stain0;ing", - "Expression": "true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la", + "Expression": "true¦a0Pb0Lco0Kd0Ge0Efuck,g08hUjeez,lRmQnOoLpIshHtGuDvoi0Rw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aAe9i7o2u0;h,mph,rra0zzA;h,y;ly1o0;r4y7;! 0;cow,moBsmok0;es;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la", "Negative": "true¦n0;ever,o0;n,t", "QuestionWord": "true¦how3wh0;e1ich,o0y;!m;n,re; come,'s", "Reflexive": "true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self", @@ -49,7 +49,7 @@ export default { "LastName": "true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta", "MaleName": "true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on", "Person": "true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er", - "Adjective": "true¦0:96;1:82;2:7Z;3:8X;4:8R;5:6F;6:83;7:87;8:8S;9:8E;A:5X;a7Ob78c6Qd68e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart64r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Jzy;despr8Gs6F;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b96ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Y;ef77u4;b68ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e71i2FoDpCuB;pervis1spect2;e0ok6Z;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6Q;mploy1nd2xpect1;eBue;cid1rB;!a6TcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Aip 1PoCrB;anspa70i3;gethAle84rp9;ena6HmpCrB;r3Gtia6R;e8o6P;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb71;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb51;eq74tanda7Q;atu6BeFi0UrByl3U;aBin4E;ightBy; fBfB;or5Z;adfa7Iri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Kiet;ndBth0X;pro6G;d9ry;at1;ll1;g1XnB;ce59g6;am31eA;at1co1Iem5lf3BnBre7;so5X;ath2holBient2L;ar5;cr1me,tisfac5O;aJeEheumato9iCoB;bu6Ytt5Ay4;ghtBv4;-w2f56;bYcEdu6PlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6OrCuB;bl5Wnjabi;eGiEoB;!b2RfCmi3CpBv4Xxi20;er,ort61;a7u64;maBor,sti7va3;!ry;ci61exist2mBpa9;a1Pi64;c9id;ac29rBti3;fe68ma33ti33v5W;i29rCsB;s5Rt;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Vg1N; bBbBgo2li7;oa61;fashion1school;!ay; gua5YbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Mprof2AsB;top;la0;ght5;arby,cessa4Dighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4F;da3Wy;ali2Joth;ab39ho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3Q;ngu9ps1st;aput,ind5nB;ow2;gno4Xll03mVnDpso 25rB;a3releB;va0; QaPcoMdJe2AfIhibi3DiWnHoGsDtBvalu0V;a4KeB;n48rdep1U;a7igColBuboD;ub6ve0;nifica0;rdi41;a3er;eriCluenOreq3X;eCiEoB;or;fini3p1Ltermi3W;mpCnside8rB;re48;le3;ccu8deq3Xppr37;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe40;ti4;aCeBi0T;d2Zn3M;tu23;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3I;me ma2CnCrrBs04ur5;if30;e3Qo2J;ghfalut1LspB;an2X;lUpf1X;lCnBrdZtI;dy;f,low1;aiHener2Siga26lob4oGraDuB;ilBng ho;ty;cCtB;ef1Pis;ef1O;od;nf1M;aPeMinLlJoErB;aCeBoz1M;q2Ptf1J;gi6nt2H;olErB; keeps,eBge0FmAtu2Owa38;go2i1CseeB;ab6;ish;ag37uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Hmiliar,r Bux;oBreach2;ff;aOfficie0lMmJnHqu4re2Pthere4veryday,xB;a2Oem2RplEquisi3traDuB;be2WlB;ta0;!va1H;icB;it; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt", + "Adjective": "true¦0:96;1:81;2:7Y;3:8X;4:8R;5:6E;6:82;7:87;8:8S;9:8E;A:5W;a7Nb77c6Pd67e5Qf58g50h4Pi3Rjuni44k3Pl3Fm33n2To2Ep1Wquart63r1Ls0Rt0JuMvIwBye1J;ast54eFholeEiDoB;man5oBrthwhi6u0F;d7Izy;despr8Gs6E;!sa6;ather13eBll o5Jste2Q;!k5;aDeCiBola5D;b96ce versa,gi2Q;ng4Vrsa5B;ca0lu54;lt06nHpDrCsBttermo8Y;ef76u4;b67ge0; Db2ApCsBti7Z;ca6et,ide dO;er,i4L;f3Tto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4E;e70i2FoDpCuB;pervis1spect2;e0ok6Y;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6P;mploy1nd2xpect1;eBue;cid1rB;!a6ScovAly2sDwB;aBei7D;tAy;iz1to43;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Gra;aGeDhough59ip 1PoCrB;anspa6Zi3;gethAle84rp9;ena6GmpCrB;r3Ftia6Q;e8o6O;leBst3Q;nt1;a03c01eZhYiWkiVmug,nobb3ZoPpMqueam3ZtGuBymb71;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb50;eq74tanda7Q;atu6AeFi0UrByl3T;aBin4D;ightBy; fBfB;or5Y;adfa7Iri6;arCeBirit1lend9ot on;c2Ye34;k5se; caGlub6mbAphisticFrEuCvB;erei5Jiet;ndBth0X;pro6G;d9ry;at1;ll1;g1WnB;ce58g6;am30eA;at1co1Hem5lf3AnBre7;so5W;ath2holBient2K;ar5;cr1me,tisfac5N;aJeEheumato9iCoB;bu6Ytt59y4;ghtBv4;-w2f55;bYcEdu6PlDnown1sBtard1;is3DoB;lu3na0;e1Buc3B;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6OrCuB;bl5Wnjabi;eGiEoB;!b2QfCmi3BpBv4Wxi1Z;er,ort61;a7u64;maBor,sti7va3;!ry;ci61exist2mBpa9;a1Oi64;c9id;ac28rBti3;fe68ma32ti32v5W;i28rCsB;s5Rt;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni59seas,t,wB;ei58rou58;ll;do0Wer;d2Ug1M; bBbBgo2li7;oa61;fashion1school;!ay; gua5YbBli7;eat;eCsB;ce7er0Co0R;dia0se;aJeIiHoBuanc1;nDrthBt1V;!eB;rn;chaCdescri5Mprof29sB;top;la0;ght5;arby,cessa4Cighbor5xt;k1usiat2;aIeHinGoCuB;d14ltip6;deDl13nBot,st;ochroBth5;me;rn,st;dblRi;nac2re;cDgenta,in,j03keshift,mmCnBscu4F;da3Vy;ali2Ioth;ab38ho;aJeGiEoCuB;mber2sh;ngBut19;stand2term;ghtwei45teraB;l,te;ft-w2gBssAth4;al,eBi0B;nda3Q;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 25rB;a3releB;va0; QaPcoMdJe2AfIhibi3DiWnHoGsDtBvalu0V;a4LeB;n49rdep1U;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Ltermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr37;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0T;d2Zn3N;tu23;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2CnCrrBs04ur5;if31;e3Ro2J;ghfalut1LspB;an2Y;lUpf1X;lCnBrdZtI;dy;f,low1;aiHener2Tiga26lob4oGraDuB;ilBng ho;ty;cCtB;ef1Pis;ef1O;od;nf1M;aPeMinLlJoErB;aCeBoz1M;q2Qtf1J;gi6nt2I;olErB; keeps,eBge0FmAtu2Pwa39;go2i1CseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aOfficie0lMmJnHqu4re2Qthere4veryday,xB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1H;icB;it; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Kfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in24;et,te; IadpHceGfiFgene8liDpCreli22spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Z;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1O;cEduHgr14jDsCtraB;dic0Ary;eq12ta0;oi0ug4;a0Wi15;mensu8pass10;ni4ss4;ci0T;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1F;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0ZrrB;en;!wards; priori,b0Qc0Nd0Gf0Ag08h07l00mp6ntiquXpRrLsleep,ttracti09uHvEwB;aCkB;wa0X;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntX;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohFiJkaDl,oCriBterP;ght;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt", "Determiner": "true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er", "Adverb": "true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori", "Currency": "true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s", diff --git a/tests/two/match.test.js b/tests/two/match.test.js index 734a928a3..30c6c0e69 100644 --- a/tests/two/match.test.js +++ b/tests/two/match.test.js @@ -498,6 +498,8 @@ let arr = [ ["toner", "#Singular"], ["werner", "#Singular"], ["winner", "#Singular"], + ["aunt brenda", "#Person+"], + ["uncle sam", "#Person+"], ["it is eager to forget", "it is #Adjective to #Verb"], ["it is direct to ciaro", "it is #Adjective to #Noun"], @@ -694,6 +696,16 @@ let arr = [ // not posessive // [`I saw her go`, `I #PastTense !#Possessive #PresentTense`], // [`I watched her throw`, `I #PastTense !#Possessive #PresentTense`], + + + + ['well?', '#Expression'], + ['alright!', '#Expression'], + ['it was alright', 'it was #Adjective'], + ['shoot', '#Expression'], + ['shoo!', '#Expression'], + ['hell', '#Expression'], + ['live in hell', '#Verb in #Noun'], ] test('match:', function (t) { let res = [] From 7bd764c949360c1ec6ea9d2d8caf4e4b7be139fb Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 12:05:33 -0400 Subject: [PATCH 18/33] tagging fixes --- data/lexicon/switches/adj-past.js | 1 + data/lexicon/switches/noun-verb.js | 2 + data/lexicon/verbs/infinitives.js | 12 +++++- scratch.js | 37 +++++++++++-------- src/2-two/postTagger/model/_misc.js | 4 +- .../postTagger/model/adjective/adj-noun.js | 2 + src/2-two/preTagger/model/lexicon/_data.js | 8 ++-- tests/three/verbs/imperative.test.js | 34 +++++++++++++++++ tests/two/match.test.js | 6 ++- 9 files changed, 82 insertions(+), 24 deletions(-) diff --git a/data/lexicon/switches/adj-past.js b/data/lexicon/switches/adj-past.js index 9d6268689..35eeebe46 100644 --- a/data/lexicon/switches/adj-past.js +++ b/data/lexicon/switches/adj-past.js @@ -23,6 +23,7 @@ export default [ 'awarded', 'balanced', 'based',//modern slang + 'baked', //baked goods 'biased', 'boiled', 'bored', diff --git a/data/lexicon/switches/noun-verb.js b/data/lexicon/switches/noun-verb.js index 76390e89e..e7f6596f3 100644 --- a/data/lexicon/switches/noun-verb.js +++ b/data/lexicon/switches/noun-verb.js @@ -592,12 +592,14 @@ export default [ 'survey', 'suspect', 'swear', + 'sweat', 'switch', 'tag', 'talk', 'tally', 'target', 'taste', + 'tax', 'tear', 'tee', 'test', diff --git a/data/lexicon/verbs/infinitives.js b/data/lexicon/verbs/infinitives.js index 587e2a2d4..e352a35d0 100644 --- a/data/lexicon/verbs/infinitives.js +++ b/data/lexicon/verbs/infinitives.js @@ -705,5 +705,15 @@ export default [ 'subside', 'squish', - 'vanish' + 'vanish', + + // present participles + 'awaken', + 'frighten', + 'hasten', + 'heighten', + 'lengthen', + 'lessen', + 'worsen', + 'sweeten', ] diff --git a/scratch.js b/scratch.js index 95bd3862a..e10842a92 100644 --- a/scratch.js +++ b/scratch.js @@ -61,22 +61,24 @@ let arr = [ // "Why are there people that doubleclick?", // "Anyway we r movin off now only lor.", - "And we also gave tax reductions to most small and new businesses.", - "There is no limit to the amount of Neopoints you can deposit at once (except for the amount of Neopoints you actually have on hand, of course).", - "The money generated by the industry kept the city insulated from much of the economic loss suffered by the rest of the country during the Great Depression.", - "This so-called mall isn't quite a dump, but it's little more than a run of the mill food court.", - "I can say no more, beyond offering my apology for a disappointment which I could not have foreseen.", - "I just, I can't believe you're calling me?", - "Betrothed To Bhopal; Wedded To Words...", - "When an actress in his \"Lifeboat\" asked him what her best side was, he said, \"My dear, you're sitting on it\"", - "None of your damn business!", - "feeling a dim sort of sweat rising up inside his clothes.", - "Just leave, leave me alone with my dreams", - "Each calendar month during the term of the Transaction will be a Dispatch Period.", - "The author's reasoning for why climate change is not dangerous is that carbon dioxide levels in the atmosphere have been higher at some other point in time and that plants consume carbon dioxide, so higher levels of CO2 should be beneficial to them.", - "Haha anyway after tt's approval, I will sendthis to everyone, then we can start to search for manpower andparticipants le.", - "If we can selflessly confront evil for the sake of good in a land so far away, then surely we can make this land all it should be.", - "Sweeten baked goods with blackstrap molasses.", + // "The money generated by the industry kept the city insulated from much of the economic loss suffered by the rest of the country during the Great Depression.", + // "a run of the mill food court", + // "a disappointment which I could not have foreseen.", + // "feeling a dim sort of sweat rising up inside his clothes.", + // "If we can selflessly confront evil for the sake of good in a land so far away, then surely we can make this land all it should be.", + + + + "UPDATE: /u/Averyhonestguy has raised a very sobering point", + "Bike Share rolls out Pride themed bikes in New York", + "Like I don't need nobody else", + "C'mon, Luisa, you have a chance to be the bigger person here!", + "Right after we broke up, my ex-girlfriend asked me how to change.", + "Listen, calling people names says a lot more about you than it does about them, idiot.", + "Hook, line, and sinker", + "Brand new bags.", + "Sweeten baked goods.", + "Both sulfurization/desulfurization techniques and the use of removable thiol auxiliaries involve the installation of a synthetic thiol moiety to carry out the standard native chemical ligation chemistry, followed by removal of the auxiliary/thiol.", "After my first class on a Wednesday i knew id be sore and would need a day or two rest.", "Yes, my sultaness, my queen, I'll give you my heart without the least reserve.", @@ -114,6 +116,9 @@ let arr = [ "A girl just told me I've got a huge ego... I think she means cock.", "It frightened me like nothing else ever has.", "I couldn't hear a word, a word he said.", + + + ] // let doc = nlp("he said I am a boy, so far") diff --git a/src/2-two/postTagger/model/_misc.js b/src/2-two/postTagger/model/_misc.js index 16000ff5f..d90e07a55 100644 --- a/src/2-two/postTagger/model/_misc.js +++ b/src/2-two/postTagger/model/_misc.js @@ -29,7 +29,9 @@ let matches = [ // sorry { match: '(say|says|said) [sorry]', group: 0, tag: 'Expression', reason: 'say-sorry' }, // ok, - { match: '^(ok|alright|well|shoot|hell)', tag: 'Expression', reason: 'ok-' }, + { match: '^(ok|alright|well|shoot|hell|anyways)', tag: 'Expression', reason: 'ok-' }, + // say, + { match: '^(say && @hasComma)', tag: 'Expression', reason: 'say-' }, // double-prepositions // rush out of diff --git a/src/2-two/postTagger/model/adjective/adj-noun.js b/src/2-two/postTagger/model/adjective/adj-noun.js index 095836757..0d0679849 100644 --- a/src/2-two/postTagger/model/adjective/adj-noun.js +++ b/src/2-two/postTagger/model/adjective/adj-noun.js @@ -13,4 +13,6 @@ export default [ { match: `#Gerund (giant|capital|center|zone|application)`, tag: 'Noun', reason: 'brewing-giant' }, // in an instant { match: `#Preposition (a|an) [#Adjective]$`, group: 0, tag: 'Noun', reason: 'an-instant' }, + // brand new + { match: `[brand #Gerund?] new`, tag: 'Adverb', group: 0, reason: 'brand-new' }, ] diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js index 948abcbf6..b91fbab29 100644 --- a/src/2-two/preTagger/model/lexicon/_data.js +++ b/src/2-two/preTagger/model/lexicon/_data.js @@ -20,7 +20,7 @@ export default { "Demonym": "true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an", "Organization": "true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba", "Possessive": "true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne", - "Noun|Verb": "true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss", + "Noun|Verb": "true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4x;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ea6Dit2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss", "Actor": "true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt", "Honorific|Noun": "true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al", "Pronoun": "true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s", @@ -55,11 +55,11 @@ export default { "Currency": "true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s", "Adj|Present": "true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht", "Comparable": "true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd", - "Infinitive": "true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on", - "Modal": "true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld", + "Infinitive": "true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k36l2Xm2Rnou3Uo2Mp25qu24r1As08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Gc0Fe0Dh09i07l05m04n03o01pWquVtOuJwG;all6YeeHiG;m,ng;p,t5;bIccumb,ffHggeBmm8Zp2DrG;mouFvi2;er,i3;li7Wmer9siGveD;de,st;aKe7PiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Pi8;awn,eJiIlHoGri68;il,of;ay,it;ll,t;ak,nd;lGot6Iw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5CoHriGun;nk,v5O;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Hv0w;!k,m;aven9ul7V;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2YsLtJvG;amp,eHiGo2N;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1TrG;a5QiCuctu7;de,gn,st;el,hra1lGreseF;a3e63;d0ew,o02;a5Le2To2;a6eFiGoad,y;e2nq3Dve;mbur1nf2M;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Dla3GoGyc4;gni54nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Kit,o6;aUerSiRlumm0SoQrIuG;b3Hke,ni8rGt;poDs6R;eKoG;cId,fe31hibEnoHpo1sp0truAvG;e,iAo4P;un3;la32u7;a5Bc1LdHf0ocSsup0CvG;a5GeF;etermi3ZiC;a58rt4Q;er3npoiF;cei2fo39i8mea6plex,sGvaA;eve7iB;mp0n11rGtrol,ve,y;a5Mt5I;bser2cJpIutHverGwe;lap,s13tu64u1;gr4Jnu1Upa3;era6i3Ppo1;cupy;aKe06iHoGultiply;leBu5Z;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u33;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng1Zu18;eep,nG;e3Kow;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on", "Participle": "true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own", + "Modal": "true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld", "Adj|Gerund": "true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng", - "Adj|Past": "true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed", + "Adj|Past": "true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;k0laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed", "Person|Verb": "true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck", "Person|Place": "true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria", "Person|Date": "true¦a2j0sep;an0une;!uary;p0ugust,v0;ril" diff --git a/tests/three/verbs/imperative.test.js b/tests/three/verbs/imperative.test.js index 5592d1c88..c4491c75b 100644 --- a/tests/three/verbs/imperative.test.js +++ b/tests/three/verbs/imperative.test.js @@ -59,6 +59,40 @@ test('isImperative:', function (t) { [`allow yourself to heal`, true], [`and then allow yourself a time`, true], // [`simply stop the music`, true], + + ["UPDATE: /u/Averyhonestguy has raised a very sobering point", false], + ["Bike Share rolls out Pride themed bikes in New York", false], + ["Like I don't need nobody else", false], + ["C'mon, Luisa, you have a chance to be the bigger person here!", false], + ["Right after we broke up, my ex-girlfriend asked me how to change.", false], + ["Listen, calling people names says a lot more about you than it does about them, idiot.", true], + ["Hook, line, and sinker", false], + ["Brand new bags.", false], + + ["Know your flaws intimately.", true], + ["Look for alternate avenues.", true], + ["Speak to your child’s teacher and doctor.", true], + ["Stick it in the microwave until it's Bill Withers", true], + ["Continue playing until you are familiar with it.", true], + ["Learn to recognize stress.", true], + ["Do quick and easy exercises at home.", true], + ["Treat your baby as you would any other child.", true], + ["Find the root of each negative thought.", true], + ["Determine whether you have the necessary qualities for the profession.", true], + ["Be sure to say goodbye to the interviewers before you leave.", true], + ["Go into the cocoa hut in the mountains.", true], + ["Make room for flexibility in your schedule.", true], + ["Find a leatherworker villager to trade with.", true], + ["Develop a personal tagline.", true], + ["Relax and take a deep breath before heading into the management job interview.", true], + ["Reduce medications during less stressful periods.", true], + ["Apply to a doctoral program in industrial-organizational psychology.", true], + ["Find a suitable location for your castle.", true], + ["Find the positive side of life’s challenges.", true], + ["Smell the gasoline and smoke", true], + ["Go to a trip to the mall, and relax.", true], + ["Focus on her qualities and accomplishments", true], + ["Tell her what the young boy gon do", true], ] arr.forEach(function (a) { const doc = nlp(a[0]) diff --git a/tests/two/match.test.js b/tests/two/match.test.js index 30c6c0e69..3f367d69a 100644 --- a/tests/two/match.test.js +++ b/tests/two/match.test.js @@ -697,8 +697,6 @@ let arr = [ // [`I saw her go`, `I #PastTense !#Possessive #PresentTense`], // [`I watched her throw`, `I #PastTense !#Possessive #PresentTense`], - - ['well?', '#Expression'], ['alright!', '#Expression'], ['it was alright', 'it was #Adjective'], @@ -706,6 +704,10 @@ let arr = [ ['shoo!', '#Expression'], ['hell', '#Expression'], ['live in hell', '#Verb in #Noun'], + [`we gave tax reductions`, `#Pronoun #PastTense #Noun #Plural`], + [`brand new`, `#Adverb #Adjective`], + [`brand spanking new`, `#Adverb #Adverb #Adjective`], + // [``, ``], ] test('match:', function (t) { let res = [] From 3a3a1bb837526c5b30da974ea7a063111610c49e Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 12:16:41 -0400 Subject: [PATCH 19/33] start imperative tagger again --- scratch.js | 10 +++++----- src/2-two/postTagger/model/_misc.js | 4 ++++ tests/three/verbs/imperative.test.js | 2 +- tests/two/match.test.js | 4 ++++ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/scratch.js b/scratch.js index e10842a92..8acf4ee4e 100644 --- a/scratch.js +++ b/scratch.js @@ -69,11 +69,11 @@ let arr = [ - "UPDATE: /u/Averyhonestguy has raised a very sobering point", - "Bike Share rolls out Pride themed bikes in New York", - "Like I don't need nobody else", - "C'mon, Luisa, you have a chance to be the bigger person here!", - "Right after we broke up, my ex-girlfriend asked me how to change.", + // "UPDATE: /u/Averyhonestguy has raised a very sobering point", + // "Bike Share rolls out Pride themed bikes in New York", + // "C'mon, Luisa, you have a chance to be the bigger person here!", + // "just after.", + // "just in", "Listen, calling people names says a lot more about you than it does about them, idiot.", "Hook, line, and sinker", "Brand new bags.", diff --git a/src/2-two/postTagger/model/_misc.js b/src/2-two/postTagger/model/_misc.js index d90e07a55..883c48aac 100644 --- a/src/2-two/postTagger/model/_misc.js +++ b/src/2-two/postTagger/model/_misc.js @@ -32,6 +32,10 @@ let matches = [ { match: '^(ok|alright|well|shoot|hell|anyways)', tag: 'Expression', reason: 'ok-' }, // say, { match: '^(say && @hasComma)', tag: 'Expression', reason: 'say-' }, + { match: '^(like && @hasComma)', tag: 'Expression', reason: 'like-' }, + + // right after + { match: '[right] (before|after|in|into|to|toward)', group: 0, tag: '#Adverb', reason: 'right-into' }, // double-prepositions // rush out of diff --git a/tests/three/verbs/imperative.test.js b/tests/three/verbs/imperative.test.js index c4491c75b..73fe6e7a3 100644 --- a/tests/three/verbs/imperative.test.js +++ b/tests/three/verbs/imperative.test.js @@ -65,7 +65,7 @@ test('isImperative:', function (t) { ["Like I don't need nobody else", false], ["C'mon, Luisa, you have a chance to be the bigger person here!", false], ["Right after we broke up, my ex-girlfriend asked me how to change.", false], - ["Listen, calling people names says a lot more about you than it does about them, idiot.", true], + // ["Listen, calling people names says a lot more about you than it does about them, idiot.", true], ["Hook, line, and sinker", false], ["Brand new bags.", false], diff --git a/tests/two/match.test.js b/tests/two/match.test.js index 3f367d69a..c0a3b9368 100644 --- a/tests/two/match.test.js +++ b/tests/two/match.test.js @@ -707,6 +707,10 @@ let arr = [ [`we gave tax reductions`, `#Pronoun #PastTense #Noun #Plural`], [`brand new`, `#Adverb #Adjective`], [`brand spanking new`, `#Adverb #Adverb #Adjective`], + + ["Right after.", '#Adverb #Adjective'], + ["Right in", '#Adverb #Preposition'], + ["Right angle.", '#Adjective #Noun'], // [``, ``], ] test('match:', function (t) { From ddba38d9f90657c8961be7fbf3fc29bb60ec2985 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 12:41:09 -0400 Subject: [PATCH 20/33] before more clauses --- changelog.md | 1 + data/lexicon/switches/adj-present.js | 1 + data/lexicon/verbs/phrasals.js | 1 + scratch.js | 44 +++++++------------ src/1-one/match/methods/termMethods.js | 2 +- .../postTagger/model/verbs/imperative.js | 6 +++ src/2-two/preTagger/model/clues/index.js | 5 ++- src/2-two/preTagger/model/lexicon/_data.js | 6 +-- .../preTagger/model/lexicon/emoticons.js | 1 + src/3-three/chunker/api/clauses.js | 1 + tests/three/verbs/imperative.test.js | 12 ++--- tests/two/match.test.js | 5 ++- 12 files changed, 46 insertions(+), 39 deletions(-) diff --git a/changelog.md b/changelog.md index 289ab88ba..fe4ac80db 100644 --- a/changelog.md +++ b/changelog.md @@ -15,6 +15,7 @@ While all _Major_ releases should be reviewed, our only _large_ releases are **v - **[change]** - fixes to .clauses() parser - **[change]** - an astrix is not a word - **[new]** - @hasColon method +- **[new]** - @hasDash supports two dashes #### 14.5.2 [Oct 2022] - **[fix]** - runtime error #965 diff --git a/data/lexicon/switches/adj-present.js b/data/lexicon/switches/adj-present.js index 4ab0e0a30..d500caea6 100644 --- a/data/lexicon/switches/adj-present.js +++ b/data/lexicon/switches/adj-present.js @@ -26,6 +26,7 @@ export default [ 'mature', 'mean', 'moderate', + 'near', 'narrow', 'obscure', 'open', diff --git a/data/lexicon/verbs/phrasals.js b/data/lexicon/verbs/phrasals.js index 1767942dc..2a1fadbe6 100644 --- a/data/lexicon/verbs/phrasals.js +++ b/data/lexicon/verbs/phrasals.js @@ -122,6 +122,7 @@ export default [ 'carry away', 'carry off', 'carry on', + 'carry out', 'carve down', 'carve in', 'carve out', diff --git a/scratch.js b/scratch.js index 8acf4ee4e..d2b901d1d 100644 --- a/scratch.js +++ b/scratch.js @@ -2,7 +2,7 @@ import nlp from './src/three.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -nlp.verbose('tagger') +// nlp.verbose('tagger') // let txt = '' // let doc // let m @@ -72,32 +72,22 @@ let arr = [ // "UPDATE: /u/Averyhonestguy has raised a very sobering point", // "Bike Share rolls out Pride themed bikes in New York", // "C'mon, Luisa, you have a chance to be the bigger person here!", - // "just after.", - // "just in", - "Listen, calling people names says a lot more about you than it does about them, idiot.", - "Hook, line, and sinker", - "Brand new bags.", - "Sweeten baked goods.", - - "Both sulfurization/desulfurization techniques and the use of removable thiol auxiliaries involve the installation of a synthetic thiol moiety to carry out the standard native chemical ligation chemistry, followed by removal of the auxiliary/thiol.", - "After my first class on a Wednesday i knew id be sore and would need a day or two rest.", - "Yes, my sultaness, my queen, I'll give you my heart without the least reserve.", - "You have tears in your eyes.", - "Boston through the eyes of Mayor John Tory", - "Bismarck & Kissinger are among masters of this, politics based on pragmatic concerns", - "What kind of key opens a banana?", - "beating her--not hard, you know; just a smack or two, enough to set her", - "If you turn me on to anything", - "The Transaction is for hot rolled steel with a thickness of 1\" and a width of 72 inches.", - "It has not worked out very well.", - "Hey love.. sorry I crashed =(", - "We’ve all paid the price for lenders who sold mortgages to people who couldn’t afford them, and buyers who knew they couldn’t afford them.", - ",Consider the track record of the manufacturer and any previous experience with them or their consoles, also remember to consider reliability issues with either console", - "The following lists do not include the lifeguard patrolled beaches which also have their own equipment including inflatable boats and jetskis.", - "The shoes ran from new to sketchy, but mine were in the former category (and they said 'team cobra' on the side--awesome, whatever that means!).", - "You have despised my counsel, and have gone your own evil way until you are only outwardly a man; really you are a monster -- the horror of everyone who knows you.", - "Tell Monica I say goodbye.", - "The Island airport tunnel nears completion", + // "Do quick and easy exercises at home.", + // "Determine whether you have the necessary qualities for the profession.", + // "Be sure to say goodbye to the interviewers before you leave.", + // "Make room for flexibility in your schedule.", + // "Reduce medications during less stressful periods.", + // "Focus on her qualities and accomplishments", + // "Sweeten baked goods.", + + // "After my first class on a Wednesday i knew id be sore.", + // "without the least reserve.", + // "If you turn me on to anything", + // "Consider the track record of the manufacturer and any previous experience with them or their consoles, also remember to consider reliability issues with either console", + // "government-funded research", + // "lifeguard patrolled beaches", + // "Pride themed bikes", + // "Tell Monica I say goodbye.", "Prime minister during the war, some later called him \"the minister who lost America\"", "She thought it was diet coke.", "merchants with whom Mr. Shuttleworthy dealt, I gave instructions to my", diff --git a/src/1-one/match/methods/termMethods.js b/src/1-one/match/methods/termMethods.js index 40e3f7bd6..71df13afd 100644 --- a/src/1-one/match/methods/termMethods.js +++ b/src/1-one/match/methods/termMethods.js @@ -6,7 +6,7 @@ const startQuote = const endQuote = /([\u0022\uFF02\u0027\u201D\u2019\u00BB\u203A\u2032\u2033\u2034\u301E\u00B4])/ const hasHyphen = /^[-–—]$/ -const hasDash = / [-–—] / +const hasDash = / [-–—]{1,3} / /** search the term's 'post' punctuation */ const hasPost = (term, punct) => term.post.indexOf(punct) !== -1 diff --git a/src/2-two/postTagger/model/verbs/imperative.js b/src/2-two/postTagger/model/verbs/imperative.js index 284216f16..192e19226 100644 --- a/src/2-two/postTagger/model/verbs/imperative.js +++ b/src/2-two/postTagger/model/verbs/imperative.js @@ -47,4 +47,10 @@ export default [ { match: '^do not [#Infinitive]', group: 0, tag: 'Imperative', reason: 'do-not-be' }, // allow yourself { match: '[#Infinitive] (yourself|yourselves)', group: 0, tag: 'Imperative', reason: 'allow-yourself' }, + // continue playing + { match: '^[#Infinitive] #Gerund', group: 0, tag: 'Imperative', reason: 'keep-playing' }, + // go to it + { match: '^[#Infinitive] (to|for|into|toward)', group: 0, tag: 'Imperative', reason: 'go-to' }, + // relax and unwind + { match: '^[#Infinitive] (and|or) #Infinitive', group: 0, tag: 'Imperative', reason: 'inf-and-inf' }, ] \ No newline at end of file diff --git a/src/2-two/preTagger/model/clues/index.js b/src/2-two/preTagger/model/clues/index.js index 99b14fff1..9e301608b 100644 --- a/src/2-two/preTagger/model/clues/index.js +++ b/src/2-two/preTagger/model/clues/index.js @@ -36,7 +36,10 @@ const copy = (obj, more) => { // make a copy of this one clues['Plural|Verb'] = { - beforeWords: copy(clues['Noun|Verb'].beforeWords, {}), + beforeWords: copy(clues['Noun|Verb'].beforeWords, { + had: 'Plural', //had tears + have: 'Plural', + }), afterWords: copy(clues['Noun|Verb'].afterWords, { his: 'PresentTense', her: 'PresentTense', its: 'PresentTense', in: null, to: null, diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js index b91fbab29..b4313b3fe 100644 --- a/src/2-two/preTagger/model/lexicon/_data.js +++ b/src/2-two/preTagger/model/lexicon/_data.js @@ -15,7 +15,7 @@ export default { "Unit|Noun": "true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s", "Value": "true¦a few", "Imperative": "true¦come here", - "PhrasalVerb": "true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut", + "PhrasalVerb": "true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6J;G:6C;a8Lb74c66d61e60f4Yg4Hh3Wiron0j3Sk3Nl34m2Qn2Oo2Mp23quietEr1Os0HtXuVvacuum 1wKyammerAzH;ero Dip IonH;e0k0;by,up;aOeJhIiHor7Writ38;mp0n35pe0r8s8;eel Dip 8Q;aJiHn2T;gh Hrd0;in,up;n Dr H;d2in,oF;it 6Hk8lk Irm 0Zsh Ht7Av5F;aw3d2o5up;aw3in,o85;rgeAsH;e 1herG;aWeUhSiOoNrJuHypM;ckGrn H;d2in,oFup;aIiHot0y 2P;ckleEp 8B;ckEdH;e 0O;neEp 30s4Z;ck JdIe Hghte5Yme0p o0Jre0;aw3ba4d2in,up;e 6Iy 1;by,oC;ink Hrow 6V;ba4ov6up;aHe 6Gll5G;m 1r 53;ckAke Ilk H;ov6shit,u5H;aHba4d2in,oFup;ba4ft6p5Mw3;a0Mc0Le0Fh0Bi08l04m03n02o01pWquar4XtNuLwH;earJiH;ngItch H;aw3ba4o7P; by;ck Hit 1m 1ss0;in,o7Cup;aNe11iMoKrIuH;c37d2P;aigh23iH;ke 6Xn3L;p Hrm25;by,in,oC;n32r 1tc44;c31mp0nd Hr7Gve9y 1;ba4d2up;ar2ZeKiJlIrHurA;ingAuc8;a3Rit 5S;l18n 1;e6All0;ber 1rt0und like;ap 56ow D;ash 5Xoke0;eep IiHow 7;c1Mp 1;in,oH;ff,v6;de13gn IngHt 5Sz8; al5Nle0;in,o5up;aJoHu5B;ot Hut0w 6V;aw3ba4f3SoC;c2HdeGk5Qve9;e Lll1Hnd Krv8tH; Htl4W;d2f5Cin,o5upH;!on;aw3ba4d2in,o2Nup;o6Eto;al5Jout0rap5J;il9v8;aUeRiQoMuH;b 5Cle0n Hstl8;aJba4d2inIoHt3Lu0Y;ut,v6;!to;c2HrBw3;ll Jot IuH;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Jp9;aHel9inGnt0;c5Sd H;o3Bup;c1Ut0;aVeUiSlQoOrLsyc2RuH;ll Jt H;aHba4d2in,oFt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess IiKoH;p 1;ah1Zon;iHp 5Xr4DurEwer 5X;nt0;ay4TuH;gGmp 7;ck Hg0leAn 7p4Q;oFup;el 50ncilG;c4Iir 2Xn0ss JtIy H;ba4oC; d2c2E;aw3ba4in,oF;pHw4D;e4Ct D;arrowEerd0oH;d9teE;aReOiNoJuH;ddl8lH;l 3X;c13nkeyJp 7uth9ve H;aHd2in,o5up;l42w3; wi3Z;ss0x 1;asur8lIss H;a1Oup;t 7;ke In 7rHs1Xx0;k 7ry9;do,o4Wup;aXeSiNoHuck0;aLc3Vg KoHse0;k Hse3T;aft6ba4d2forw2Sin4Jov6uH;nd6p;in,oF;d 7;e 05ghtKnJsIvH;e 3F;ten 4Z;e 1k 1; 1e3K;ave Jt IvelH; o4I;d2go,in,o5up;in,oH;pen,ut;c8p 1sh HtchAugh9y26;in44o5;eIick9nock H;d2o4Bup;eHyG;l 2Zp H;aw3ba4d2fZin,oFto,up;aJoIuH;ic8mpG;ke3CtE;c3Lzz 1;aWeRiOoLuH;nIrrHsh 7;y 1;kerEt H;arBd2;lHneGrse35;d He 1;ba4d2fast,o04up;de It H;ba4on,up;aw3o5;aHlp0;d Jl 2Hr Ht 1;fHof;rom;in,oWu1K;cKm 1nIve Hz2C;it,to;d Hg 2NkerK;d2in,o5;k 1;aUeOive Nloss 28oJrIunH; f0O;in3Oow 2I; Hof 27;aIb1Fit,oHrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oFrise,up,w3;ar 7ek0t H;aIb1Ad2in,oHrBup;ff,n,ut,v6;cIhHl25rBt,w3;ead;ross;d aInH;g 1;bo5;a0Be04iVlRoNrJuH;ck He2A;arBup;eIighten HownAy 1;aw3oC;eHshe1W; 1z8;lJol H;aHwi1P;bo5rB;d 7low 1;aIeHip0;sh0;g 7ke0mHrHttenE;e 30;gOlMnKrIsHzzle0;h 2Y;e Hm 1;aw3ba4up;d0isH;h 1;e Hl 1I;aw3fMin,o5;ht ba4ure0;eMnIsH;s 1;cJd H;fHoC;or;e D;dZl 1;cLll Hrm0t15;ap08bJd2in,oItH;hrough;ff,ut,v6;a4ehi29;e H;d2oCup;a0Ndge0nd 0Ry8;oKrH;aIess 7op H;aw3bXin,o1W;gAwA; 0Kubl10;a01hYleaXoKrHut 18;ackAeep Hoss D;by,d2in,oHup;n,ut;me KoIuntH; o1Y;k 7l H;d2oC;aNbMforKin,oJtIuH;nd6;ogeth6;n,ut,v6;th,wH;ard;a4y;pHrBw3;art;n 7;eHipG;ck Der H;on,up;lPncel0rLsJtch IveG; in;o1Gup;h Dt H;doubt,oC;ry IvH;e 04;aw3oF;ff,n,ut;l ImE; d2;aHba4d2o17up;rBw3;a0Ne0Fl08oZrMuH;bblJckl00il06lk 7ndl00rHst WtIy 17zz9;n 0BsH;t D;e H;ov6;anSeaQiIush H;oCup;ghMng H;aJba4d2fHin,o5up;orH;th;bo5lHrBw3;ong;teH;n 1;k H;d2in,o5up;ch0;arOg 7iMn8oKssJttlIunce Hx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aMeed0oHurt0;cJw H;aw3ba4d2o5up;ck;k H;in,oY;ck0nk0st9; oMaKef 1nd H;d2ov6up;er;up;r0t H;d2in,oRup;ff,nH;to;ck Nil0nJrgIsH;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oHup;ff,ut;ay;cQdMsk Juction9; oC;ff;arBo5;ouH;nd;d H;d2oHup;ff,n;own;t H;o5up;ut", "Verb": "true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg", "Demonym": "true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an", "Organization": "true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba", @@ -53,8 +53,8 @@ export default { "Determiner": "true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er", "Adverb": "true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori", "Currency": "true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s", - "Adj|Present": "true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht", - "Comparable": "true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd", + "Adj|Present": "true¦a01blu00cSdNeLfIhollHidOlFmDnCoBp9qua8r7s4t2utt3w0;aJet,ound,ro0;ng,ug02;end0hin,op;er;e1l0mooth,our,pa9u9;i2ow;cu7daWlOpaK;eplicaVigW;ck;aEr0;esePime,ompt;bscu2pen,wn;arr4ear;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht", + "Comparable": "true¦0:3A;1:3P;2:3E;3:2C;a3Tb3Bc2Zd2Pe2If26g1Uh1Ki1Ej1Dk1Al13m0Xn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el10ou39;a8e6hi1Gi4ry;ck0Dde,l4n1ry,se;d,y;a4i3S;k,ry;nti33ry;a4erda2ulgar;gue,in,st;g0pcomi30;a7en2Shi6i5ough,r4;anqu27en1ue;dy,g35me0ny,r03;ck,rs23;ll,me,rt,wd3H;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Uperfi1Vrre23;sta21t3;a8e7iff,r5u4;pUr1;a4ict,o2O;ig2Vn0M;a1ep,rn;le,rk;e1Ni2Vright0;ci1Uft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Mm4;!y;ek,nd2S;ck,l0mp3;a4iRort,rill,y;dy,l00rp;ve0Hxy;ce,y;d,fe,int0l1Dv0T;a9e7i6o4ude;mantic,o15sy,u4;gh,nd;ch,pe,tzy;a4d,mo09;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1BlAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouRud;ey,k0;liWor;ain,easa2;ny;dd,i0ld,ranK;aive,e6i5o4;b3isy,rm0Usy;ce,mb3;at,w;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd", "Infinitive": "true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k36l2Xm2Rnou3Uo2Mp25qu24r1As08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Gc0Fe0Dh09i07l05m04n03o01pWquVtOuJwG;all6YeeHiG;m,ng;p,t5;bIccumb,ffHggeBmm8Zp2DrG;mouFvi2;er,i3;li7Wmer9siGveD;de,st;aKe7PiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Pi8;awn,eJiIlHoGri68;il,of;ay,it;ll,t;ak,nd;lGot6Iw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5CoHriGun;nk,v5O;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Hv0w;!k,m;aven9ul7V;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2YsLtJvG;amp,eHiGo2N;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1TrG;a5QiCuctu7;de,gn,st;el,hra1lGreseF;a3e63;d0ew,o02;a5Le2To2;a6eFiGoad,y;e2nq3Dve;mbur1nf2M;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Dla3GoGyc4;gni54nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Kit,o6;aUerSiRlumm0SoQrIuG;b3Hke,ni8rGt;poDs6R;eKoG;cId,fe31hibEnoHpo1sp0truAvG;e,iAo4P;un3;la32u7;a5Bc1LdHf0ocSsup0CvG;a5GeF;etermi3ZiC;a58rt4Q;er3npoiF;cei2fo39i8mea6plex,sGvaA;eve7iB;mp0n11rGtrol,ve,y;a5Mt5I;bser2cJpIutHverGwe;lap,s13tu64u1;gr4Jnu1Upa3;era6i3Ppo1;cupy;aKe06iHoGultiply;leBu5Z;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u33;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng1Zu18;eep,nG;e3Kow;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on", "Participle": "true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own", "Modal": "true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld", diff --git a/src/2-two/preTagger/model/lexicon/emoticons.js b/src/2-two/preTagger/model/lexicon/emoticons.js index 5617835aa..7e12c4c04 100644 --- a/src/2-two/preTagger/model/lexicon/emoticons.js +++ b/src/2-two/preTagger/model/lexicon/emoticons.js @@ -58,4 +58,5 @@ export default [ '<3', ' Date: Wed, 19 Oct 2022 13:04:30 -0400 Subject: [PATCH 21/33] tagger fixes --- data/lexicon/adjectives/adjectives.js | 2 +- data/lexicon/misc/prepositions.js | 1 + data/lexicon/switches/adj-present.js | 2 +- scratch.js | 14 +--- src/2-two/preTagger/model/clues/adj-past.js | 73 ++++++++++--------- .../preTagger/model/clues/person-place.js | 35 ++++----- src/2-two/preTagger/model/lexicon/_data.js | 6 +- src/2-two/preTagger/model/lexicon/misc.js | 5 ++ src/3-three/chunker/api/clauses.js | 14 +++- 9 files changed, 82 insertions(+), 70 deletions(-) diff --git a/data/lexicon/adjectives/adjectives.js b/data/lexicon/adjectives/adjectives.js index b63aebc42..1712323fc 100644 --- a/data/lexicon/adjectives/adjectives.js +++ b/data/lexicon/adjectives/adjectives.js @@ -641,6 +641,6 @@ export default [ 'renowned', 'beside', - 'alright' + 'alright', ] diff --git a/data/lexicon/misc/prepositions.js b/data/lexicon/misc/prepositions.js index 786d81468..60bfd6313 100644 --- a/data/lexicon/misc/prepositions.js +++ b/data/lexicon/misc/prepositions.js @@ -58,6 +58,7 @@ export default [ 'w/o', 'whereas', 'with', + 'with whom', 'within', 'without', `'o`, diff --git a/data/lexicon/switches/adj-present.js b/data/lexicon/switches/adj-present.js index d500caea6..5856ccf55 100644 --- a/data/lexicon/switches/adj-present.js +++ b/data/lexicon/switches/adj-present.js @@ -26,7 +26,7 @@ export default [ 'mature', 'mean', 'moderate', - 'near', + // 'near', 'narrow', 'obscure', 'open', diff --git a/scratch.js b/scratch.js index d2b901d1d..75b0558f1 100644 --- a/scratch.js +++ b/scratch.js @@ -2,7 +2,7 @@ import nlp from './src/three.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -// nlp.verbose('tagger') +nlp.verbose('tagger') // let txt = '' // let doc // let m @@ -88,16 +88,8 @@ let arr = [ // "lifeguard patrolled beaches", // "Pride themed bikes", // "Tell Monica I say goodbye.", - "Prime minister during the war, some later called him \"the minister who lost America\"", - "She thought it was diet coke.", - "merchants with whom Mr. Shuttleworthy dealt, I gave instructions to my", - "But there you go again train travelin'", - "Robert B Cass", - "The nearest interstate is a 4 hour drive away.", - "Reading ARP related article lor.", - "We need to resolve the status of the illegal immigrants who are already in our country without animosity and without amnesty.", - "Do a ground combo as soon as you block a clone’s attack.", - "\"UAB SuperJazz, featuring Ellis Marsalis\" (2001) (Co-produced by Ray Reach and Henry Panion), recorded at the Alys Stephens Center.", + // "Reading ARP related article lor.", + "recorded at the Alys Stephens Center.", "I spoke with someone on the phone who heard a brief intro to my situation, put me on hold for about 5 minutes- came back and basically told me without even listening to the whole situation told me there was basically nothing they could she would talk to the attorney and call me.", "Charming replied that he was perfectly willing to go, and would set out the very next day.", "Ok, well, this was very special.", diff --git a/src/2-two/preTagger/model/clues/adj-past.js b/src/2-two/preTagger/model/clues/adj-past.js index 8a60e4a4d..91bd8f6fd 100644 --- a/src/2-two/preTagger/model/clues/adj-past.js +++ b/src/2-two/preTagger/model/clues/adj-past.js @@ -2,52 +2,55 @@ import adj from './_adj.js' // the boiled egg // boiled the water +let past = 'PastTense' -const past = { +const adjPast = { beforeTags: { - Adverb: 'PastTense', //quickly detailed - Pronoun: 'PastTense', //he detailed - ProperNoun: 'PastTense', //toronto closed - Auxiliary: 'PastTense', - Noun: 'PastTense', //eye closed -- i guess. + Adverb: past, //quickly detailed + Pronoun: past, //he detailed + ProperNoun: past, //toronto closed + Auxiliary: past, + Noun: past, //eye closed -- i guess. }, afterTags: { - Possessive: 'PastTense', //hooked him - Pronoun: 'PastTense', //hooked me - Determiner: 'PastTense', //hooked the - Adverb: 'PastTense', //cooked perfectly - Comparative: 'PastTense',//closed higher - Date: 'PastTense',// alleged thursday + Possessive: past, //hooked him + Pronoun: past, //hooked me + Determiner: past, //hooked the + Adverb: past, //cooked perfectly + Comparative: past,//closed higher + Date: past,// alleged thursday }, beforeWords: { - be: 'PastTense',//be hooked - get: 'PastTense',//get charged - had: 'PastTense', - has: 'PastTense', - have: 'PastTense', - been: 'PastTense', - it: 'PastTense',//it intoxicated him - as: 'PastTense',//as requested + be: past,//be hooked + who: past,//who lost + get: past,//get charged + had: past, + has: past, + have: past, + been: past, + it: past,//it intoxicated him + as: past,//as requested for: 'Adjective',//for discounted items }, afterWords: { - by: 'PastTense', //damaged by - back: 'PastTense', //charged back - out: 'PastTense', //charged out - in: 'PastTense', //crowded in - up: 'PastTense', //heated up - down: 'PastTense', //hammered down - for: 'PastTense', //settled for - the: 'PastTense', //settled the - with: 'PastTense', //obsessed with - as: 'PastTense', //known as - on: 'PastTense', //focused on + by: past, //damaged by + back: past, //charged back + out: past, //charged out + in: past, //crowded in + up: past, //heated up + down: past, //hammered down + for: past, //settled for + the: past, //settled the + with: past, //obsessed with + as: past, //known as + on: past, //focused on + at: past, //recorded at }, } export default { - beforeTags: Object.assign({}, adj.beforeTags, past.beforeTags), - afterTags: Object.assign({}, adj.afterTags, past.afterTags), - beforeWords: Object.assign({}, adj.beforeWords, past.beforeWords), - afterWords: Object.assign({}, adj.afterWords, past.afterWords), + beforeTags: Object.assign({}, adj.beforeTags, adjPast.beforeTags), + afterTags: Object.assign({}, adj.afterTags, adjPast.afterTags), + beforeWords: Object.assign({}, adj.beforeWords, adjPast.beforeWords), + afterWords: Object.assign({}, adj.afterWords, adjPast.afterWords), } \ No newline at end of file diff --git a/src/2-two/preTagger/model/clues/person-place.js b/src/2-two/preTagger/model/clues/person-place.js index ebcc942b3..005476580 100644 --- a/src/2-two/preTagger/model/clues/person-place.js +++ b/src/2-two/preTagger/model/clues/person-place.js @@ -1,31 +1,32 @@ import person from './_person.js' +const p = 'Place' // 'paris hilton' vs 'paris france' const place = { beforeTags: { - Place: 'Place' + Place: p }, afterTags: { - Place: 'Place', - Abbreviation: 'Place' + Place: p, + Abbreviation: p }, beforeWords: { - in: 'Place', - by: 'Place', - near: 'Place', - from: 'Place', - to: 'Place', + in: p, + by: p, + near: p, + from: p, + to: p, }, afterWords: { - in: 'Place', - by: 'Place', - near: 'Place', - from: 'Place', - to: 'Place', - government: 'Place', - council: 'Place', - region: 'Place', - city: 'Place', + in: p, + by: p, + near: p, + from: p, + to: p, + government: p, + council: p, + region: p, + city: p, }, } diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js index b4313b3fe..2925dbbed 100644 --- a/src/2-two/preTagger/model/lexicon/_data.js +++ b/src/2-two/preTagger/model/lexicon/_data.js @@ -25,7 +25,7 @@ export default { "Honorific|Noun": "true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al", "Pronoun": "true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s", "Singular": "true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al", - "Preposition": "true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", + "Preposition": "true¦'o,-,aMbJcIdHexcept,fFinEmid,notwithstandiSoCpTqua,sBt7u4v2w0;/o,hereOith0;! whEin,oS;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that;',f0n1ut;!f;!to;or,r0;om;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", "SportsTeam": "true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls", "Uncountable": "true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics", "Person|Noun": "true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma", @@ -53,8 +53,8 @@ export default { "Determiner": "true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er", "Adverb": "true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori", "Currency": "true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s", - "Adj|Present": "true¦a01blu00cSdNeLfIhollHidOlFmDnCoBp9qua8r7s4t2utt3w0;aJet,ound,ro0;ng,ug02;end0hin,op;er;e1l0mooth,our,pa9u9;i2ow;cu7daWlOpaK;eplicaVigW;ck;aEr0;esePime,ompt;bscu2pen,wn;arr4ear;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht", - "Comparable": "true¦0:3A;1:3P;2:3E;3:2C;a3Tb3Bc2Zd2Pe2If26g1Uh1Ki1Ej1Dk1Al13m0Xn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el10ou39;a8e6hi1Gi4ry;ck0Dde,l4n1ry,se;d,y;a4i3S;k,ry;nti33ry;a4erda2ulgar;gue,in,st;g0pcomi30;a7en2Shi6i5ough,r4;anqu27en1ue;dy,g35me0ny,r03;ck,rs23;ll,me,rt,wd3H;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Uperfi1Vrre23;sta21t3;a8e7iff,r5u4;pUr1;a4ict,o2O;ig2Vn0M;a1ep,rn;le,rk;e1Ni2Vright0;ci1Uft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Mm4;!y;ek,nd2S;ck,l0mp3;a4iRort,rill,y;dy,l00rp;ve0Hxy;ce,y;d,fe,int0l1Dv0T;a9e7i6o4ude;mantic,o15sy,u4;gh,nd;ch,pe,tzy;a4d,mo09;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1BlAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouRud;ey,k0;liWor;ain,easa2;ny;dd,i0ld,ranK;aive,e6i5o4;b3isy,rm0Usy;ce,mb3;at,w;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd", + "Adj|Present": "true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht", + "Comparable": "true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd", "Infinitive": "true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k36l2Xm2Rnou3Uo2Mp25qu24r1As08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Gc0Fe0Dh09i07l05m04n03o01pWquVtOuJwG;all6YeeHiG;m,ng;p,t5;bIccumb,ffHggeBmm8Zp2DrG;mouFvi2;er,i3;li7Wmer9siGveD;de,st;aKe7PiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Pi8;awn,eJiIlHoGri68;il,of;ay,it;ll,t;ak,nd;lGot6Iw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5CoHriGun;nk,v5O;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Hv0w;!k,m;aven9ul7V;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2YsLtJvG;amp,eHiGo2N;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1TrG;a5QiCuctu7;de,gn,st;el,hra1lGreseF;a3e63;d0ew,o02;a5Le2To2;a6eFiGoad,y;e2nq3Dve;mbur1nf2M;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Dla3GoGyc4;gni54nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Kit,o6;aUerSiRlumm0SoQrIuG;b3Hke,ni8rGt;poDs6R;eKoG;cId,fe31hibEnoHpo1sp0truAvG;e,iAo4P;un3;la32u7;a5Bc1LdHf0ocSsup0CvG;a5GeF;etermi3ZiC;a58rt4Q;er3npoiF;cei2fo39i8mea6plex,sGvaA;eve7iB;mp0n11rGtrol,ve,y;a5Mt5I;bser2cJpIutHverGwe;lap,s13tu64u1;gr4Jnu1Upa3;era6i3Ppo1;cupy;aKe06iHoGultiply;leBu5Z;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u33;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng1Zu18;eep,nG;e3Kow;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on", "Participle": "true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own", "Modal": "true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld", diff --git a/src/2-two/preTagger/model/lexicon/misc.js b/src/2-two/preTagger/model/lexicon/misc.js index 0b8bd9c2b..79c38ce72 100644 --- a/src/2-two/preTagger/model/lexicon/misc.js +++ b/src/2-two/preTagger/model/lexicon/misc.js @@ -78,6 +78,11 @@ let misc = { guaranteed: 'PastTense', shrunk: 'PastTense', + // support 'near', 'nears', 'nearing' + nears: 'PresentTense', + nearing: 'Gerund', + neared: 'PastTense', + no: ['Negative', 'Expression'] } export default misc diff --git a/src/3-three/chunker/api/clauses.js b/src/3-three/chunker/api/clauses.js index 7d9170a49..417f5ec84 100644 --- a/src/3-three/chunker/api/clauses.js +++ b/src/3-three/chunker/api/clauses.js @@ -22,7 +22,7 @@ const byComma = function (doc) { return doc.splitAfter(commas) } -// should we split-out parentheses? +// should we split-out a clause (in brackets)? const splitParentheses = function (doc) { let matches = doc.parentheses() matches = matches.filter(m => { @@ -31,10 +31,20 @@ const splitParentheses = function (doc) { return doc.splitOn(matches) } +// split-out a long quotion, but not 'inline quotes'. +const splitQuotes = function (doc) { + let matches = doc.quotations() + matches = matches.filter(m => { + return m.wordCount() >= 3 && m.has('#Verb') && m.has('#Noun') + }) + return doc.splitOn(matches) +} + const clauses = function (n) { let found = this found = splitParentheses(found) + found = splitQuotes(found) found = byComma(found) @@ -55,7 +65,7 @@ const clauses = function (n) { found = found.splitBefore('(supposing|although)') found = found.splitBefore('even (while|if|though)') found = found.splitBefore('(whereas|whose)') - found = found.splitBefore('as (far|long|much|soon) as') + // found = found.splitBefore('as (far|long|much|soon) as') found = found.splitBefore('as (though|if)') found = found.splitBefore('(til|until)') From 37e2409ba2967adb85aeb96d5689f7657c472eb9 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 13:09:15 -0400 Subject: [PATCH 22/33] done tagging fixes --- scratch.js | 11 +---------- src/2-two/postTagger/model/nouns/nouns.js | 2 +- src/2-two/preTagger/model/clues/noun-verb.js | 2 +- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/scratch.js b/scratch.js index 75b0558f1..34a148096 100644 --- a/scratch.js +++ b/scratch.js @@ -2,7 +2,7 @@ import nlp from './src/three.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -nlp.verbose('tagger') +// nlp.verbose('tagger') // let txt = '' // let doc // let m @@ -89,15 +89,6 @@ let arr = [ // "Pride themed bikes", // "Tell Monica I say goodbye.", // "Reading ARP related article lor.", - "recorded at the Alys Stephens Center.", - "I spoke with someone on the phone who heard a brief intro to my situation, put me on hold for about 5 minutes- came back and basically told me without even listening to the whole situation told me there was basically nothing they could she would talk to the attorney and call me.", - "Charming replied that he was perfectly willing to go, and would set out the very next day.", - "Ok, well, this was very special.", - "The top 10 bars and pubs with cider on tap in Boston", - "Adventurous 26th president, he was 1st to ride in an automobile & an airplane", - "A girl just told me I've got a huge ego... I think she means cock.", - "It frightened me like nothing else ever has.", - "I couldn't hear a word, a word he said.", diff --git a/src/2-two/postTagger/model/nouns/nouns.js b/src/2-two/postTagger/model/nouns/nouns.js index 108692378..8acabde4a 100644 --- a/src/2-two/postTagger/model/nouns/nouns.js +++ b/src/2-two/postTagger/model/nouns/nouns.js @@ -85,7 +85,7 @@ export default [ // fight and win { match: '#Infinitive and [%Noun|Verb%]', group: 0, tag: 'Infinitive', reason: 'fight and win' }, // bride and groom - { match: '#Noun and [%Noun|Verb%]', group: 0, tag: 'Singular', ifNo: ['#ProperNoun'], reason: 'bride-and-groom' }, + // { match: '#Noun and [%Noun|Verb%]', group: 0, tag: 'Singular', ifNo: ['#ProperNoun'], reason: 'bride-and-groom' }, // peace and flowers and love { match: '#Noun and [#Verb] and #Noun', group: 0, tag: 'Noun', reason: 'peace-and-flowers' }, // the 1992 classic diff --git a/src/2-two/preTagger/model/clues/noun-verb.js b/src/2-two/preTagger/model/clues/noun-verb.js index e96038387..c8f86721c 100644 --- a/src/2-two/preTagger/model/clues/noun-verb.js +++ b/src/2-two/preTagger/model/clues/noun-verb.js @@ -29,5 +29,5 @@ const clue = { in: null }), } -// console.log(clue.afterWords.of) + export default clue \ No newline at end of file From b123f25f223015933baa705dd5f8d994889050c2 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 13:19:27 -0400 Subject: [PATCH 23/33] fix for #970 --- scratch.js | 16 +++++++++++----- .../methods/03-whitespace/punctuation.js | 2 +- .../tokenize/methods/03-whitespace/tokenize.js | 5 +++++ tests/one/match.test.js | 3 +++ 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/scratch.js b/scratch.js index 34a148096..f5d6a969e 100644 --- a/scratch.js +++ b/scratch.js @@ -94,12 +94,18 @@ let arr = [ ] +let doc = nlp('Please -Match me') +// let doc = nlp('Please -7 me') +doc.debug() +console.log(doc.json()[0]) +console.log(doc.match('Match me').out()) + // let doc = nlp("he said I am a boy, so far") -let i = 0 -let txt = arr[i] -let doc = nlp(txt) -console.log(doc.text()) -doc.clauses().debug() +// let i = 0 +// let txt = arr[i] +// let doc = nlp(txt) +// console.log(doc.text()) +// doc.clauses().debug() // console.log(doc.sentences().json()) // [ { form: 'simple-present', tense: 'PresentTense', copula: true } ] diff --git a/src/1-one/tokenize/methods/03-whitespace/punctuation.js b/src/1-one/tokenize/methods/03-whitespace/punctuation.js index 203e659b2..454dcb236 100644 --- a/src/1-one/tokenize/methods/03-whitespace/punctuation.js +++ b/src/1-one/tokenize/methods/03-whitespace/punctuation.js @@ -2,7 +2,7 @@ const allowBefore = [ '#', //#hastag '@', //@atmention '_',//underscore - '\\-',//-4 (escape) + // '\\-',//-4 (escape) '+',//+4 '.',//.4 ] diff --git a/src/1-one/tokenize/methods/03-whitespace/tokenize.js b/src/1-one/tokenize/methods/03-whitespace/tokenize.js index 71eb4786a..258024064 100644 --- a/src/1-one/tokenize/methods/03-whitespace/tokenize.js +++ b/src/1-one/tokenize/methods/03-whitespace/tokenize.js @@ -9,6 +9,7 @@ const startings = /^[\p{Punctuation}\s]+/u const hasApostrophe = /['’]/ const hasAcronym = /^[a-z]\.([a-z]\.)+/i const shortYear = /^'[0-9]{2}/ +const isNumber = /^-[0-9]/ const normalizePunctuation = function (str) { let original = str @@ -27,6 +28,10 @@ const normalizePunctuation = function (str) { pre = '' return found } + // support prefix negative signs like '-45' + if (found === '-' && isNumber.test(str)) { + return found + } pre = found //keep it return '' }) diff --git a/tests/one/match.test.js b/tests/one/match.test.js index 471f2515c..b23283ef3 100644 --- a/tests/one/match.test.js +++ b/tests/one/match.test.js @@ -16,6 +16,9 @@ let arr = [ ['mexico city hall', '/mex/? .+'], ['mexico', '/mex/'], ['mexico', '.{0,3}'], + ['Please -Match me', 'please match me'], + ['the -5 runner', 'the -5 runner'], + ['the -5th runner', 'the -5th runner'], ] test('match:', function (t) { arr.forEach(function (a) { From 4db0e44ff24a1a6b15aced8aaeb00e65f4a258d8 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 14:17:11 -0400 Subject: [PATCH 24/33] add passive verb tag --- scratch.js | 25 ++++++++++----------- src/2-two/postTagger/model/index.js | 3 +++ src/2-two/postTagger/model/verbs/passive.js | 14 ++++++++++++ src/2-two/preTagger/tagSet/verbs.js | 4 ++++ 4 files changed, 33 insertions(+), 13 deletions(-) create mode 100644 src/2-two/postTagger/model/verbs/passive.js diff --git a/scratch.js b/scratch.js index f5d6a969e..5392da290 100644 --- a/scratch.js +++ b/scratch.js @@ -2,7 +2,7 @@ import nlp from './src/three.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -// nlp.verbose('tagger') +nlp.verbose('tagger') // let txt = '' // let doc // let m @@ -61,6 +61,7 @@ let arr = [ // "Why are there people that doubleclick?", // "Anyway we r movin off now only lor.", + // "The money generated by the industry kept the city insulated from much of the economic loss suffered by the rest of the country during the Great Depression.", // "a run of the mill food court", // "a disappointment which I could not have foreseen.", @@ -90,23 +91,21 @@ let arr = [ // "Tell Monica I say goodbye.", // "Reading ARP related article lor.", - + // "jack is guarded", + " the economic loss suffered by the country", + "i've been knocked down", + "At this point we're frustrated but the hotel" ] -let doc = nlp('Please -Match me') -// let doc = nlp('Please -7 me') -doc.debug() -console.log(doc.json()[0]) -console.log(doc.match('Match me').out()) -// let doc = nlp("he said I am a boy, so far") -// let i = 0 -// let txt = arr[i] -// let doc = nlp(txt) +let i = 0 +let txt = arr[i] +// txt = "he said I am a boy, so far" +let doc = nlp(txt) // console.log(doc.text()) -// doc.clauses().debug() -// console.log(doc.sentences().json()) +doc.clauses().debug() +console.log(doc.sentences().json()) // [ { form: 'simple-present', tense: 'PresentTense', copula: true } ] diff --git a/src/2-two/postTagger/model/index.js b/src/2-two/postTagger/model/index.js index 78cf2173d..da3229072 100644 --- a/src/2-two/postTagger/model/index.js +++ b/src/2-two/postTagger/model/index.js @@ -25,6 +25,7 @@ import auxiliary from './verbs/auxiliary.js' import phrasal from './verbs/phrasal.js' import imperative from './verbs/imperative.js' import adjGerund from './verbs/adj-gerund.js' +import passive from './verbs/passive.js' import misc from './_misc.js' @@ -33,6 +34,8 @@ import places from './nouns/places.js' import conjunctions from './conjunctions.js' let matches = [].concat( + // order matters top-matches can get overwritten + passive, adj, advAdj, gerundAdj, diff --git a/src/2-two/postTagger/model/verbs/passive.js b/src/2-two/postTagger/model/verbs/passive.js new file mode 100644 index 000000000..7c84ec897 --- /dev/null +++ b/src/2-two/postTagger/model/verbs/passive.js @@ -0,0 +1,14 @@ +// ==== Passive voice === +export default [ + // got walked, was walked, were walked + { match: '(got|were|was|is|are|am) (#PastTense|#Participle)', tag: 'Passive', reason: 'got-walked' }, + // was being walked + { match: '(was|were|is|are|am) being (#PastTense|#Participle)', tag: 'Passive', reason: 'was-being' }, + // had been walked, have been eaten + { match: '(had|have|has) been (#PastTense|#Participle)', tag: 'Passive', reason: 'had-been' }, + // will be cleaned + { match: 'will be being? (#PastTense|#Participle)', tag: 'Passive', reason: 'will-be-cleaned' }, + // + { match: '#Noun [(#PastTense|#Participle)] by (the|a) #Noun', group: 0, tag: 'Passive', reason: '' }, + +] \ No newline at end of file diff --git a/src/2-two/preTagger/tagSet/verbs.js b/src/2-two/preTagger/tagSet/verbs.js index 585fd4b21..995a61b6a 100644 --- a/src/2-two/preTagger/tagSet/verbs.js +++ b/src/2-two/preTagger/tagSet/verbs.js @@ -53,4 +53,8 @@ export default { is: 'PhrasalVerb', not: ['PastTense', 'PresentTense', 'Copula', 'Gerund'], }, + // 'walked by' + Passive: { + is: 'Verb', + }, } From f972dfae2c796bae6877729e114bca78803770f9 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 14:40:12 -0400 Subject: [PATCH 25/33] passive tagging issues --- changelog.md | 1 + data/lexicon/switches/adj-past.js | 1 + scratch.js | 11 ++++++++--- src/2-two/postTagger/model/_misc.js | 2 ++ src/2-two/postTagger/model/verbs/imperative.js | 4 ++++ src/2-two/postTagger/model/verbs/passive.js | 4 ++-- src/2-two/preTagger/model/lexicon/_data.js | 4 ++-- src/3-three/verbs/api/parse/grammar/forms.js | 16 ++++++++-------- tests/three/verbs/imperative.test.js | 2 +- tests/three/verbs/toInfinitive.test.js | 4 ++-- tests/two/match.test.js | 3 ++- 11 files changed, 33 insertions(+), 19 deletions(-) diff --git a/changelog.md b/changelog.md index fe4ac80db..b43fe9710 100644 --- a/changelog.md +++ b/changelog.md @@ -16,6 +16,7 @@ While all _Major_ releases should be reviewed, our only _large_ releases are **v - **[change]** - an astrix is not a word - **[new]** - @hasColon method - **[new]** - @hasDash supports two dashes +- **[new]** - #Passive tag #### 14.5.2 [Oct 2022] - **[fix]** - runtime error #965 diff --git a/data/lexicon/switches/adj-past.js b/data/lexicon/switches/adj-past.js index 35eeebe46..f241fa664 100644 --- a/data/lexicon/switches/adj-past.js +++ b/data/lexicon/switches/adj-past.js @@ -30,6 +30,7 @@ export default [ 'bottled', 'bound', 'burned', + 'broken', 'calculated', 'celebrated', 'centralized', diff --git a/scratch.js b/scratch.js index 5392da290..e657ab55a 100644 --- a/scratch.js +++ b/scratch.js @@ -18,7 +18,9 @@ nlp.verbose('tagger') // bug 3 // doc = nlp(' 18e').debug() - +// bug 4 +// let doc = nlp("when the rain pours, come have a drink") +// console.log(doc.verbs().conjugate()) // const text = `Remove me 1: // - A some text @@ -92,6 +94,10 @@ let arr = [ // "Reading ARP related article lor.", // "jack is guarded", + // "they might have been spared", + // "the King's courage was unshaken", + "auction games are brought up", + "a plate had been broken", " the economic loss suffered by the country", "i've been knocked down", "At this point we're frustrated but the hotel" @@ -101,9 +107,8 @@ let arr = [ let i = 0 let txt = arr[i] -// txt = "he said I am a boy, so far" +txt = "C'mon Luisa" let doc = nlp(txt) -// console.log(doc.text()) doc.clauses().debug() console.log(doc.sentences().json()) diff --git a/src/2-two/postTagger/model/_misc.js b/src/2-two/postTagger/model/_misc.js index 883c48aac..ea1589863 100644 --- a/src/2-two/postTagger/model/_misc.js +++ b/src/2-two/postTagger/model/_misc.js @@ -30,6 +30,8 @@ let matches = [ { match: '(say|says|said) [sorry]', group: 0, tag: 'Expression', reason: 'say-sorry' }, // ok, { match: '^(ok|alright|well|shoot|hell|anyways)', tag: 'Expression', reason: 'ok-' }, + // c'mon marge.. + { match: '^[come on] #Noun', group: 0, tag: 'Expression', reason: 'come-on' }, // say, { match: '^(say && @hasComma)', tag: 'Expression', reason: 'say-' }, { match: '^(like && @hasComma)', tag: 'Expression', reason: 'like-' }, diff --git a/src/2-two/postTagger/model/verbs/imperative.js b/src/2-two/postTagger/model/verbs/imperative.js index 192e19226..01023a4b9 100644 --- a/src/2-two/postTagger/model/verbs/imperative.js +++ b/src/2-two/postTagger/model/verbs/imperative.js @@ -37,6 +37,10 @@ export default [ { match: '^#Modal you [#Infinitive]', group: 0, tag: 'Imperative', reason: 'would-you-' }, // never say { match: '^never [#Infinitive]', group: 0, tag: 'Imperative', reason: 'never-stop' }, + // come have a drink + { match: '^come #Infinitive', tag: 'Imperative', reason: 'come-have' }, + // come and have a drink + { match: '^come and? #Infinitive', tag: 'Imperative . Imperative', reason: 'come-and-have' }, // stay away { match: '^stay (out|away|back)', tag: 'Imperative', reason: 'stay-away' }, // stay cool diff --git a/src/2-two/postTagger/model/verbs/passive.js b/src/2-two/postTagger/model/verbs/passive.js index 7c84ec897..359ae365d 100644 --- a/src/2-two/postTagger/model/verbs/passive.js +++ b/src/2-two/postTagger/model/verbs/passive.js @@ -8,7 +8,7 @@ export default [ { match: '(had|have|has) been (#PastTense|#Participle)', tag: 'Passive', reason: 'had-been' }, // will be cleaned { match: 'will be being? (#PastTense|#Participle)', tag: 'Passive', reason: 'will-be-cleaned' }, - // - { match: '#Noun [(#PastTense|#Participle)] by (the|a) #Noun', group: 0, tag: 'Passive', reason: '' }, + // suffered by the country + { match: '#Noun [(#PastTense|#Participle)] by (the|a) #Noun', group: 0, tag: 'Passive', reason: 'suffered-by' }, ] \ No newline at end of file diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js index 2925dbbed..ea9f47ad2 100644 --- a/src/2-two/preTagger/model/lexicon/_data.js +++ b/src/2-two/preTagger/model/lexicon/_data.js @@ -49,7 +49,8 @@ export default { "LastName": "true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta", "MaleName": "true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on", "Person": "true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er", - "Adjective": "true¦0:96;1:81;2:7Y;3:8X;4:8R;5:6E;6:82;7:87;8:8S;9:8E;A:5W;a7Nb77c6Pd67e5Qf58g50h4Pi3Rjuni44k3Pl3Fm33n2To2Ep1Wquart63r1Ls0Rt0JuMvIwBye1J;ast54eFholeEiDoB;man5oBrthwhi6u0F;d7Izy;despr8Gs6E;!sa6;ather13eBll o5Jste2Q;!k5;aDeCiBola5D;b96ce versa,gi2Q;ng4Vrsa5B;ca0lu54;lt06nHpDrCsBttermo8Y;ef76u4;b67ge0; Db2ApCsBti7Z;ca6et,ide dO;er,i4L;f3Tto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4E;e70i2FoDpCuB;pervis1spect2;e0ok6Y;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6P;mploy1nd2xpect1;eBue;cid1rB;!a6ScovAly2sDwB;aBei7D;tAy;iz1to43;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Gra;aGeDhough59ip 1PoCrB;anspa6Zi3;gethAle84rp9;ena6GmpCrB;r3Ftia6Q;e8o6O;leBst3Q;nt1;a03c01eZhYiWkiVmug,nobb3ZoPpMqueam3ZtGuBymb71;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb50;eq74tanda7Q;atu6AeFi0UrByl3T;aBin4D;ightBy; fBfB;or5Y;adfa7Iri6;arCeBirit1lend9ot on;c2Ye34;k5se; caGlub6mbAphisticFrEuCvB;erei5Jiet;ndBth0X;pro6G;d9ry;at1;ll1;g1WnB;ce58g6;am30eA;at1co1Hem5lf3AnBre7;so5W;ath2holBient2K;ar5;cr1me,tisfac5N;aJeEheumato9iCoB;bu6Ytt59y4;ghtBv4;-w2f55;bYcEdu6PlDnown1sBtard1;is3DoB;lu3na0;e1Buc3B;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6OrCuB;bl5Wnjabi;eGiEoB;!b2QfCmi3BpBv4Wxi1Z;er,ort61;a7u64;maBor,sti7va3;!ry;ci61exist2mBpa9;a1Oi64;c9id;ac28rBti3;fe68ma32ti32v5W;i28rCsB;s5Rt;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni59seas,t,wB;ei58rou58;ll;do0Wer;d2Ug1M; bBbBgo2li7;oa61;fashion1school;!ay; gua5YbBli7;eat;eCsB;ce7er0Co0R;dia0se;aJeIiHoBuanc1;nDrthBt1V;!eB;rn;chaCdescri5Mprof29sB;top;la0;ght5;arby,cessa4Cighbor5xt;k1usiat2;aIeHinGoCuB;d14ltip6;deDl13nBot,st;ochroBth5;me;rn,st;dblRi;nac2re;cDgenta,in,j03keshift,mmCnBscu4F;da3Vy;ali2Ioth;ab38ho;aJeGiEoCuB;mber2sh;ngBut19;stand2term;ghtwei45teraB;l,te;ft-w2gBssAth4;al,eBi0B;nda3Q;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 25rB;a3releB;va0; QaPcoMdJe2AfIhibi3DiWnHoGsDtBvalu0V;a4LeB;n49rdep1U;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Ltermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr37;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0T;d2Zn3N;tu23;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2CnCrrBs04ur5;if31;e3Ro2J;ghfalut1LspB;an2Y;lUpf1X;lCnBrdZtI;dy;f,low1;aiHener2Tiga26lob4oGraDuB;ilBng ho;ty;cCtB;ef1Pis;ef1O;od;nf1M;aPeMinLlJoErB;aCeBoz1M;q2Qtf1J;gi6nt2I;olErB; keeps,eBge0FmAtu2Pwa39;go2i1CseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aOfficie0lMmJnHqu4re2Qthere4veryday,xB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1H;icB;it; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Kfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in24;et,te; IadpHceGfiFgene8liDpCreli22spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Z;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1O;cEduHgr14jDsCtraB;dic0Ary;eq12ta0;oi0ug4;a0Wi15;mensu8pass10;ni4ss4;ci0T;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1F;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0ZrrB;en;!wards; priori,b0Qc0Nd0Gf0Ag08h07l00mp6ntiquXpRrLsleep,ttracti09uHvEwB;aCkB;wa0X;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntX;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohFiJkaDl,oCriBterP;ght;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt", + "Adjective": "true¦0:95;1:80;2:7X;3:8W;4:8Q;5:6E;6:81;7:86;8:8R;9:8D;A:5W;a7Mb77c6Pd67e5Qf58g50h4Pi3Rjuni44k3Pl3Fm33n2To2Ep1Wquart63r1Ls0Rt0JuMvIwBye1J;ast54eFholeEiDoB;man5oBrthwhi6u0F;d7Hzy;despr8Fs6E;!sa6;ather13eBll o5Jste2Q;!k5;aDeCiBola5D;b95ce versa,gi2Q;ng4Vrsa5B;ca0lu54;lt06nHpDrCsBttermo8X;ef75u4;b67ge0; Db2ApCsBti7Y;ca6et,ide dO;er,i4L;f3Tto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4E;e6Zi2FoDpCuB;pervis1spect2;e0ok6X;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6O;mploy1nd2xpect1;eBue;cid1rB;!a6RcovAly2sDwB;aBei7C;tAy;iz1to43;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Gra;aGeDhough59ip 1PoCrB;anspa6Yi3;gethAle83rp9;ena6FmpCrB;r3Ftia6P;e8o6N;leBst3Q;nt1;a03c01eZhYiWkiVmug,nobb3ZoPpMqueam3ZtGuBymb70;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb50;eq73tanda7P;atu69eFi0UrByl3T;aBin4D;ightBy; fBfB;or5X;adfa7Hri6;arCeBirit1lend9ot on;c2Ye34;k5se; caGlub6mbAphisticFrEuCvB;erei5Iiet;ndBth0X;pro6F;d9ry;at1;ll1;g1WnB;ce57g6;am30eA;at1co1Hem5lf3AnBre7;so5V;ath2holBient2K;ar5;cr1me,tisfac5M;aJeEheumato9iCoB;bu6Xtt58y4;ghtBv4;-w2f54;bYcEdu6OlDnown1sBtard1;is3DoB;lu3na0;e1Buc3B;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6NrCuB;bl5Vnjabi;eGiEoB;!b2QfCmi3BpBv4Vxi1Z;er,ort60;a7u63;maBor,sti7va3;!ry;ci60exist2mBpa9;a1Oi63;c9id;ac28rBti3;fe67ma32ti32v5V;i28rCsB;s5Qt;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni58seas,t,wB;ei57rou57;ll;do0Wer;d2Ug1M; bBbBgo2li7;oa60;fashion1school;!ay; gua5XbBli7;eat;eCsB;ce7er0Co0R;dia0se;aJeIiHoBuanc1;nDrthBt1V;!eB;rn;chaCdescri5Lprof29sB;top;la0;ght5;arby,cessa4Bighbor5xt;k1usiat2;aIeHinGoCuB;d14ltip6;deDl13nBot,st;ochroBth5;me;rn,st;dblRi;nac2re;cDgenta,in,j03keshift,mmCnBscu4E;da3Uy;ali2Ioth;ab37ho;aJeGiEoCuB;mber2sh;ngBut19;stand2term;ghtwei44teraB;l,te;ft-w2gBssAth4;al,eBi0B;nda3P;ngu9ps1st;aput,ind5nB;ow2;gno4Xll03mVnDpso 25rB;a3releB;va0; QaPcoMdJe2AfIhibi3CiWnHoGsDtBvalu0V;a4KeB;n48rdep1U;a7igColBuboD;ub6ve0;nifica0;rdi41;a3er;eriCluenOreq3X;eCiEoB;or;fini3p1Ltermi3W;mpCnside8rB;re48;le3;ccu8deq3Xppr36;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe40;ti4;aCeBi0T;d2Yn3M;tu22;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3I;me ma2BnCrrBs04ur5;if30;e3Qo2I;ghfalut1LspB;an2X;lUpf1W;lCnBrdZtI;dy;f,low1;aiHener2Siga25lob4oGraDuB;ilBng ho;ty;cCtB;ef1Ois;ef1N;od;nf1L;aPeMinLlJoErB;aCeBoz1L;q2Ptf1I;gi6nt2H;olErB; keeps,eBge0FmAtu2Owa38;go2i1BseeB;ab6;ish;ag37uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Hmiliar,r Bux;oBreach2;ff;aOfficie0lMmJnHqu4re2Pthere4veryday,xB;a2Oem2RplEquisi3traDuB;be2WlB;ta0;!va1G;icB;it; Bti0O;rou3sui3;erCiB;ne0;ge0;dBe18;er5;gAsB;t,ygo2;er;aQeHiCoBrea15ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0A;a0ni3;as1;an;facto;i5ngeroX;ly;arRePivil,oErCuB;nn2stoma0M;aBu0Iystal0Y;v02z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic09ry;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efM;aMeFizarEliKoCrBuck nak1;and new,isk,on1F;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0ZrrB;en;!wards; priori,b0Qc0Nd0Gf0Ag08h07l00mp6ntiquXpRrLsleep,ttracti09uHvEwB;aCkB;wa0X;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntX;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohFiJkaDl,oCriBterP;ght;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt", + "Adj|Past": "true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4roken,urn0;il0r0t4und;tl0;as0;k0laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed", "Determiner": "true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er", "Adverb": "true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori", "Currency": "true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s", @@ -59,7 +60,6 @@ export default { "Participle": "true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own", "Modal": "true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld", "Adj|Gerund": "true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng", - "Adj|Past": "true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;k0laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed", "Person|Verb": "true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck", "Person|Place": "true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria", "Person|Date": "true¦a2j0sep;an0une;!uary;p0ugust,v0;ril" diff --git a/src/3-three/verbs/api/parse/grammar/forms.js b/src/3-three/verbs/api/parse/grammar/forms.js index ff59a7f14..b2550cb22 100644 --- a/src/3-three/verbs/api/parse/grammar/forms.js +++ b/src/3-three/verbs/api/parse/grammar/forms.js @@ -106,25 +106,25 @@ const verbForms = { // ==== Passive === 'passive-past': [ // got walked, was walked, were walked - ['(got|were|was) (#PastTense|#Participle)', [past, passive]], + ['(got|were|was) #Passive', [past, passive]], // was being walked - ['^(was|were) being (#PastTense|#Participle)', [past, passive]], + ['^(was|were) being #Passive', [past, passive]], // had been walked, have been eaten - ['^(had|have) been (#PastTense|#Participle)', [past, passive]], + ['^(had|have) been #Passive', [past, passive]], ], 'passive-present': [ // is walked, are stolen - ['^(is|are|am) (#PastTense|#Participle)', [present, passive]], + ['^(is|are|am) #Passive', [present, passive]], // is being walked - ['^(is|are|am) being (#PastTense|#Participle)', [present, passive]], + ['^(is|are|am) being #Passive', [present, passive]], // has been cleaned - ['^has been (#PastTense|#Participle)', [present, passive]], + ['^has been #Passive', [present, passive]], ], 'passive-future': [ // will have been walked - ['will have been (#PastTense|#Participle)', [future, passive, conditional]], + ['will have been #Passive', [future, passive, conditional]], // will be cleaned - ['will be being? (#PastTense|#Participle)', [future, passive, conditional]], + ['will be being? #Passive', [future, passive, conditional]], ], // === Conditional === diff --git a/tests/three/verbs/imperative.test.js b/tests/three/verbs/imperative.test.js index a64ae7977..e896de689 100644 --- a/tests/three/verbs/imperative.test.js +++ b/tests/three/verbs/imperative.test.js @@ -63,8 +63,8 @@ test('isImperative:', function (t) { ["UPDATE: /u/Averyhonestguy has raised a very sobering point", false], ["Bike Share rolls out Pride themed bikes in New York", false], ["Like I don't need nobody else", false], - ["C'mon, Luisa, you have a chance to be the bigger person here!", false], ["Right after we broke up, my ex-girlfriend asked me how to change.", false], + // ["C'mon, Luisa, you have a chance to be the bigger person here!", false], // ["Listen, calling people names says a lot more about you than it does about them, idiot.", true], ["Hook, line, and sinker", false], ["Brand new bags.", false], diff --git a/tests/three/verbs/toInfinitive.test.js b/tests/three/verbs/toInfinitive.test.js index 5ea41a5ee..a5c49990d 100644 --- a/tests/three/verbs/toInfinitive.test.js +++ b/tests/three/verbs/toInfinitive.test.js @@ -221,7 +221,6 @@ test('toInfinitive-phrase:', function (t) { ["attuned", "attune"], ["tuned", "tune"], ["boned", "bone"], - ["stunned", "stun"], ["twinned", "twin"], ["underpinned", "underpin"], ["skinned", "skin"], @@ -452,7 +451,8 @@ test('toInfinitive-coerced:', function (t) { ['controlled', 'control'], ['recorded', 'record'], ['trapped', 'trap'], - ['associated', 'associate'] + ['associated', 'associate'], + ["stunned", "stun"], ] arr.forEach(a => { let doc = nlp(a[0]).tag('PastTense') diff --git a/tests/two/match.test.js b/tests/two/match.test.js index 5d2b2bc3a..bcd1d9ec2 100644 --- a/tests/two/match.test.js +++ b/tests/two/match.test.js @@ -712,7 +712,8 @@ let arr = [ ["Right in", '#Adverb #Preposition'], ["Right angle.", '#Adjective #Noun'], [`The Island airport tunnel nears completion`, `the #Noun+ #PresentTense #Noun`], - // [``, ``], + [`come have a drink`, `#Imperative #Imperative a #Singular`], + [`come and have a drink`, `#Imperative and #Imperative a #Singular`], // [``, ``], // [``, ``], ] From 7d6729173a63c386fbe1befe6c682afd5ae8e00d Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 14:48:37 -0400 Subject: [PATCH 26/33] add tense to sentence json --- scratch.js | 8 ++++---- src/3-three/chunker/compute/03-matcher.js | 2 ++ src/3-three/sentences/api.js | 3 ++- src/3-three/sentences/parse/index.js | 17 ++++++++++++++++- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/scratch.js b/scratch.js index e657ab55a..1f70483c6 100644 --- a/scratch.js +++ b/scratch.js @@ -2,7 +2,7 @@ import nlp from './src/three.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -nlp.verbose('tagger') +// nlp.verbose('tagger') // let txt = '' // let doc // let m @@ -107,10 +107,10 @@ let arr = [ let i = 0 let txt = arr[i] -txt = "C'mon Luisa" +txt = "when the rain pours, come and have a drink" let doc = nlp(txt) -doc.clauses().debug() -console.log(doc.sentences().json()) +// doc.clauses().debug() +console.log(doc.sentences().json()[0].sentence) // [ { form: 'simple-present', tense: 'PresentTense', copula: true } ] diff --git a/src/3-three/chunker/compute/03-matcher.js b/src/3-three/chunker/compute/03-matcher.js index 8a9cf6eaf..ccc1a3110 100644 --- a/src/3-three/chunker/compute/03-matcher.js +++ b/src/3-three/chunker/compute/03-matcher.js @@ -34,6 +34,8 @@ const rules = [ // { match: '#Negative #Verb', chunk: 'Verb' }, // not really // { match: '#Negative #Adverb ', chunk: 'Verb' }, + // come and have a drink + { match: '#PresentTense and #PresentTense', chunk: 'Verb' }, // really not { match: '#Adverb #Negative', chunk: 'Verb' }, // want to see diff --git a/src/3-three/sentences/api.js b/src/3-three/sentences/api.js index 8d7ad83cb..30933fe0c 100644 --- a/src/3-three/sentences/api.js +++ b/src/3-three/sentences/api.js @@ -18,11 +18,12 @@ const api = function (View) { json(opts = {}) { return this.map(m => { let json = m.toView().json(opts)[0] || {} - let { subj, verb, pred } = parse(m) + let { subj, verb, pred, grammar } = parse(m) json.sentence = { subject: subj.text('normal'), verb: verb.text('normal'), predicate: pred.text('normal'), + grammar } return json }, []) diff --git a/src/3-three/sentences/parse/index.js b/src/3-three/sentences/parse/index.js index 018a2e4ed..5bcb600ba 100644 --- a/src/3-three/sentences/parse/index.js +++ b/src/3-three/sentences/parse/index.js @@ -1,5 +1,19 @@ import findMain from './mainClause.js' +const grammar = function (vb) { + let tense = null + if (vb.has('#PastTense')) { + tense = 'PastTense' + } else if (vb.has('#FutureTense')) { + tense = 'FutureTense' + } else if (vb.has('#PresentTense')) { + tense = 'PresentTense' + } + return { + tense + } +} + const parse = function (s) { let clauses = s.clauses() let main = findMain(clauses) @@ -27,7 +41,8 @@ const parse = function (s) { return { subj, verb, - pred + pred, + grammar: grammar(verb) } } export default parse \ No newline at end of file From 97c8afc422091c20abd47e2b65dbb0825286d1b2 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 18:27:06 -0400 Subject: [PATCH 27/33] fix #967 --- scratch.js | 18 +++++++++--------- src/1-one/change/api/remove.js | 4 ++-- tests/one/change/remove.test.js | 19 +++++++++++++++++++ 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/scratch.js b/scratch.js index 1f70483c6..fdb4b18b2 100644 --- a/scratch.js +++ b/scratch.js @@ -32,10 +32,10 @@ import nlp from './src/three.js' // doc.match('* some text$').forEach((m) => m.prepend('prefix')) // console.log(doc.out()) -// const txt = `before Remove 500mg of paracetamol` -// const doc = nlp(txt) -// doc.remove('Remove') -// console.log(doc.text()) +const txt = `before Remove 500mg of paracetamol` +const doc = nlp(txt) +doc.remove('Remove') +console.log(doc.text()) // let doc = nlp('i strolled downtown') // doc.match('{stroll}') @@ -105,12 +105,12 @@ let arr = [ ] -let i = 0 -let txt = arr[i] -txt = "when the rain pours, come and have a drink" -let doc = nlp(txt) +// let i = 0 +// let txt = arr[i] +// txt = "when the rain pours, come and have a drink" +// let doc = nlp(txt) // doc.clauses().debug() -console.log(doc.sentences().json()[0].sentence) +// console.log(doc.sentences().json()[0].sentence) // [ { form: 'simple-present', tense: 'PresentTense', copula: true } ] diff --git a/src/1-one/change/api/remove.js b/src/1-one/change/api/remove.js index 0a82adfe3..502a7d571 100644 --- a/src/1-one/change/api/remove.js +++ b/src/1-one/change/api/remove.js @@ -56,8 +56,8 @@ const methods = { not = this.match(reg) } // is it part of a contraction? - if (self.has('@hasContraction') && self.contractions) { - let more = self.grow('@hasContraction') + if (not.has('@hasContraction') && not.contractions) { + let more = not.grow('@hasContraction') more.contractions().expand() } diff --git a/tests/one/change/remove.test.js b/tests/one/change/remove.test.js index 195982bfb..c4aae6e51 100644 --- a/tests/one/change/remove.test.js +++ b/tests/one/change/remove.test.js @@ -261,6 +261,25 @@ second t.end() }) +test('remove-with-contractions', function (t) { + let doc = nlp(`before Remove 500mg of paracetamol`) + doc.remove('Remove') + t.equal(doc.text(), 'before 500mg of paracetamol', here + 'remove before contraction') + + doc = nlp(`before 500mg Remove of paracetamol`) + doc.remove('Remove') + t.equal(doc.text(), 'before 500mg of paracetamol', here + 'remove after contraction') + + doc = nlp(`before 500mg Remove of paracetamol`) + doc.remove('500mg remove') + t.equal(doc.text(), 'before of paracetamol', here + 'remove with contraction') + + doc = nlp(`before i've had paracetamol`) + doc.remove(`i've`) + t.equal(doc.text(), 'before had paracetamol', here + 'remove only contraction') + t.end() +}) + // test('remove-self-keep-splits', function (t) { // let m = nlp('one two three. four.') // m = m.terms() From 644d5611cd8426094b3d66f709366873175f2b62 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Wed, 19 Oct 2022 19:00:02 -0400 Subject: [PATCH 28/33] scottish slang --- changelog.md | 3 ++- data/lexicon/misc/expressions.js | 4 +++- data/lexicon/nouns/singulars.js | 2 +- scratch.js | 28 +++++++--------------- src/2-two/postTagger/model/_misc.js | 9 +++++-- src/2-two/postTagger/model/nouns/nouns.js | 4 ++++ src/2-two/preTagger/compute/penn.js | 2 +- src/2-two/preTagger/model/lexicon/_data.js | 4 ++-- src/2-two/preTagger/model/lexicon/misc.js | 4 +++- src/2-two/preTagger/tagSet/misc.js | 4 ++++ tests/three/nouns/noun-find.test.js | 4 ++-- tests/two/match.test.js | 8 +++++-- tests/two/tagger/penn.test.js | 2 +- tests/two/variables/present-noun.test.js | 6 ++--- 14 files changed, 47 insertions(+), 37 deletions(-) diff --git a/changelog.md b/changelog.md index b43fe9710..9751b73c4 100644 --- a/changelog.md +++ b/changelog.md @@ -16,7 +16,8 @@ While all _Major_ releases should be reviewed, our only _large_ releases are **v - **[change]** - an astrix is not a word - **[new]** - @hasColon method - **[new]** - @hasDash supports two dashes -- **[new]** - #Passive tag +- **[new]** - `#Passive` verb tag +- **[new]** - existential `#There` tag #### 14.5.2 [Oct 2022] - **[fix]** - runtime error #965 diff --git a/data/lexicon/misc/expressions.js b/data/lexicon/misc/expressions.js index 9e216c60c..bd7a41ffc 100644 --- a/data/lexicon/misc/expressions.js +++ b/data/lexicon/misc/expressions.js @@ -119,5 +119,7 @@ export default [ 'yuck', 'yup', `d'oh`, - 'shoo' + 'shoo', + 'there now', + 'aye' ] diff --git a/data/lexicon/nouns/singulars.js b/data/lexicon/nouns/singulars.js index 8a001ca8b..1030264f1 100644 --- a/data/lexicon/nouns/singulars.js +++ b/data/lexicon/nouns/singulars.js @@ -72,7 +72,6 @@ export default [ 'home', 'someone', 'headphone', - 'there', 'press release', 'premise', 'highrise', @@ -403,6 +402,7 @@ export default [ 'man', 'tributary', 'flower', + 'sandwich', ] diff --git a/scratch.js b/scratch.js index fdb4b18b2..19fcd1c35 100644 --- a/scratch.js +++ b/scratch.js @@ -26,25 +26,14 @@ import nlp from './src/three.js' // - A some text // - B some text // - C some text` - // const doc = nlp(text) -// doc.match('Remove me #NumericValue').forEach((m) => doc.remove(m)) -// doc.match('* some text$').forEach((m) => m.prepend('prefix')) -// console.log(doc.out()) - -const txt = `before Remove 500mg of paracetamol` -const doc = nlp(txt) -doc.remove('Remove') -console.log(doc.text()) - -// let doc = nlp('i strolled downtown') -// doc.match('{stroll}') -// nlp.parseMatch('{stroll}') -// doc.swap('stroll', 'walk') +// doc.remove('Remove me #NumericValue') +// console.log(doc) +// doc.match('text').prepend('prefix') +// console.log(doc) +// console.log(doc.text()) -// console.log(nlp.parseMatch('{kiss/verb}')) -// const doc = nlp("These are the old-fashioned dilemmas").debug() // const doc = nlp("foobar. he was demanding his rights after. walking his plank after") // let net = nlp.buildNet([{ match: 'his .', ifNo: ['demanding', 'rights'] }]) // doc.match(net).debug() @@ -93,7 +82,7 @@ let arr = [ // "Tell Monica I say goodbye.", // "Reading ARP related article lor.", - // "jack is guarded", + // "they might have been spared", // "the King's courage was unshaken", "auction games are brought up", @@ -105,10 +94,9 @@ let arr = [ ] -// let i = 0 -// let txt = arr[i] +let txt = arr[0] // txt = "when the rain pours, come and have a drink" -// let doc = nlp(txt) +let doc = nlp(txt).debug() // doc.clauses().debug() // console.log(doc.sentences().json()[0].sentence) diff --git a/src/2-two/postTagger/model/_misc.js b/src/2-two/postTagger/model/_misc.js index ea1589863..e85926c5d 100644 --- a/src/2-two/postTagger/model/_misc.js +++ b/src/2-two/postTagger/model/_misc.js @@ -52,7 +52,12 @@ let matches = [ { match: '#Preposition [about]', group: 0, tag: 'Adjective', reason: 'at-about' }, // dude we should { match: '^[(dude|man|girl)] #Pronoun', group: 0, tag: 'Expression', reason: 'dude-i' }, - // are welcome - // { match: '#Copula [#Expression]', group: 0, tag: 'Noun', reason: 'are-welcome' }, + + // 'there' as noun + { match: '(from|to|in|near|around|right|over) [there]', group: 0, tag: 'Noun', reason: 'from-there' }, + // 'there' as adjective + { match: '(always|nearly|barely|practically) [there]', group: 0, tag: 'Adjective', reason: 'always-there' }, + // existential 'there' + // { match: '[there] #Copula', group: 0, tag: 'There', reason: 'there-is' }, ] export default matches diff --git a/src/2-two/postTagger/model/nouns/nouns.js b/src/2-two/postTagger/model/nouns/nouns.js index 8acabde4a..8c44f6439 100644 --- a/src/2-two/postTagger/model/nouns/nouns.js +++ b/src/2-two/postTagger/model/nouns/nouns.js @@ -92,4 +92,8 @@ export default [ { match: 'the #Cardinal [%Adj|Noun%]', group: 0, tag: 'Noun', reason: 'the-1992-classic' }, // the premier university { match: '#Copula the [%Adj|Noun%] #Noun', group: 0, tag: 'Adjective', reason: 'the-premier-university' }, + + // scottish - i ate me sandwich + { match: 'i #Verb [me] #Noun', group: 0, tag: 'Possessive', reason: 'scottish-me' }, + ] diff --git a/src/2-two/preTagger/compute/penn.js b/src/2-two/preTagger/compute/penn.js index bf9d8ed59..e96836c85 100644 --- a/src/2-two/preTagger/compute/penn.js +++ b/src/2-two/preTagger/compute/penn.js @@ -47,7 +47,7 @@ const mapping = { 'Plural': 'NNS', 'Noun': 'NN', - // 'Noun':'EX', //'there' + 'There': 'EX', //'there' // 'Adverb':'WRB', // 'Noun':'PDT', //predeterminer // 'Noun':'SYM', //symbol diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js index ea9f47ad2..531eb40af 100644 --- a/src/2-two/preTagger/model/lexicon/_data.js +++ b/src/2-two/preTagger/model/lexicon/_data.js @@ -7,7 +7,7 @@ export default { "Conjunction": "true¦aXbTcuz,evenRhowPiHjust00lest,noEoCp8supposing,t5wh0yet;at,e2il1o0;evOse;e,st;nevMre0thM; if,vL;h0o;erefOo0;!uU;lus,rovide0; 1d0;! 0;th9;r0therwiJ;! not; mattBr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mFcaCorder t0;h0o;at;! 0;only,t0w0;hen;!ev0;er;! 0;if,t8;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh", "PastTense": "true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan", "Gerund": "true¦accord0be0go0result0stain0;ing", - "Expression": "true¦a0Pb0Lco0Kd0Ge0Efuck,g08hUjeez,lRmQnOoLpIshHtGuDvoi0Rw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aAe9i7o2u0;h,mph,rra0zzA;h,y;ly1o0;r4y7;! 0;cow,moBsmok0;es;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la", + "Expression": "true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;here nLsk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBeAi8o2u0;h,mph,rra0zzB;h,y;ly1o0;r5y8;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh,ye;!a,em,oy;la", "Negative": "true¦n0;ever,o0;n,t", "QuestionWord": "true¦how3wh0;e1ich,o0y;!m;n,re; come,'s", "Reflexive": "true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self", @@ -24,7 +24,7 @@ export default { "Actor": "true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt", "Honorific|Noun": "true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al", "Pronoun": "true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s", - "Singular": "true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al", + "Singular": "true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Km1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Com2C;f0i4Wt0Dy9;! arou4F;arn4GeAo9;cabula41l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aHeGhi8iEoDrBuAv9;! show;m2Jn5rntIto15;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etD;am,mp3A;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n28st4Q;ab2Q;bAnri1Bper bowl,r9;f0roga2;st3Etot1;aCepBipe3Ro1CrAudent9;! lo1L;ang0i8;fa1Gmo1G;ff0t31;loi42meo17;elet14i9;er,ll,rm3M;ack,or49;ab0Vcurity gu2E;e4ho9;l30ol;la33ndwi0J;av0XeChetor5iAo9;de4om;te,v9;erb0O;bCcBf9publ5r0Pspi2;er9orm0;e4r1;it1ord label;a2u42;estion mark,ot29;aMeKhJiHlFort1rAu9yram1D;ddi8ppy,rpo0K;eCie3Io9;bl3Vs9;pe6t9;a2itu2;diction,mi0Froga7ss relea0F;a9ebisci2;q28te,y0;cn5e9g;!r;armaci39otocoH;dest1ncil,r9t1;cen3Hsp3I;nAr2Ste9;!nt;el2Sop3;bj3EcApia2rde1thers,ve9wn0;n,rview;cu9e0G;pi0;aAit25ot9umb0;a26hi8;n2Arra7;aFeEiDoAu9é0H;m0Tr1;mAnopo3pRrni8sq1Qt9u14;h0i36;!my;li0Xn0A;d5nu,t1;mm1nAte9yf3;ri1;!d11;aurea2iBu9;ddi2n9;ch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al", "Preposition": "true¦'o,-,aMbJcIdHexcept,fFinEmid,notwithstandiSoCpTqua,sBt7u4v2w0;/o,hereOith0;! whEin,oS;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that;',f0n1ut;!f;!to;or,r0;om;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", "SportsTeam": "true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls", "Uncountable": "true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics", diff --git a/src/2-two/preTagger/model/lexicon/misc.js b/src/2-two/preTagger/model/lexicon/misc.js index 79c38ce72..bd56d19a5 100644 --- a/src/2-two/preTagger/model/lexicon/misc.js +++ b/src/2-two/preTagger/model/lexicon/misc.js @@ -83,6 +83,8 @@ let misc = { nearing: 'Gerund', neared: 'PastTense', - no: ['Negative', 'Expression'] + no: ['Negative', 'Expression'], + + there: 'There' } export default misc diff --git a/src/2-two/preTagger/tagSet/misc.js b/src/2-two/preTagger/tagSet/misc.js index a1e75e061..e1505d9d5 100644 --- a/src/2-two/preTagger/tagSet/misc.js +++ b/src/2-two/preTagger/tagSet/misc.js @@ -66,5 +66,9 @@ export default { }, Condition: { not: ['Verb', 'Adjective', 'Noun', 'Value'], + }, + // existential 'there' + There: { + not: ['Verb', 'Adjective', 'Noun', 'Value', 'Conjunction', 'Preposition'], } } diff --git a/tests/three/nouns/noun-find.test.js b/tests/three/nouns/noun-find.test.js index d578f51c8..5f3a1ec55 100644 --- a/tests/three/nouns/noun-find.test.js +++ b/tests/three/nouns/noun-find.test.js @@ -51,7 +51,7 @@ test('noun-phrases', function (t) { [`spencer's friend is upset`, [`spencer's friend`]], // #Noun - #Pronoun - [`he says sorry there is no gravy`, ['he', 'there', 'gravy']], + [`he says sorry there is no gravy`, ['he', 'gravy']], [`The next time I met him`, ['The next time', 'I', 'him']], [`Next morning they went`, ['Next morning', 'they']], [`Huh, I would’ve thought it was the other way around.`, ['I', 'it', 'the other way around.']], @@ -92,7 +92,7 @@ test('noun-phrases', function (t) { // [`the captain of the winning basketball team`, ['the captain of the winning basketball team']], // [`the unlikely captain of the largest international basketball team`, ['the unlikely captain of the largest international basketball team'],], [`are you here spencer?`, ['you', 'here', 'spencer?']], - [`put it there`, ['it', 'there']], + [`put it right there`, ['it', 'there']], ] arr.forEach(function (a) { const nouns = nlp(a[0]).nouns().out('array') diff --git a/tests/two/match.test.js b/tests/two/match.test.js index bcd1d9ec2..ded747bc2 100644 --- a/tests/two/match.test.js +++ b/tests/two/match.test.js @@ -714,8 +714,12 @@ let arr = [ [`The Island airport tunnel nears completion`, `the #Noun+ #PresentTense #Noun`], [`come have a drink`, `#Imperative #Imperative a #Singular`], [`come and have a drink`, `#Imperative and #Imperative a #Singular`], - // [``, ``], - // [``, ``], + [`there are issues`, `#There #Copula #Plural`], + [`nobody in there`, `#Noun in #Noun`], + [`go near there`, `#Verb near #Noun`], + [`he is always there`, `#Pronoun #Copula #Adverb #Adjective`], + [`there it is`, `#There it is`], + ['I ate me sandwich', '#Pronoun #Verb #Possessive #Singular'] ] test('match:', function (t) { let res = [] diff --git a/tests/two/tagger/penn.test.js b/tests/two/tagger/penn.test.js index 1467787fc..71479fd75 100644 --- a/tests/two/tagger/penn.test.js +++ b/tests/two/tagger/penn.test.js @@ -7,7 +7,7 @@ const softMapping = { CC: 'Conjunction', CD: 'Cardinal', DT: 'Determiner', - EX: 'Noun', //'there' + EX: 'There', //existential 'there' FW: 'Expression', IN: 'Preposition', JJ: 'Adjective', diff --git a/tests/two/variables/present-noun.test.js b/tests/two/variables/present-noun.test.js index d9886b19c..6feba75d9 100644 --- a/tests/two/variables/present-noun.test.js +++ b/tests/two/variables/present-noun.test.js @@ -143,9 +143,9 @@ let arr = [ ['The stream really runs', '#Determiner #Noun #Adverb #Verb'], ['The nice stream really runs', '#Determiner #Adjective #Noun #Adverb #Verb'], - ['there are reasons', '#Noun #Copula #Plural'], - ['there were many walks', '#Noun #Copula #Adjective #Plural'], - ['there were the phase', '#Noun #Copula #Determiner #Noun'], + ['there are reasons', '#There #Copula #Plural'], + ['there were many walks', '#There #Copula #Adjective #Plural'], + ['there were the phase', '#There #Copula #Determiner #Noun'], ['book the flight', '#Verb #Determiner #Noun'], ['the euro challenge to', '#Determiner #Noun #Singular to'], ['the euro challenge', '#Determiner #Noun #Noun'], From 8abfd8e673647e0440458357889f4b9316eb168b Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Thu, 20 Oct 2022 17:44:36 -0400 Subject: [PATCH 29/33] support italian ordinal --- data/lexicon/nouns/uncountables.js | 1 + scratch.js | 11 ++++++----- .../compute/contractions/number-unit.js | 4 +++- .../tokenize/methods/03-whitespace/punctuation.js | 1 + src/2-two/postTagger/model/_misc.js | 9 ++++++--- src/2-two/preTagger/model/lexicon/_data.js | 2 +- src/2-two/preTagger/model/lexicon/misc.js | 2 +- src/2-two/preTagger/model/regex/regex-numbers.js | 2 +- tests/three/numbers/units.test.js | 5 ++++- 9 files changed, 24 insertions(+), 13 deletions(-) diff --git a/data/lexicon/nouns/uncountables.js b/data/lexicon/nouns/uncountables.js index f3bd1c2b0..cd7c65801 100644 --- a/data/lexicon/nouns/uncountables.js +++ b/data/lexicon/nouns/uncountables.js @@ -160,6 +160,7 @@ export default [ 'tennis', 'thermodynamics', 'thunder', + 'there', 'time', 'toothpaste', 'traffic', diff --git a/scratch.js b/scratch.js index 19fcd1c35..e4c1fa587 100644 --- a/scratch.js +++ b/scratch.js @@ -3,8 +3,8 @@ import nlp from './src/three.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) // nlp.verbose('tagger') -// let txt = '' -// let doc +let txt = '' +let doc // let m // bug 1 @@ -16,7 +16,7 @@ import nlp from './src/three.js' // console.log(doc.verbs().conjugate()) // bug 3 -// doc = nlp(' 18e').debug() +doc = nlp(' 10°').numbers().add(1).debug() // bug 4 // let doc = nlp("when the rain pours, come have a drink") @@ -85,6 +85,7 @@ let arr = [ // "they might have been spared", // "the King's courage was unshaken", + "there it is", "auction games are brought up", "a plate had been broken", " the economic loss suffered by the country", @@ -94,9 +95,9 @@ let arr = [ ] -let txt = arr[0] +// let txt = arr[0] // txt = "when the rain pours, come and have a drink" -let doc = nlp(txt).debug() +// let doc = nlp(txt).debug() // doc.clauses().debug() // console.log(doc.sentences().json()[0].sentence) diff --git a/src/1-one/contraction-one/compute/contractions/number-unit.js b/src/1-one/contraction-one/compute/contractions/number-unit.js index 3baa60f32..31de9b557 100644 --- a/src/1-one/contraction-one/compute/contractions/number-unit.js +++ b/src/1-one/contraction-one/compute/contractions/number-unit.js @@ -8,7 +8,9 @@ const notUnit = new Set([ 'am', 'pm', 'max', - 's' // 1990s + '°', + 's', // 1990s + 'e' // 18e - french/spanish ordinal ]) const numberUnit = function (terms, i) { diff --git a/src/1-one/tokenize/methods/03-whitespace/punctuation.js b/src/1-one/tokenize/methods/03-whitespace/punctuation.js index 454dcb236..270994b31 100644 --- a/src/1-one/tokenize/methods/03-whitespace/punctuation.js +++ b/src/1-one/tokenize/methods/03-whitespace/punctuation.js @@ -9,6 +9,7 @@ const allowBefore = [ const allowAfter = [ '%',//88% '_',//underscore + '°',//degrees, italian ordinal // '\'',// \u0027 ] diff --git a/src/2-two/postTagger/model/_misc.js b/src/2-two/postTagger/model/_misc.js index e85926c5d..c4a7f351c 100644 --- a/src/2-two/postTagger/model/_misc.js +++ b/src/2-two/postTagger/model/_misc.js @@ -53,11 +53,14 @@ let matches = [ // dude we should { match: '^[(dude|man|girl)] #Pronoun', group: 0, tag: 'Expression', reason: 'dude-i' }, - // 'there' as noun - { match: '(from|to|in|near|around|right|over) [there]', group: 0, tag: 'Noun', reason: 'from-there' }, // 'there' as adjective { match: '(always|nearly|barely|practically) [there]', group: 0, tag: 'Adjective', reason: 'always-there' }, // existential 'there' - // { match: '[there] #Copula', group: 0, tag: 'There', reason: 'there-is' }, + // there she is + { match: '[there] (#Adverb|#Pronoun)? #Copula', group: 0, tag: 'There', reason: 'there-is' }, + // is there food + { match: '#Copula [there] .', group: 0, tag: 'There', reason: 'is-there' }, + // should there + { match: '#Modal #Adverb? [there]', group: 0, tag: 'There', reason: 'should-there' }, ] export default matches diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js index 531eb40af..29110e5f7 100644 --- a/src/2-two/preTagger/model/lexicon/_data.js +++ b/src/2-two/preTagger/model/lexicon/_data.js @@ -27,7 +27,7 @@ export default { "Singular": "true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Km1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Com2C;f0i4Wt0Dy9;! arou4F;arn4GeAo9;cabula41l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aHeGhi8iEoDrBuAv9;! show;m2Jn5rntIto15;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etD;am,mp3A;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n28st4Q;ab2Q;bAnri1Bper bowl,r9;f0roga2;st3Etot1;aCepBipe3Ro1CrAudent9;! lo1L;ang0i8;fa1Gmo1G;ff0t31;loi42meo17;elet14i9;er,ll,rm3M;ack,or49;ab0Vcurity gu2E;e4ho9;l30ol;la33ndwi0J;av0XeChetor5iAo9;de4om;te,v9;erb0O;bCcBf9publ5r0Pspi2;er9orm0;e4r1;it1ord label;a2u42;estion mark,ot29;aMeKhJiHlFort1rAu9yram1D;ddi8ppy,rpo0K;eCie3Io9;bl3Vs9;pe6t9;a2itu2;diction,mi0Froga7ss relea0F;a9ebisci2;q28te,y0;cn5e9g;!r;armaci39otocoH;dest1ncil,r9t1;cen3Hsp3I;nAr2Ste9;!nt;el2Sop3;bj3EcApia2rde1thers,ve9wn0;n,rview;cu9e0G;pi0;aAit25ot9umb0;a26hi8;n2Arra7;aFeEiDoAu9é0H;m0Tr1;mAnopo3pRrni8sq1Qt9u14;h0i36;!my;li0Xn0A;d5nu,t1;mm1nAte9yf3;ri1;!d11;aurea2iBu9;ddi2n9;ch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al", "Preposition": "true¦'o,-,aMbJcIdHexcept,fFinEmid,notwithstandiSoCpTqua,sBt7u4v2w0;/o,hereOith0;! whEin,oS;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that;',f0n1ut;!f;!to;or,r0;om;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", "SportsTeam": "true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls", - "Uncountable": "true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics", + "Uncountable": "true¦0:2T;1:20;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt8v6w2;a4i3oo2;d,l;ldlife,ne;rm7t25;ernacul1Ui2;neg1Tol0Otae;eAh8oothpas1Nr3un2yranny;a,gst1V;aff29ea18o3ue nor2;th;oZu2;ble2se1Ft;!shoot1X;er2und1V;e,mod2B;a,nnis;aBcene0IeAh9il8ki7o6p5t3u2weepstak1;g1Hnshi11;ati01e2;am,el;ace23eci1;ap,cc1N;n,ttl1;k,v1L;eep,ingl1;na14ri1;d0Nfe1Vl2nd,t0B;m1Kt;a5e3ic2;e,ke0V;c2laxa0Ssearch;ogni0Rrea0R;bi1in;aVe6hys0last1Ko4re2;amble,mis1s2ten1K;en1Jsu0C;l2rk;it0yB;a1Otr06;bstetr0vercrowd16xyg0Z;a2ews;il polWtional securi1G;a9e7o4u2;m2s1A;ps;n2o19;ey,o2;gamy;a2chan0rchandi16tallurgy;sl1t;chine2themat0; learn0Ury;aught0Se5i4ogi3u2;ck,g0W;c,st0;ce,ghtn0Qngui19teraRv0P;ath0OisuRss;ara08indergart0Hnowled0T;azz,ewelC;ce,gnor7mp4n2;formaYter2;net,sta04;a2ort4;ti2;en0Y;an0X;a5eHisto4o2;ckey,mework,ne2rserad6spitali0Q;s0Py;ry;ir,libXppiFs2;h2te;ish;ene5l4o3r2um,ymna0R;aCeed;lf,re;utYyce0C; 2t0;edit03po2;ol;aLicElour,o4urni2;tu2;re;od,rgive2uriXwl;ne2;ss;conom0duca8lectr7n5quip6th0very3xper2;ti03;body,o2thT;ne;joy2tertain2;ment;ici01on0;tiQ;e8i5o3raugh2ynasZ;ts;pe,wnstai2;rs;abet1s2;honTrepu2;te;b2miP;ut;aAelci9h6iv0l4o2urrency;al,ld w2nfusiFral,ttFusco8;ar;ass0oth1;es;aos,e3ick2;en;eGw7;us;d,rI;a7eef,i5lood,read,u2;nt3tt2;er;ing;lliarDs2;on;g2ss;ga2;ge;cDdviCeroAir9m5ni4ppeal court,rithmet3spi2thlet0;rin;ic;se;en4n2;es2;ty;ds;craft;b0d2naut0;ynam0;ce;id,ou2;st0;ics", "Person|Noun": "true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma", "Noun|Gerund": "true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng", "Unit": "true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s", diff --git a/src/2-two/preTagger/model/lexicon/misc.js b/src/2-two/preTagger/model/lexicon/misc.js index bd56d19a5..93e17061f 100644 --- a/src/2-two/preTagger/model/lexicon/misc.js +++ b/src/2-two/preTagger/model/lexicon/misc.js @@ -85,6 +85,6 @@ let misc = { no: ['Negative', 'Expression'], - there: 'There' + // there: 'There' } export default misc diff --git a/src/2-two/preTagger/model/regex/regex-numbers.js b/src/2-two/preTagger/model/regex/regex-numbers.js index 4d45a7087..4d34e0397 100644 --- a/src/2-two/preTagger/model/regex/regex-numbers.js +++ b/src/2-two/preTagger/model/regex/regex-numbers.js @@ -56,5 +56,5 @@ export default [ //time-range [/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/, ['Time', 'NumberRange'], '3-4pm'], //number with unit - [/^[0-9.]+([a-z]{1,4})$/, 'Value', '9km'], + [/^[0-9.]+([a-z°]{1,4})$/, 'NumericValue', '9km'], ] \ No newline at end of file diff --git a/tests/three/numbers/units.test.js b/tests/three/numbers/units.test.js index f0ff10050..2090f0c6d 100644 --- a/tests/three/numbers/units.test.js +++ b/tests/three/numbers/units.test.js @@ -16,7 +16,7 @@ test('units-parse:', function (t) { ['3 km²', 3, 'km²'], ['3km²', 3, 'km²'], ['44°c', 44, '°c'], - ['44°', 44, '°'], + // ['44°', 44, '°'], //treat like ordinal, for italian ['44 °c', 44, '°c'], ['12µs', 12, 'µs'], ['12km/h', 12, 'km/h'], @@ -58,6 +58,9 @@ test('units-convert:', function (t) { t.equal(nlp('44,000 ft').has(44000), true, here + '44,000 ft') t.equal(nlp('44,000ft').has('44,000'), true, here + '44,000') // t.equal(nlp('44,000ft').has(44000), true, here + '44000') + + doc = nlp('10°').numbers().add(1) + t.equal(doc.text(), '11°', here + 'add degrees') t.end() }) From 66a1c6de67b89c94ae324815981b3047c77670c5 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 21 Oct 2022 10:53:30 -0400 Subject: [PATCH 30/33] fix remove issue --- scratch.js | 30 ++++++++++++++++-------------- src/1-one/change/api/remove.js | 5 +++++ tests/one/change/remove.test.js | 16 ++++++++++++++++ 3 files changed, 37 insertions(+), 14 deletions(-) diff --git a/scratch.js b/scratch.js index e4c1fa587..2cc6fd87b 100644 --- a/scratch.js +++ b/scratch.js @@ -3,8 +3,8 @@ import nlp from './src/three.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) // nlp.verbose('tagger') -let txt = '' -let doc +// let txt = '' +// let doc // let m // bug 1 @@ -15,24 +15,26 @@ let doc // doc = nlp('blew').debug() // console.log(doc.verbs().conjugate()) -// bug 3 -doc = nlp(' 10°').numbers().add(1).debug() - // bug 4 // let doc = nlp("when the rain pours, come have a drink") // console.log(doc.verbs().conjugate()) -// const text = `Remove me 1: -// - A some text -// - B some text -// - C some text` -// const doc = nlp(text) -// doc.remove('Remove me #NumericValue') +const text = `Remove me 1: +- A some text +- B some text +- C some text` +let doc = nlp(text) +doc.remove('Remove me #NumericValue') +doc.match('text').prepend('prefix') +console.log(doc.text()) + + +// let doc = nlp(`zero foo. one match foo. two foo.`) +// doc.remove('match') // first removal // console.log(doc) -// doc.match('text').prepend('prefix') +// doc.eq(0).remove() //second removal // console.log(doc) -// console.log(doc.text()) - +// doc.debug() // const doc = nlp("foobar. he was demanding his rights after. walking his plank after") // let net = nlp.buildNet([{ match: 'his .', ifNo: ['demanding', 'rights'] }]) diff --git a/src/1-one/change/api/remove.js b/src/1-one/change/api/remove.js index 502a7d571..196f48b91 100644 --- a/src/1-one/change/api/remove.js +++ b/src/1-one/change/api/remove.js @@ -55,6 +55,7 @@ const methods = { self = this not = this.match(reg) } + let isFull = !self.ptrs // is it part of a contraction? if (not.has('@hasContraction') && not.contractions) { let more = not.grow('@hasContraction') @@ -72,6 +73,10 @@ const methods = { self.ptrs = ptrs self.document = document self.compute('index') + // if we started zoomed-out, try to end zoomed-out + if (isFull) { + self.ptrs = undefined + } if (!reg) { this.ptrs = [] return self.none() diff --git a/tests/one/change/remove.test.js b/tests/one/change/remove.test.js index c4aae6e51..764aee419 100644 --- a/tests/one/change/remove.test.js +++ b/tests/one/change/remove.test.js @@ -324,5 +324,21 @@ test('double-remove', function (t) { doc.eq(0).remove() //second removal t.equal(doc.text(), 'one foo. two foo.', here + 'double remove #2') + t.end() +}) + +test('full-to-full', function (t) { + const text = `Remove me 1: + - A some text + - B some text + - C some text` + let doc = nlp(text) + doc.remove('Remove me #NumericValue') + doc.match('text').prepend('prefix') + + const want = `- A some prefix text + - B some prefix text + - C some prefix text` + t.equal(doc.text(), want, here + 'full-to-full') t.end() }) \ No newline at end of file From b49a135dccce6e78dda2488e840836fed926eeca Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 21 Oct 2022 12:11:01 -0400 Subject: [PATCH 31/33] verb tokenization issues --- data/lexicon/misc/prepositions.js | 7 ++- data/lexicon/switches/adj-past.js | 2 + scratch.js | 61 +++++++++++-------- scripts/test/stress.js | 7 ++- src/1-one/output/api/text.js | 2 +- .../postTagger/model/adjective/adj-verb.js | 2 + src/2-two/preTagger/model/clues/adj-past.js | 4 +- src/2-two/preTagger/model/lexicon/_data.js | 4 +- src/3-three/verbs/find.js | 11 ++++ tests/three/verbs/auxiliary.test.js | 2 +- tests/two/match.test.js | 5 +- 11 files changed, 70 insertions(+), 37 deletions(-) diff --git a/data/lexicon/misc/prepositions.js b/data/lexicon/misc/prepositions.js index 60bfd6313..d2d1da175 100644 --- a/data/lexicon/misc/prepositions.js +++ b/data/lexicon/misc/prepositions.js @@ -42,6 +42,7 @@ export default [ 'sans', 'since', 'so that', + 'such as', 'than', 'through', 'throughout', @@ -61,7 +62,7 @@ export default [ 'with whom', 'within', 'without', - `'o`, - `a'`, - `o'`, + // `'o`, + // `a'`, + // `o'`, ] diff --git a/data/lexicon/switches/adj-past.js b/data/lexicon/switches/adj-past.js index f241fa664..bc855d528 100644 --- a/data/lexicon/switches/adj-past.js +++ b/data/lexicon/switches/adj-past.js @@ -72,6 +72,7 @@ export default [ 'disabled', 'disciplined', 'discounted', + 'discouraged', 'disgruntled', 'distorted', 'distressed', @@ -79,6 +80,7 @@ export default [ 'educated', 'enhanced', 'ensured', + 'embarrassed', 'equipped', 'established', 'expanded', diff --git a/scratch.js b/scratch.js index 2cc6fd87b..55fb2a817 100644 --- a/scratch.js +++ b/scratch.js @@ -2,9 +2,9 @@ import nlp from './src/three.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -// nlp.verbose('tagger') -// let txt = '' -// let doc +nlp.verbose('tagger') +let txt = '' +let doc // let m // bug 1 @@ -12,21 +12,17 @@ import nlp from './src/three.js' // console.log(doc.verbs().conjugate()) // bug 2 -// doc = nlp('blew').debug() +// doc = nlp("when the rain pours, come have a drink").debug() // console.log(doc.verbs().conjugate()) -// bug 4 -// let doc = nlp("when the rain pours, come have a drink") -// console.log(doc.verbs().conjugate()) - -const text = `Remove me 1: -- A some text -- B some text -- C some text` -let doc = nlp(text) -doc.remove('Remove me #NumericValue') -doc.match('text').prepend('prefix') -console.log(doc.text()) +// bug 3 +// let doc = nlp("Dr. John Smith-McDonald...") +// let opts = { +// keepPunct: false, +// abbreviations: false, +// case: false, +// } +// console.log(doc.text(opts)) // let doc = nlp(`zero foo. one match foo. two foo.`) @@ -84,23 +80,36 @@ let arr = [ // "Tell Monica I say goodbye.", // "Reading ARP related article lor.", - + // `want to see`, + // `Try to see`, + // `lift & extend`, + // `by crossing`, + // `Avoid cuddling`, + // `start exercising`, + // `Be more`, + // `don't become discouraged`, + // `such as teaching`, + // `held annually is called`, + `Avoid sending romantic messages`, + `subsequently remained`, + `said jocularly`, + `fails so miserably`, // "they might have been spared", // "the King's courage was unshaken", - "there it is", - "auction games are brought up", - "a plate had been broken", - " the economic loss suffered by the country", - "i've been knocked down", - "At this point we're frustrated but the hotel" + // "there it is", + // "auction games are brought up", + // "a plate had been broken", + // " the economic loss suffered by the country", + // "i've been knocked down", + // "At this point we're frustrated but the hotel" ] -// let txt = arr[0] +txt = arr[0] // txt = "when the rain pours, come and have a drink" -// let doc = nlp(txt).debug() -// doc.clauses().debug() +doc = nlp(txt) +doc.verbs().debug() // console.log(doc.sentences().json()[0].sentence) // [ { form: 'simple-present', tense: 'PresentTense', copula: true } ] diff --git a/scripts/test/stress.js b/scripts/test/stress.js index afb7f277b..4bb9f44a8 100644 --- a/scripts/test/stress.js +++ b/scripts/test/stress.js @@ -10,7 +10,12 @@ for (let i = 0; i < texts.length; i++) { nlp(txt) .sentences() .forEach(s => { - let vb = s.verbs(0) + s.verbs().forEach(vb => { + if (vb.wordCount() >= 2 && !vb.has('(#Modal|#PhrasalVerb)')) { + console.log(vb.text()) + } + }) + }) } diff --git a/src/1-one/output/api/text.js b/src/1-one/output/api/text.js index 7de7360c8..4305d19b7 100644 --- a/src/1-one/output/api/text.js +++ b/src/1-one/output/api/text.js @@ -15,7 +15,7 @@ export default { if (fmt && typeof fmt === 'string' && fmts.hasOwnProperty(fmt)) { opts = Object.assign({}, fmts[fmt]) } else if (fmt && isObject(fmt)) { - opts = Object.assign({}, fmt, opts)//todo: fixme + opts = Object.assign({}, opts, fmt)//todo: fixme } if (this.pointer) { opts.keepSpace = false diff --git a/src/2-two/postTagger/model/adjective/adj-verb.js b/src/2-two/postTagger/model/adjective/adj-verb.js index 6330470b9..3e5bb92ab 100644 --- a/src/2-two/postTagger/model/adjective/adj-verb.js +++ b/src/2-two/postTagger/model/adjective/adj-verb.js @@ -31,4 +31,6 @@ export default [ { match: '(seem|feel|seemed|felt) [#PastTense]', group: 0, tag: 'Adjective', reason: 'seem-confused' }, // a bit confused { match: 'a (bit|little|tad) [#PastTense]', group: 0, tag: 'Adjective', reason: 'a-bit-confused' }, + // do not be embarrassed + { match: 'not be [%Adj|Past%]', group: 0, tag: 'Adjective', reason: 'do-not-be-confused' }, ] diff --git a/src/2-two/preTagger/model/clues/adj-past.js b/src/2-two/preTagger/model/clues/adj-past.js index 91bd8f6fd..95681ea70 100644 --- a/src/2-two/preTagger/model/clues/adj-past.js +++ b/src/2-two/preTagger/model/clues/adj-past.js @@ -21,9 +21,9 @@ const adjPast = { Date: past,// alleged thursday }, beforeWords: { - be: past,//be hooked + be: past,//be hooked vs be embarrassed who: past,//who lost - get: past,//get charged + get: 'Adjective',//get charged had: past, has: past, have: past, diff --git a/src/2-two/preTagger/model/lexicon/_data.js b/src/2-two/preTagger/model/lexicon/_data.js index 29110e5f7..63f582847 100644 --- a/src/2-two/preTagger/model/lexicon/_data.js +++ b/src/2-two/preTagger/model/lexicon/_data.js @@ -25,7 +25,7 @@ export default { "Honorific|Noun": "true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al", "Pronoun": "true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s", "Singular": "true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Km1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Com2C;f0i4Wt0Dy9;! arou4F;arn4GeAo9;cabula41l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aHeGhi8iEoDrBuAv9;! show;m2Jn5rntIto15;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etD;am,mp3A;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n28st4Q;ab2Q;bAnri1Bper bowl,r9;f0roga2;st3Etot1;aCepBipe3Ro1CrAudent9;! lo1L;ang0i8;fa1Gmo1G;ff0t31;loi42meo17;elet14i9;er,ll,rm3M;ack,or49;ab0Vcurity gu2E;e4ho9;l30ol;la33ndwi0J;av0XeChetor5iAo9;de4om;te,v9;erb0O;bCcBf9publ5r0Pspi2;er9orm0;e4r1;it1ord label;a2u42;estion mark,ot29;aMeKhJiHlFort1rAu9yram1D;ddi8ppy,rpo0K;eCie3Io9;bl3Vs9;pe6t9;a2itu2;diction,mi0Froga7ss relea0F;a9ebisci2;q28te,y0;cn5e9g;!r;armaci39otocoH;dest1ncil,r9t1;cen3Hsp3I;nAr2Ste9;!nt;el2Sop3;bj3EcApia2rde1thers,ve9wn0;n,rview;cu9e0G;pi0;aAit25ot9umb0;a26hi8;n2Arra7;aFeEiDoAu9é0H;m0Tr1;mAnopo3pRrni8sq1Qt9u14;h0i36;!my;li0Xn0A;d5nu,t1;mm1nAte9yf3;ri1;!d11;aurea2iBu9;ddi2n9;ch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al", - "Preposition": "true¦'o,-,aMbJcIdHexcept,fFinEmid,notwithstandiSoCpTqua,sBt7u4v2w0;/o,hereOith0;! whEin,oS;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that;',f0n1ut;!f;!to;or,r0;om;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", + "Preposition": "true¦-,aMbJcIdHexcept,fFinEmid,notwithstandiSoCpTqua,sBt7u4v2w0;/o,hereOith0;! whEin,oS;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that,uch D;f0n1ut;!f;!to;or,r0;om;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut", "SportsTeam": "true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls", "Uncountable": "true¦0:2T;1:20;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt8v6w2;a4i3oo2;d,l;ldlife,ne;rm7t25;ernacul1Ui2;neg1Tol0Otae;eAh8oothpas1Nr3un2yranny;a,gst1V;aff29ea18o3ue nor2;th;oZu2;ble2se1Ft;!shoot1X;er2und1V;e,mod2B;a,nnis;aBcene0IeAh9il8ki7o6p5t3u2weepstak1;g1Hnshi11;ati01e2;am,el;ace23eci1;ap,cc1N;n,ttl1;k,v1L;eep,ingl1;na14ri1;d0Nfe1Vl2nd,t0B;m1Kt;a5e3ic2;e,ke0V;c2laxa0Ssearch;ogni0Rrea0R;bi1in;aVe6hys0last1Ko4re2;amble,mis1s2ten1K;en1Jsu0C;l2rk;it0yB;a1Otr06;bstetr0vercrowd16xyg0Z;a2ews;il polWtional securi1G;a9e7o4u2;m2s1A;ps;n2o19;ey,o2;gamy;a2chan0rchandi16tallurgy;sl1t;chine2themat0; learn0Ury;aught0Se5i4ogi3u2;ck,g0W;c,st0;ce,ghtn0Qngui19teraRv0P;ath0OisuRss;ara08indergart0Hnowled0T;azz,ewelC;ce,gnor7mp4n2;formaYter2;net,sta04;a2ort4;ti2;en0Y;an0X;a5eHisto4o2;ckey,mework,ne2rserad6spitali0Q;s0Py;ry;ir,libXppiFs2;h2te;ish;ene5l4o3r2um,ymna0R;aCeed;lf,re;utYyce0C; 2t0;edit03po2;ol;aLicElour,o4urni2;tu2;re;od,rgive2uriXwl;ne2;ss;conom0duca8lectr7n5quip6th0very3xper2;ti03;body,o2thT;ne;joy2tertain2;ment;ici01on0;tiQ;e8i5o3raugh2ynasZ;ts;pe,wnstai2;rs;abet1s2;honTrepu2;te;b2miP;ut;aAelci9h6iv0l4o2urrency;al,ld w2nfusiFral,ttFusco8;ar;ass0oth1;es;aos,e3ick2;en;eGw7;us;d,rI;a7eef,i5lood,read,u2;nt3tt2;er;ing;lliarDs2;on;g2ss;ga2;ge;cDdviCeroAir9m5ni4ppeal court,rithmet3spi2thlet0;rin;ic;se;en4n2;es2;ty;ds;craft;b0d2naut0;ynam0;ce;id,ou2;st0;ics", "Person|Noun": "true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma", @@ -50,7 +50,7 @@ export default { "MaleName": "true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on", "Person": "true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er", "Adjective": "true¦0:95;1:80;2:7X;3:8W;4:8Q;5:6E;6:81;7:86;8:8R;9:8D;A:5W;a7Mb77c6Pd67e5Qf58g50h4Pi3Rjuni44k3Pl3Fm33n2To2Ep1Wquart63r1Ls0Rt0JuMvIwBye1J;ast54eFholeEiDoB;man5oBrthwhi6u0F;d7Hzy;despr8Fs6E;!sa6;ather13eBll o5Jste2Q;!k5;aDeCiBola5D;b95ce versa,gi2Q;ng4Vrsa5B;ca0lu54;lt06nHpDrCsBttermo8X;ef75u4;b67ge0; Db2ApCsBti7Y;ca6et,ide dO;er,i4L;f3Tto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4E;e6Zi2FoDpCuB;pervis1spect2;e0ok6X;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6O;mploy1nd2xpect1;eBue;cid1rB;!a6RcovAly2sDwB;aBei7C;tAy;iz1to43;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Gra;aGeDhough59ip 1PoCrB;anspa6Yi3;gethAle83rp9;ena6FmpCrB;r3Ftia6P;e8o6N;leBst3Q;nt1;a03c01eZhYiWkiVmug,nobb3ZoPpMqueam3ZtGuBymb70;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb50;eq73tanda7P;atu69eFi0UrByl3T;aBin4D;ightBy; fBfB;or5X;adfa7Hri6;arCeBirit1lend9ot on;c2Ye34;k5se; caGlub6mbAphisticFrEuCvB;erei5Iiet;ndBth0X;pro6F;d9ry;at1;ll1;g1WnB;ce57g6;am30eA;at1co1Hem5lf3AnBre7;so5V;ath2holBient2K;ar5;cr1me,tisfac5M;aJeEheumato9iCoB;bu6Xtt58y4;ghtBv4;-w2f54;bYcEdu6OlDnown1sBtard1;is3DoB;lu3na0;e1Buc3B;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6NrCuB;bl5Vnjabi;eGiEoB;!b2QfCmi3BpBv4Vxi1Z;er,ort60;a7u63;maBor,sti7va3;!ry;ci60exist2mBpa9;a1Oi63;c9id;ac28rBti3;fe67ma32ti32v5V;i28rCsB;s5Qt;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni58seas,t,wB;ei57rou57;ll;do0Wer;d2Ug1M; bBbBgo2li7;oa60;fashion1school;!ay; gua5XbBli7;eat;eCsB;ce7er0Co0R;dia0se;aJeIiHoBuanc1;nDrthBt1V;!eB;rn;chaCdescri5Lprof29sB;top;la0;ght5;arby,cessa4Bighbor5xt;k1usiat2;aIeHinGoCuB;d14ltip6;deDl13nBot,st;ochroBth5;me;rn,st;dblRi;nac2re;cDgenta,in,j03keshift,mmCnBscu4E;da3Uy;ali2Ioth;ab37ho;aJeGiEoCuB;mber2sh;ngBut19;stand2term;ghtwei44teraB;l,te;ft-w2gBssAth4;al,eBi0B;nda3P;ngu9ps1st;aput,ind5nB;ow2;gno4Xll03mVnDpso 25rB;a3releB;va0; QaPcoMdJe2AfIhibi3CiWnHoGsDtBvalu0V;a4KeB;n48rdep1U;a7igColBuboD;ub6ve0;nifica0;rdi41;a3er;eriCluenOreq3X;eCiEoB;or;fini3p1Ltermi3W;mpCnside8rB;re48;le3;ccu8deq3Xppr36;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe40;ti4;aCeBi0T;d2Yn3M;tu22;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3I;me ma2BnCrrBs04ur5;if30;e3Qo2I;ghfalut1LspB;an2X;lUpf1W;lCnBrdZtI;dy;f,low1;aiHener2Siga25lob4oGraDuB;ilBng ho;ty;cCtB;ef1Ois;ef1N;od;nf1L;aPeMinLlJoErB;aCeBoz1L;q2Ptf1I;gi6nt2H;olErB; keeps,eBge0FmAtu2Owa38;go2i1BseeB;ab6;ish;ag37uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Hmiliar,r Bux;oBreach2;ff;aOfficie0lMmJnHqu4re2Pthere4veryday,xB;a2Oem2RplEquisi3traDuB;be2WlB;ta0;!va1G;icB;it; Bti0O;rou3sui3;erCiB;ne0;ge0;dBe18;er5;gAsB;t,ygo2;er;aQeHiCoBrea15ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0A;a0ni3;as1;an;facto;i5ngeroX;ly;arRePivil,oErCuB;nn2stoma0M;aBu0Iystal0Y;v02z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic09ry;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efM;aMeFizarEliKoCrBuck nak1;and new,isk,on1F;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0ZrrB;en;!wards; priori,b0Qc0Nd0Gf0Ag08h07l00mp6ntiquXpRrLsleep,ttracti09uHvEwB;aCkB;wa0X;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntX;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohFiJkaDl,oCriBterP;ght;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt", - "Adj|Past": "true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4roken,urn0;il0r0t4und;tl0;as0;k0laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed", + "Adj|Past": "true¦0:2V;1:2M;2:2P;a2Eb29c1Rd19e13f0Ygift0h0Vi0Oj0Nknown,l0Km0Fn0Do0Ap03qua02rTsDt9u7v5w3;arp0ea3or5;kHth2O;a3e0U;ri0;ni3pd1s0;fi0t0;ar5hreatCr3wi2N;a3ou18;ck0in0pp0;get0ni1L;aGcaFeEhDimCm00oak0pAt6u3;bsid24gge2Is3;pe3ta1P;ct0nd0;at0e5r3uU;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al1Wfi0;pHul1;ar0ut;al0c1Gle2t1O;r0tt22;t3ut0;is1Hur1;aAe3;c7duc0f1Ag6l1new0qu5s3;pe2t3;or0ri2;e1Zir0;ist1Uul1;eiv0o3;mme09rd0v1S;lli0ti18;li17;arallel0l7o6r3ump0;e4o3;ce0Ilo0Hnou1Qpos0te2;fe0Koc8pY;i1Dli0Q;a3e16;nn0;c4rgan18verlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3;di0Tt0F;as0Olt0;n3rk0;ag0ufact0M;eft,i4o3;ad0st;cens0mit0st0;agg0us0L;mp8n3sol1;br0debt0f6t3volv0;e3ox0D;gr1n3re15;d0si0H;e2oW;li0oLrov0;amm0Xe1o3;ok0r3;ri0C;aNe6i5lavo07ocus0r3;a3i0;ct05g0Jm0;niWx0;ar0;duc1mbarraKn7quipp0stabliUx3;p3te5;a4e3;ct0rie0P;nd0;ha0NsX;aIeAi3;gniZminiNre2s3;a7c5grun02t3;o3reBurb0;rt0;iplQou3;nt0rD;bl0;cenTdMf7lay0pre6ra5t3velop0;a3ermM;il0;ng0;ss0;e4o3;rm0;rr0;m3t0;ag0;alcul1eGharg0lFo8r5u3;lt3stomQ;iv1;a4owd0u3;sh0;ck0mp0;d0lo8m5n3ok0vV;centr1s3troll0;idTolid1;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralA;a6i5o3roken,urn0;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed", "Determiner": "true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er", "Adverb": "true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori", "Currency": "true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s", diff --git a/src/3-three/verbs/find.js b/src/3-three/verbs/find.js index 212d94a25..b51f76a5a 100644 --- a/src/3-three/verbs/find.js +++ b/src/3-three/verbs/find.js @@ -1,5 +1,10 @@ const findVerbs = function (doc) { let m = doc.match('') + // want to see + m = m.not('(#Conjunction && !to)') + // by walking + m = m.not('#Preposition') + m = m.splitAfter('@hasComma') @@ -30,10 +35,16 @@ const findVerbs = function (doc) { } // 'allow yourself' m = m.not('#Reflexive$') + //ensure there's actually a verb m = m.if('#Verb') // the reason he will is ... // ensure it's not two verbs + + // held annually is called + if (m.has('(#Verb && !#Auxiliary) #Adverb+? #Copula')) { + m = m.splitBefore('#Copula') + } return m } export default findVerbs diff --git a/tests/three/verbs/auxiliary.test.js b/tests/three/verbs/auxiliary.test.js index 5a2e6fb53..9f3a44bb3 100644 --- a/tests/three/verbs/auxiliary.test.js +++ b/tests/three/verbs/auxiliary.test.js @@ -12,7 +12,7 @@ test('participle/auxiliary toPast', function (t) { t.equal(doc.text(), 'he had been stalking his prey', here + 'to-past2') doc = nlp('she bit her tongue instead of criticizing her prom date') - doc.verbs().toPastTense() + doc.sentences().toPastTense() t.equal(doc.text(), 'she bit her tongue instead of criticizing her prom date', here + 'to-past3') doc = nlp('he should have been eating') diff --git a/tests/two/match.test.js b/tests/two/match.test.js index ded747bc2..cab24ee7b 100644 --- a/tests/two/match.test.js +++ b/tests/two/match.test.js @@ -719,7 +719,10 @@ let arr = [ [`go near there`, `#Verb near #Noun`], [`he is always there`, `#Pronoun #Copula #Adverb #Adjective`], [`there it is`, `#There it is`], - ['I ate me sandwich', '#Pronoun #Verb #Possessive #Singular'] + ['I ate me sandwich', '#Pronoun #Verb #Possessive #Singular'], + [`will get discouraged`, `#Verb #Verb #Adjective`], + [`do not get discouraged`, `#Verb #Negative #Verb #Adjective`], + [`do not be embarrassed`, `#Verb #Negative #Verb #Adjective`], ] test('match:', function (t) { let res = [] From bbc3d2a005b8570d1295863cebd12ebce2807c9b Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 21 Oct 2022 12:49:39 -0400 Subject: [PATCH 32/33] tests passing --- changelog.md | 1 + scratch.js | 40 ++++++++++++++++----- scripts/test/stress.js | 2 +- src/1-one/change/api/replace.js | 1 + src/3-three/verbs/api/conjugate/toGerund.js | 2 -- tests/three/plugin.test.js | 2 +- 6 files changed, 36 insertions(+), 12 deletions(-) diff --git a/changelog.md b/changelog.md index 9751b73c4..fc1caa9b9 100644 --- a/changelog.md +++ b/changelog.md @@ -18,6 +18,7 @@ While all _Major_ releases should be reviewed, our only _large_ releases are **v - **[new]** - @hasDash supports two dashes - **[new]** - `#Passive` verb tag - **[new]** - existential `#There` tag +- **[fix]** - verb tokenization issues #### 14.5.2 [Oct 2022] - **[fix]** - runtime error #965 diff --git a/scratch.js b/scratch.js index 55fb2a817..8a4c0949c 100644 --- a/scratch.js +++ b/scratch.js @@ -2,13 +2,24 @@ import nlp from './src/three.js' // import plg from './plugins/dates/src/plugin.js' // nlp.plugin(plg) -nlp.verbose('tagger') +// nlp.verbose('tagger') let txt = '' let doc // let m // bug 1 -// doc = nlp('we swim') +// doc = nlp('we fished') +// let vb = doc.verbs() + + +doc = nlp('gotten') +let res = doc.verbs().conjugate()[0] +// console.log(res) +let m = doc.verbs().debug().toGerund().debug() +doc.debug() + +// vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']) +// vb.debug() // console.log(doc.verbs().conjugate()) // bug 2 @@ -80,20 +91,33 @@ let arr = [ // "Tell Monica I say goodbye.", // "Reading ARP related article lor.", + + 'end to end', + `employing natural`, + `need to renew`, + `is home`, + `seem to be well adjusted`, + `did Arnold`, + `more power to innovate`, + `creepy`, + `Legend says`, + `not being true`, + `are phrased to elicit`, + `find myself singing`, + `feeling threatened`, + `privatized firms may face`, // `want to see`, // `Try to see`, // `lift & extend`, // `by crossing`, // `Avoid cuddling`, // `start exercising`, + // `Avoid sending romantic messages`, // `Be more`, // `don't become discouraged`, // `such as teaching`, // `held annually is called`, - `Avoid sending romantic messages`, - `subsequently remained`, - `said jocularly`, - `fails so miserably`, + // "they might have been spared", // "the King's courage was unshaken", // "there it is", @@ -108,8 +132,8 @@ let arr = [ txt = arr[0] // txt = "when the rain pours, come and have a drink" -doc = nlp(txt) -doc.verbs().debug() +// doc = nlp(txt) +// doc.verbs().debug() // console.log(doc.sentences().json()[0].sentence) // [ { form: 'simple-present', tense: 'PresentTense', copula: true } ] diff --git a/scripts/test/stress.js b/scripts/test/stress.js index 4bb9f44a8..c60c45206 100644 --- a/scripts/test/stress.js +++ b/scripts/test/stress.js @@ -11,7 +11,7 @@ for (let i = 0; i < texts.length; i++) { .sentences() .forEach(s => { s.verbs().forEach(vb => { - if (vb.wordCount() >= 2 && !vb.has('(#Modal|#PhrasalVerb)')) { + if (vb.terms().not('(#Adverb|#Auxiliary|#Negative|#PhrasalVerb)').length > 1) { console.log(vb.text()) } }) diff --git a/src/1-one/change/api/replace.js b/src/1-one/change/api/replace.js index ccd6932ef..b484b8f45 100644 --- a/src/1-one/change/api/replace.js +++ b/src/1-one/change/api/replace.js @@ -80,6 +80,7 @@ fns.replace = function (match, input, keep) { if (!m.found) { return this } + this.soften() return m.replaceWith(input, keep) } export default fns diff --git a/src/3-three/verbs/api/conjugate/toGerund.js b/src/3-three/verbs/api/conjugate/toGerund.js index adfdd676c..f64ab6420 100644 --- a/src/3-three/verbs/api/conjugate/toGerund.js +++ b/src/3-three/verbs/api/conjugate/toGerund.js @@ -17,8 +17,6 @@ const toGerund = function (vb, parsed) { // 'are walking', 'is walking' if (gerund) { gerund = `${isAreAm(vb, parsed)} ${gerund}` - // console.log(root, gerund) - // vb.match(root).debug() vb.replace(root, gerund, keep) } diff --git a/tests/three/plugin.test.js b/tests/three/plugin.test.js index 4a61bfa14..96edbd4a6 100644 --- a/tests/three/plugin.test.js +++ b/tests/three/plugin.test.js @@ -16,7 +16,7 @@ test('change verb conjugation', function (t) { let res = doc.verbs().conjugate()[0] t.equal(res.PastTense, 'gotten', here + 'past') t.equal(res.PresentTense, 'getts', here + 'present') - t.equal(doc.verbs().toGerund().text(), 'is gettin', here + 'toGerund') + t.equal(doc.verbs().toGerund().fullSentence().text(), 'is gettin', here + 'toGerund') // backwards doc = nlp('getts').tag('PresentTense') res = doc.verbs().conjugate()[0] From 7eb74c54fd4af9f32bd86aab257e6054b8289548 Mon Sep 17 00:00:00 2001 From: spencer kelly Date: Fri, 21 Oct 2022 12:59:26 -0400 Subject: [PATCH 33/33] 14.6.0rc --- builds/compromise.js | 2 +- builds/one/compromise-one.cjs | 2 +- builds/one/compromise-one.mjs | 2 +- builds/three/compromise-three.cjs | 2 +- builds/three/compromise-three.mjs | 2 +- builds/two/compromise-two.cjs | 2 +- builds/two/compromise-two.mjs | 2 +- changelog.md | 3 +++ package-lock.json | 14 +++++++------- package.json | 6 +++--- scratch.js | 25 ------------------------- src/3-three/verbs/find.js | 5 ----- src/_version.js | 2 +- tests/one/change/remove.test.js | 12 ++++++------ tests/three/verbs/misc.test.js | 10 ++++++++++ tests/three/verbs/verb-find.test.js | 6 +++++- 16 files changed, 42 insertions(+), 55 deletions(-) diff --git a/builds/compromise.js b/builds/compromise.js index 2a5241dd5..bc088e214 100644 --- a/builds/compromise.js +++ b/builds/compromise.js @@ -1 +1 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var p=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let m=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=p(e,l,m);return e&&n.compute(m.hooks),n};Object.defineProperty(f,"_world",{value:m,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=p(e,l,m);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},j=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},x=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?j(n):(j(n),j([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!k(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||k(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var G=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},D=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=G(e),e)))}(d),n?(T(t.update([u]).firstTerm()),N(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var $=z,F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=F(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const W={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};W.deHyphenate=W.dehyphenate,W.toQuotation=W.toQuotations;var M=W,J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var _={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}},Q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,H,M,U,_,Q);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(pe);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ke=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},je={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},xe=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=xe(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&je.hasOwnProperty(l)&&(c=je[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),ke(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ke(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]},Ge=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Oe,lib:Be,hooks:["lexicon"]},$e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const We=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=We(e.goNext,void 0),e.failTo=We(e.failTo,0),e.endAs=We(e.endAs,null),e};const Je={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};Je.compile=Je.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Je};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Qe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Qe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Qe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,pt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){pt.test(e)?(n.choices=e.split(pt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var kt=Pt;const At=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const xt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var It=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(xt(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(xt(e,t)),n=n.concat(Nt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Gt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>kt(e,t))),r=jt(r,n),r=It(r,n),r=Gt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Vt.test(e.pre)||Bt.test(e.post),hasComma:e=>Ft(e,","),hasPeriod:e=>!0===Ft(e,".")&&!1===Ft(e,"..."),hasExclamation:e=>Ft(e,"!"),hasQuestionMark:e=>Ft(e,"?")||Ft(e,"¿"),hasEllipses:e=>Ft(e,"..")||Ft(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>Ft(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Wt=Ht;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Wt[t.method]&&!0===Wt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Jt=Mt;const Lt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(qt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Jt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Jt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(qt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Qt=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Jt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Jt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Jt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Qt(e,r,t[e.r+1]):(e.t+=1,!0)},Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Jt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Jt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Xt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Lt(e,a)){if(e.negative){if(!Zt(a))return null}else if(!0!==Jt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!tn(a))return null}else if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else if(!_t(a))return null}else if(!Rt(a))return null}else if(!Kt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},ln={api:ot,methods:{one:{termMethods:Wt,parseMatch:Tt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(a)&&(a=" "),a=a.replace(gn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(pn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let Pn=[],kn=0;for(;kn<64;)Pn[kn]=0|4294967296*Math.sin(++kn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(kn=i=0;kn>4]+Pn[i]+~~o[kn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const jn={text:!0,terms:!0};let xn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},En={text:e=>bn(e,{keepPunct:!0},!1),normal:e=>bn(e,Nn(wn.normal,{keepPunct:!0}),!1),implicit:e=>bn(e,Nn(wn.implicit,{keepPunct:!0}),!1),machine:e=>bn(e,xn,!1),root:e=>bn(e,Nn(xn,{form:"root"}),!1),hash:e=>An(bn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const In={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},jn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};In.data=In.json;var Gn=In,Tn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Dn="";var Cn={green:e=>""+e+Dn,red:e=>""+e+Dn,blue:e=>""+e+Dn,magenta:e=>""+e+Dn,cyan:e=>""+e+Dn,yellow:e=>""+e+Dn,black:e=>""+e+Dn,dim:e=>""+e+Dn,i:e=>""+e+Dn},On=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Cn.blue("\n ──────")),t.forEach((e=>{console.log(Cn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Cn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Cn.blue(" │ ")+Cn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Cn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Vn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Cn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Tn(t),t):(!1!==e.tags&&(On(t),console.log("\n")),!0===e.chunks&&(Vn(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const $n=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Fn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Hn=Sn,Wn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Kn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},Rn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},_n={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>qn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Yn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>qn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},er=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},tr={union:function(e){e=Xn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)}};tr.and=tr.union,tr.intersection=function(e){e=Xn(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.not=function(e){e=Xn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.difference=tr.not,tr.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=er(t,this.document),this.toView(t)},tr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Qn(e,[t])})),e=er(e,this.document),this.update(e)};var nr=function(e){Object.assign(e.prototype,tr)},rr={methods:_n,api:nr},ar=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const or=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ir=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(or(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(or(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=or(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},sr=function(e,t){e=ir(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},lr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},ur=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},cr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},hr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=lr(a,t.hooks);return o=ur(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),cr(o,e,a,n,r)},dr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===dr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ar,methods:{one:{buildNet:sr,bulkMatch:hr,bulkTagger:pr}}};const gr=/ /,fr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},vr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),gr.test(t))!function(e,t,n,r){let a=t.split(gr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),vr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var yr=br,wr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Pr({id:e}))),t}return[Pr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},xr=e=>"[object Array]"===Object.prototype.toString.call(e),Nr=e=>(e=e||"").trim(),Er=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||kr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ar(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Pr({});return e.forEach((e=>{if((e=Pr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(jr(t=e).forEach(Pr),t);var t},Ir=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return jr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Gr=function(e){let t=jr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Tr={text:Ir,txt:Ir,array:Gr,flat:Gr},Dr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ir(e,!0)),null):Tr.hasOwnProperty(t)?Tr[t](e):e},Cr=e=>{jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Or=/\//;let Vr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Nr(e),!Or.test(e)){let t=this.json.children.find((t=>t.id===e));return new Vr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||Pr({});return new Vr(t)}add(e,t={}){if(xr(e))return e.forEach((e=>this.add(Nr(e),t))),this;e=Nr(e);let n=Pr({id:e,props:t});return this.json.children.push(n),new Vr(n)}remove(e){return e=Nr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return jr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return jr(this.json)}fillDown(){var e;return e=this.json,jr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else xr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Cr(this.json);let e=jr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Cr(this.json),Dr(this.json,e)}debug(){return Cr(this.json),Dr(this.json,"debug"),this}};const Br=function(e){let t=Er(e);return new Vr(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const $r=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Fr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:$r(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sr=function(e){return e?"string"==typeof e?[e]:e:[]};var Hr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sr(e[t].children),e[t].not=Sr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Wr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Hr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Fr(n)},Mr={one:{setTag:yr,unTag:wr,addTags:Wr}};const Jr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Lr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Jr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Jr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var qr=Lr,Kr=function(e){Object.assign(e.prototype,qr)},Ur={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Rr=new Set(["Auxiliary","Possessive"]);var _r=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Rr.has(e)||!t.hasOwnProperty(n))return 1;if(Rr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Qr={model:{one:{tagSet:{}}},compute:{tagRank:_r},methods:Mr,api:Kr,lib:Ur};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Yr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var ea=function(e){let t=[],n=e.split(Xr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const oa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ia=RegExp("("+Object.keys(oa).join("|")+")","g"),sa=RegExp("("+Object.values(oa).join("|")+")","g"),la=function(e){if(!e)return!1;let t=e.match(sa);return null!==t&&1===t.length};var ua=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var xa=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Aa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wa(n),n=ba(n),n=n.filter((e=>e)),n};let Na=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Ea=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ia=/[\p{Punctuation}\s]+$/u,Ga=/^[\p{Punctuation}\s]+/u,Ta=/['’]/,Da=/^[a-z]\.([a-z]\.)+/i,Ca=/^'[0-9]{2}/;var Oa=function(e){let t=e,n="",r="";return e=e.replace(Ga,(t=>{let r=t.match(Na);return r?(n=t.replace(Na,""),r):"'"===n&&Ca.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ia,(a=>{let o=a.match(Ea);return o?(r=a.replace(Ea,""),o):Ta.test(a)&&/[sn]['’]$/.test(t)&&!1===Ta.test(n)?(r=r.replace(Ta,""),"'"):!0===Da.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}},Va=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},Ba=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const za=/([A-Z]\.)+[A-Z]?,?$/,$a=/^[A-Z]\.,?$/,Fa=/[A-Z]{2,}('s|,)?$/,Sa=/([a-z]\.)+[a-z]\.?$/;var Ha=function(e){return function(e){return!0===za.test(e)||!0===Sa.test(e)||!0===$a.test(e)||!0===Fa.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Wa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ba(r),r=n(r,t),r=Ha(r),e.normal=r},Ma=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Wa(e,t)})),n})),e};const Ja=/[ .][A-Z]\.? *$/i,La=/(?:\u2026|\.{2,}) *$/,qa=/\p{L}/u,Ka=/^[A-Z]\. $/;var Ua=function(e,t){if(!1===qa.test(e))return!1;if(!0===Ja.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===La.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ra={one:{killUnicode:Va,tokenize:{splitSentences:ga,isSentence:Ua,splitTerms:xa,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Oa(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Ma}}},_a={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},Za={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qa[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])}))}));var Ya=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){eo[t]=e}))}));const to=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),to.test(n)&&!no.test(n)&&!ro.test(n)){let t=n.split(to);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const oo=/^\p{Letter}+-\p{Letter}+$/u;var io=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),oo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},so=function(e){let t=e.docs,n={};for(let e=0;eho(e,ao),machine:e=>ho(e,io),normal:e=>ho(e,Wa),freq:so,offset:lo,index:uo,wordCount:co},methods:Ra,model:{one:{aliases:_a,abbreviations:Qa,prefixes:Ya,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Za,unicode:eo}},hooks:["alias","machine","index","id"]},mo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var fo=function(e){e.prototype.autoFill=go},vo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const bo={safe:!0,min:3};var yo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},bo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=vo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},wo={model:{one:{typeahead:{}}},api:fo,lib:yo,compute:mo,hooks:["typeahead"]};v.extend(ee),v.extend(Ln),v.extend(ln),v.extend(rr),v.extend(Qr),v.plugin(Ie),v.extend(po),v.plugin(P),v.extend(Le),v.extend(wo),v.extend(ze),v.extend(mr);var Po={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ko={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ao=36,jo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",xo=jo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==xo[e])return xo[e];let t=0,n=1,r=Ao,a=1;for(;n=0;n--,a*=Ao){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Eo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Go(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=To(ko[e]);Vo.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Oo(t,$o);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Bo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Bo[e]="Emoticon")),delete Bo[""],delete Bo.null,delete Bo[" "];const Fo="Adjective";var So={beforeTags:{Determiner:Fo,Possessive:Fo},afterTags:{Adjective:Fo},beforeWords:{seem:Fo,seemed:Fo,seems:Fo,feel:Fo,feels:Fo,felt:Fo,appear:Fo,appears:Fo,appeared:Fo,also:Fo,over:Fo,under:Fo,too:Fo,it:Fo,but:Fo,still:Fo,really:Fo,quite:Fo,well:Fo,very:Fo,deeply:Fo,profoundly:Fo,extremely:Fo,so:Fo,badly:Fo,mostly:Fo,totally:Fo,awfully:Fo,rather:Fo,nothing:Fo,something:Fo,anything:Fo,not:Fo,me:Fo},afterWords:{too:Fo,also:Fo,or:Fo}};const Ho="Gerund";var Wo={beforeTags:{Adverb:Ho,Preposition:Ho,Conjunction:Ho},afterTags:{Adverb:Ho,Possessive:Ho,Person:Ho,Pronoun:Ho,Determiner:Ho,Copula:Ho,Preposition:Ho,Conjunction:Ho,Comparative:Ho},beforeWords:{been:Ho,keep:Ho,continue:Ho,stop:Ho,am:Ho,be:Ho,me:Ho,began:Ho,start:Ho,starts:Ho,started:Ho,stops:Ho,stopped:Ho,help:Ho,helps:Ho,avoid:Ho,avoids:Ho,love:Ho,loves:Ho,loved:Ho,hate:Ho,hates:Ho,hated:Ho},afterWords:{you:Ho,me:Ho,her:Ho,him:Ho,them:Ho,their:Ho,it:Ho,this:Ho,there:Ho,on:Ho,about:Ho,for:Ho}},Mo={beforeTags:Object.assign({},So.beforeTags,Wo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},So.afterTags,Wo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},So.beforeWords,Wo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},So.afterWords,Wo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Jo="Singular";var Lo={beforeTags:{Determiner:Jo,Possessive:Jo,Acronym:Jo,Noun:Jo,Adjective:Jo,PresentTense:Jo,Gerund:Jo,PastTense:Jo,Infinitive:Jo,Date:Jo},afterTags:{Value:Jo,Modal:Jo,Copula:Jo,PresentTense:Jo,PastTense:Jo,Demonym:Jo},beforeWords:{the:Jo,with:Jo,without:Jo,of:Jo,for:Jo,any:Jo,all:Jo,on:Jo,cut:Jo,cuts:Jo,save:Jo,saved:Jo,saves:Jo,make:Jo,makes:Jo,made:Jo,minus:Jo,plus:Jo,than:Jo,another:Jo,versus:Jo,neither:Jo,favorite:Jo,best:Jo,daily:Jo,weekly:Jo,linear:Jo,binary:Jo,mobile:Jo,lexical:Jo,technical:Jo,computer:Jo,scientific:Jo,formal:Jo},afterWords:{of:Jo,system:Jo,aid:Jo,method:Jo,utility:Jo,tool:Jo,reform:Jo,therapy:Jo,philosophy:Jo,room:Jo,authority:Jo,says:Jo,said:Jo,wants:Jo,wanted:Jo}};const qo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ko={beforeTags:Object.assign({},So.beforeTags,Lo.beforeTags,qo.beforeTags),afterTags:Object.assign({},So.afterTags,Lo.afterTags),beforeWords:Object.assign({},So.beforeWords,Lo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Lo.afterWords)};const Uo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ro={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},_o={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Qo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Zo={beforeTags:Object.assign({},So.beforeTags,Uo),afterTags:Object.assign({},So.afterTags,Ro),beforeWords:Object.assign({},So.beforeWords,_o),afterWords:Object.assign({},So.afterWords,Qo)};const Yo="Infinitive";var Xo={beforeTags:{Modal:Yo,Adverb:Yo,Negative:Yo,Plural:Yo},afterTags:{Determiner:Yo,Adverb:Yo,Possessive:Yo,Preposition:Yo},beforeWords:{i:Yo,we:Yo,you:Yo,they:Yo,to:Yo,please:Yo,will:Yo,have:Yo,had:Yo,would:Yo,could:Yo,should:Yo,do:Yo,did:Yo,does:Yo,can:Yo,must:Yo,us:Yo,me:Yo,he:Yo,she:Yo,it:Yo,being:Yo},afterWords:{the:Yo,me:Yo,you:Yo,him:Yo,her:Yo,them:Yo,it:Yo,a:Yo,an:Yo,up:Yo,down:Yo,by:Yo,out:Yo,off:Yo,under:Yo,when:Yo,all:Yo,to:Yo,because:Yo,although:Yo,before:Yo,how:Yo,otherwise:Yo,together:Yo,though:Yo,yet:Yo}};const ei={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ti={beforeTags:Object.assign({},So.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},So.afterTags,Xo.afterTags,ei.afterTags),beforeWords:Object.assign({},So.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Xo.afterWords,{to:void 0})};const ni={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ri={},ai={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oi={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ii={beforeTags:Object.assign({},Wo.beforeTags,Lo.beforeTags,ni),afterTags:Object.assign({},Wo.afterTags,Lo.afterTags,ri),beforeWords:Object.assign({},Wo.beforeWords,Lo.beforeWords,ai),afterWords:Object.assign({},Wo.afterWords,Lo.afterWords,oi)},si={beforeTags:Object.assign({},Xo.beforeTags,Lo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xo.afterTags,Lo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xo.beforeWords,Lo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xo.afterWords,Lo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const li="Person";var ui={beforeTags:{Honorific:li,Person:li,Preposition:li},afterTags:{Person:li,ProperNoun:li,Verb:li},ownTags:{ProperNoun:li},beforeWords:{hi:li,hey:li,yo:li,dear:li,hello:li},afterWords:{said:li,says:li,told:li,tells:li,feels:li,felt:li,seems:li,thinks:li,thought:li,spends:li,spendt:li,plays:li,played:li,sing:li,sang:li,learn:li,learned:li,wants:li,wanted:li}};const ci="Month",hi={beforeTags:{Date:ci,Value:ci},afterTags:{Date:ci,Value:ci},beforeWords:{by:ci,in:ci,on:ci,during:ci,after:ci,before:ci,between:ci,until:ci,til:ci,sometime:ci,of:ci,this:ci,next:ci,last:ci,previous:ci,following:ci},afterWords:{sometime:ci,in:ci,of:ci,until:ci,the:ci}};var di={beforeTags:Object.assign({},ui.beforeTags,hi.beforeTags),afterTags:Object.assign({},ui.afterTags,hi.afterTags),beforeWords:Object.assign({},ui.beforeWords,hi.beforeWords),afterWords:Object.assign({},ui.afterWords,hi.afterWords)};const pi={Place:"Place"},mi={Place:"Place",Abbreviation:"Place"},gi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},fi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let vi="Unit";const bi="Honorific";let yi={first:bi,general:bi,royal:bi,vice:bi,rear:bi,major:bi};const wi={"Adj|Gerund":Mo,"Adj|Noun":Ko,"Adj|Past":Zo,"Adj|Present":ti,"Noun|Verb":si,"Noun|Gerund":ii,"Person|Noun":{beforeTags:Object.assign({},Lo.beforeTags,ui.beforeTags),afterTags:Object.assign({},Lo.afterTags,ui.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ui.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Lo.afterWords,ui.afterWords)},"Person|Date":di,"Person|Verb":{beforeTags:Object.assign({},ui.beforeTags,Xo.beforeTags),afterTags:Object.assign({},ui.afterTags,Xo.afterTags),beforeWords:Object.assign({},ui.beforeWords,Xo.beforeWords),afterWords:Object.assign({},ui.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},pi,ui.beforeTags),afterTags:Object.assign({},mi,ui.afterTags),beforeWords:Object.assign({},gi,ui.beforeWords),afterWords:Object.assign({},fi,ui.afterWords)},"Unit|Noun":{beforeTags:{Value:vi},afterTags:{},beforeWords:{per:vi,every:vi,each:vi,square:vi,cubic:vi,sq:vi,metric:vi},afterWords:{per:vi,squared:vi,cubed:vi,long:vi}},"Honorific|Noun":{beforeTags:{Honorific:bi,ProperNoun:bi,Ordinal:bi},afterTags:{Person:bi,ProperNoun:bi},beforeWords:Object.assign({},yi,{honorable:bi,honourable:bi,worship:bi,excellency:bi,majesty:bi,right:bi}),afterWords:yi}},Pi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};wi["Plural|Verb"]={beforeWords:Pi(wi["Noun|Verb"].beforeWords,{}),afterWords:Pi(wi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:Pi(wi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Pi(wi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ki=wi;const Ai="Adjective",ji="Infinitive",xi="PresentTense",Ni="Singular",Ei="PastTense",Ii="Adverb",Gi="Plural",Ti="Actor",Di="Verb",Ci="Noun",Oi="LastName",Vi="Modal",Bi="Participle";var zi=[null,null,{ea:Ni,ia:Ci,ic:Ai,ly:Ii,"'n":Di,"'t":Di},{oed:Ei,ued:Ei,xed:Ei," so":Ii,"'ll":Vi,"'re":"Copula",azy:Ai,eer:Ci,end:Di,ped:Ei,ffy:Ai,ify:ji,ing:"Gerund",ize:ji,ibe:ji,lar:Ai,mum:Ai,nes:xi,nny:Ai,ous:Ai,que:Ai,rol:Ni,sis:Ni,ogy:Ni,oid:Ni,ian:Ni,zes:xi,eld:Ei,ken:Bi,ven:Bi,ten:Bi,ect:ji,ict:ji,ign:ji,ful:Ai,bal:Ai},{amed:Ei,aped:Ei,ched:Ei,lked:Ei,rked:Ei,reed:Ei,nded:Ei,mned:Ai,cted:Ei,dged:Ei,ield:Ni,akis:Oi,cede:ji,chuk:Oi,czyk:Oi,ects:xi,ends:Di,enko:Oi,ette:Ni,wner:Ni,fies:xi,fore:Ii,gate:ji,gone:Ai,ices:Gi,ints:Gi,ruct:ji,ines:Gi,ions:Gi,less:Ai,llen:Ai,made:Ai,nsen:Oi,oses:xi,ould:Vi,some:Ai,sson:Oi,tion:Ni,tage:Ci,ique:Ni,tive:Ai,tors:Ci,vice:Ni,lier:Ni,fier:Ni,wned:Ei,gent:Ni,tist:Ni,pist:Ni,rist:Ni,mist:Ni,yist:Ni,vist:Ni,lite:Ni,site:Ni,rite:Ni,mite:Ni,bite:Ni,mate:Ni,date:Ni,ndal:Ni,vent:Ni,uist:Ni,gist:Ni,note:Ni,cide:Ni,wide:Ai,vide:ji,ract:ji,duce:ji,pose:ji,eive:ji,lyze:ji,lyse:ji,iant:Ai,nary:Ai},{elist:Ni,holic:Ni,phite:Ni,tized:Ei,urned:Ei,eased:Ei,ances:Gi,bound:Ai,ettes:Gi,fully:Ii,ishes:xi,ities:Gi,marek:Oi,nssen:Oi,ology:Ci,osome:Ni,tment:Ni,ports:Gi,rough:Ai,tches:xi,tieth:"Ordinal",tures:Gi,wards:Ii,where:Ii,archy:Ci,pathy:Ci,opoly:Ci,embly:Ci,phate:Ci,ndent:Ni,scent:Ni,onist:Ni,anist:Ni,alist:Ni,olist:Ni,icist:Ni,ounce:ji,iable:Ai,borne:Ai,gnant:Ai,inant:Ai,igent:Ai,atory:Ai,rient:Ni,dient:Ni},{auskas:Oi,parent:Ni,cedent:Ni,ionary:Ni,cklist:Ni,keeper:Ti,logist:Ti,teenth:"Value"},{opoulos:Oi,borough:"Place",sdottir:Oi}];const $i="Adjective",Fi="Noun",Si="Verb";var Hi=[null,null,{},{neo:Fi,bio:Fi,"de-":Si,"re-":Si,"un-":Si},{anti:Fi,auto:Fi,faux:$i,hexa:Fi,kilo:Fi,mono:Fi,nano:Fi,octa:Fi,poly:Fi,semi:$i,tele:Fi,"pro-":$i,"mis-":Si,"dis-":Si,"pre-":$i},{anglo:Fi,centi:Fi,ethno:Fi,ferro:Fi,grand:Fi,hepta:Fi,hydro:Fi,intro:Fi,macro:Fi,micro:Fi,milli:Fi,nitro:Fi,penta:Fi,quasi:$i,radio:Fi,tetra:Fi,"omni-":$i,"post-":$i},{pseudo:$i,"extra-":$i,"hyper-":$i,"inter-":$i,"intra-":$i,"deca-":$i},{electro:Fi}];const Wi="Adjective",Mi="Infinitive",Ji="PresentTense",Li="Singular",qi="PastTense",Ki="Adverb",Ui="Expression",Ri="Actor",_i="Verb",Qi="Noun",Zi="LastName";var Yi={a:[[/.[aeiou]na$/,Qi,"tuna"],[/.[oau][wvl]ska$/,Zi],[/.[^aeiou]ica$/,Li,"harmonica"],[/^([hyj]a+)+$/,Ui,"haha"]],c:[[/.[^aeiou]ic$/,Wi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,qi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,qi,"rammed"],[/.[aeiou][sg]hed$/,qi,"gushed"],[/.[aeiou]red$/,qi,"hired"],[/.[aeiou]r?ried$/,qi,"hurried"],[/[^aeiou]ard$/,Li,"steward"],[/[aeiou][^aeiou]id$/,Wi,""],[/.[vrl]id$/,Wi,"livid"],[/..led$/,qi,"hurled"],[/.[iao]sed$/,qi,""],[/[aeiou]n?[cs]ed$/,qi,""],[/[aeiou][rl]?[mnf]ed$/,qi,""],[/[aeiou][ns]?c?ked$/,qi,"bunked"],[/[aeiou]gned$/,qi],[/[aeiou][nl]?ged$/,qi],[/.[tdbwxyz]ed$/,qi],[/[^aeiou][aeiou][tvx]ed$/,qi],[/.[cdflmnprstv]ied$/,qi,"emptied"]],e:[[/.[lnr]ize$/,Mi,"antagonize"],[/.[^aeiou]ise$/,Mi,"antagonise"],[/.[aeiou]te$/,Mi,"bite"],[/.[^aeiou][ai]ble$/,Wi,"fixable"],[/.[^aeiou]eable$/,Wi,"maleable"],[/.[ts]ive$/,Wi,"festive"],[/[a-z]-like$/,Wi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Wi,"cornish"],[/.v[iy]ch$/,Zi,"..ovich"],[/^ug?h+$/,Ui,"ughh"],[/^uh[ -]?oh$/,Ui,"uhoh"],[/[a-z]-ish$/,Wi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Zi,"polish-male"]],k:[[/^(k){2}$/,Ui,"kkkk"]],l:[[/.[gl]ial$/,Wi,"familial"],[/.[^aeiou]ful$/,Wi,"fitful"],[/.[nrtumcd]al$/,Wi,"natal"],[/.[^aeiou][ei]al$/,Wi,"familial"]],m:[[/.[^aeiou]ium$/,Li,"magnesium"],[/[^aeiou]ism$/,Li,"schism"],[/^[hu]m+$/,Ui,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Wi,"republican"],[/[^aeiou]ician$/,Ri,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ui,"noooo"],[/^(yo)+$/,Ui,"yoo"],[/^wo{2,}[pt]?$/,Ui,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Li],[/[^i]fer$/,Mi],[/.[^aeiou][ao]pher$/,Ri],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Wi],[/[aeiou].*ist$/,Wi],[/^[a-z]et$/,_i]],s:[[/.[^aeiou]ises$/,Ji],[/.[rln]ates$/,Ji],[/.[^z]ens$/,_i],[/.[lstrn]us$/,Li],[/.[aeiou]sks$/,Ji],[/.[aeiou]kes$/,Ji],[/[aeiou][^aeiou]is$/,Li],[/[a-z]'s$/,Qi],[/^yes+$/,Ui]],v:[[/.[^aeiou][ai][kln]ov$/,Zi]],y:[[/.[cts]hy$/,Wi],[/.[st]ty$/,Wi],[/.[tnl]ary$/,Wi],[/.[oe]ry$/,Li],[/[rdntkbhs]ly$/,Ki],[/.(gg|bb|zz)ly$/,Wi],[/...lly$/,Ki],[/.[gk]y$/,Wi],[/[bszmp]{2}y$/,Wi],[/.[ai]my$/,Wi],[/[ea]{2}zy$/,Wi],[/.[^aeiou]ity$/,Li]]};const Xi="Verb",es="Noun";var ts={leftTags:[["Adjective",es],["Possessive",es],["Determiner",es],["Adverb",Xi],["Pronoun",Xi],["Value",es],["Ordinal",es],["Modal",Xi],["Superlative",es],["Demonym",es],["Honorific","Person"]],leftWords:[["i",Xi],["first",es],["it",Xi],["there",Xi],["not",Xi],["because",es],["if",es],["but",es],["who",Xi],["this",es],["his",es],["when",es],["you",Xi],["very","Adjective"],["old",es],["never",Xi],["before",es],["a","Singular"],["the",es],["been",Xi]],rightTags:[["Copula",es],["PastTense",es],["Conjunction",es],["Modal",es]],rightWords:[["there",Xi],["me",Xi],["man","Adjective"],["only",Xi],["him",Xi],["it",Xi],["were",es],["took",es],["himself",Xi],["went",es],["who",es],["jr","Person"]]},ns={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},rs={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},as={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},os={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},is={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ss=/^.([0-9]+)/;var ls=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ss);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ss,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},cs=/^([0-9]+)/,hs=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(cs);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(cs,"")]}(n[0],n[1])}))};var ds=function(e={}){return(e=Object.assign({},e)).rules=hs(e.rules),e.rules=us(e.rules),e.rev&&(e.rev=hs(e.rev),e.rev=us(e.rev)),e.exceptions=hs(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},ps=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const ms=ds({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),gs=ds(os),fs=ds(rs),vs=ds(as),bs=ps(ms),ys=ps(gs),ws=ps(fs),Ps=ps(vs),ks=ds(ns),As=ds(is);var js={fromPast:ms,fromPresent:gs,fromGerund:fs,fromParticiple:vs,toPast:bs,toPresent:ys,toGerund:ws,toParticiple:Ps,toComparative:ks,toSuperlative:As,fromComparative:ps(ks),fromSuperlative:ps(As)},xs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ns=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Es=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Gs[t].forEach((n=>e[n]=t)),e)),{});var Ts=Gs,Ds=function(e){let t=e.substring(e.length-3);if(!0===Ts.hasOwnProperty(t))return Ts[t];let n=e.substring(e.length-2);return!0===Ts.hasOwnProperty(n)?Ts[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Cs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Os=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ds(e)),Cs.hasOwnProperty(e))c=Cs[e];else if("Participle"===n)c=ls(l,i);else if("PastTense"===n)c=ls(l,r);else if("PresentTense"===n)c=ls(l,a);else{if("Gerund"!==n)return e;c=ls(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Vs=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ls(i,n),PresentTense:ls(i,r),Gerund:ls(i,a),FutureTense:"will "+e},u=ls(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Bs={toInfinitive:Os,conjugate:Vs,all:function(e,t){let n=Vs(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},zs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const $s=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Fs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ss=function(e){if(Fs.hasOwnProperty(e))return Fs[e];let t=zs(e,$s);return t||e+"ly"};const Hs=function(e,t){const n=t.two.models.toSuperlative;return ls(e,n)},Ws=function(e,t){const n=t.two.models.toComparative;return ls(e,n)},Ms="ically",Js=new Set(["analyt"+Ms,"chem"+Ms,"class"+Ms,"clin"+Ms,"crit"+Ms,"ecolog"+Ms,"electr"+Ms,"empir"+Ms,"frant"+Ms,"grammat"+Ms,"ident"+Ms,"ideolog"+Ms,"log"+Ms,"mag"+Ms,"mathemat"+Ms,"mechan"+Ms,"med"+Ms,"method"+Ms,"method"+Ms,"mus"+Ms,"phys"+Ms,"phys"+Ms,"polit"+Ms,"pract"+Ms,"rad"+Ms,"satir"+Ms,"statist"+Ms,"techn"+Ms,"technolog"+Ms,"theoret"+Ms,"typ"+Ms,"vert"+Ms,"whims"+Ms]),Ls=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],qs=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ks={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Us=function(e){return e.endsWith("ly")?Js.has(e)?e.replace(/ically/,"ical"):qs.has(e)?null:Ks.hasOwnProperty(e)?Ks[e]:zs(e,Ls)||e:null};const Rs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],_s={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Qs=new Set(["terrible","annoying"]);var Zs={toSuperlative:Hs,toComparative:Ws,toAdverb:Ss,toNoun:function(e){if(_s.hasOwnProperty(e))return _s[e];if(Qs.has(e))return null;let t=zs(e,Rs);return t||e+"ness"},fromAdverb:Us,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ls(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ls(e,n)},all:function(e,t){let n=[e];return n.push(Hs(e,t)),n.push(Ws(e,t)),n.push(Ss(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Ys={noun:Is,verb:Bs,adjective:Zs},Xs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},el=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Xs.hasOwnProperty(i)&&Xs[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},tl=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!al.find((t=>e.endsWith(t)))},il={two:{quickSplit:tl,expandLexicon:el,transform:Ys,looksPlural:ol}},sl=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const ll=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var ul=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=ll(n,"Infinitive","PastTense"),Object.assign(s,l),l=ll(r,"Infinitive","Verb"),Object.assign(s,l),l=ll(a,"Infinitive","Gerund"),Object.assign(s,l),l=ll(o,"Adjective","Superlative"),Object.assign(s,l),l=ll(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let cl={two:{models:js}};const hl={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},dl=function(e,t){const n={model:t,methods:il};let{lex:r,_multi:a}=il.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},pl=function(e,t,n){let r=Vs(e,cl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},ml=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=hl[o],"Noun|Verb"!==o&&"Person|Verb"!==o||pl(a,r,!1),"Adj|Present"===o&&(pl(a,r,!0),function(e,t,n){let r=Hs(e,n);t[r]=t[r]||"Superlative";let a=Ws(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Os(a,cl,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Os(a,cl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=dl(n,t)};var gl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=dl(e.one.lexicon,e)).one.lexicon,e),e=ml(e.two.switches,e),e=ul(e),e=sl(e)};let fl={one:{_multiCache:{},lexicon:Bo},two:{irregularPlurals:Po,models:js,suffixPatterns:zi,prefixPatterns:Hi,endsWith:Yi,neighbours:ts,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:zo,clues:ki,uncountable:{},orgWords:xs}};fl=gl(fl);var vl=fl;const bl=/^(under|over|mis|re|un|dis|semi)-?/;var yl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(bl.test(a.normal)){let e=a.normal.replace(bl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},wl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const Pl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var kl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(ol(e.normal)?wl(e,"Plural","3-plural-guess"):wl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ds(e.normal);t&&wl(e,t,"3-verb-tense-guess")}}(r)};const Al=/^\p{Lu}[\p{Ll}'’]/u,jl=/[0-9]/,xl=["Date","Month","WeekDay","Unit"],Nl=/^[IVXLCDM]{2,}$/,El=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Il={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Gl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===Al.test(o)&&!1===jl.test(o)?xl.find((e=>r.tags.has(e)))?null:(kl(e,t,n),r.tags.has("Noun")||r.tags.clear(),wl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Nl.test(o)&&El.test(o)&&!Il[r.normal]?(wl(r,"RomanNumeral","2-xvii"),!0):null};const Tl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var Dl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Tl(r.normal,n.two.suffixPatterns);if(null!==e)return wl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Tl(r.implicit,n.two.suffixPatterns),null!==e))return wl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Cl=/['‘’‛‵′`´]/,Ol=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return wl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const zl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),$l=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!zl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Fl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Sl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Hl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if($l(a)||$l(o))return wl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Fl(a)||Fl(o))return wl(n,"Year","2-tagYear-close");if(Sl(e[t-2])||Sl(e[t+2]))return wl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return wl(n,"Year","2-tagYear-noun")}}}return null};const Wl=/^[A-Z]('s|,)?$/,Ml=/^[A-Z-]+$/,Jl=/([A-Z]\.)+[A-Z]?,?$/,Ll=/[A-Z]{2,}('s|,)?$/,ql=/([a-z]\.)+[a-z]\.?$/,Kl={I:!0,A:!0};var Ul=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Ml.test(n)||n.length>5||Kl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Jl.test(n)&&!0!==ql.test(n)&&!0!==Wl.test(n)&&!0!==Ll.test(n))}(r,n)?(r.tags.clear(),wl(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Kl.hasOwnProperty(r.text)&&Wl.test(r.text)?(r.tags.clear(),wl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(wl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Ml.test(r.text)&&r.text.length<=6?(wl(r,"Acronym","3-titlecase-acronym"),!0):null};const Rl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},_l=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ql=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Rl(e[t-1],a),l=l||Rl(e[t+1],o),l=l||_l(e[t-1],r),l=l||_l(e[t+1],i),l)return wl(s,l,"3-[neighbour]"),kl(e,t,n),e[t].confidence=.2,!0}return null};const Zl=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Yl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Zl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Zl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Xl=function(e,t,n){0===e[t].tags.size&&(wl(e[t],"Noun","3-[fallback]"),kl(e,t,n),e[t].confidence=.1)};const eu=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,tu=(e,t,n)=>0!==t||e[1]?null:n,nu={"Adj|Gerund":(e,t)=>eu(e,t),"Adj|Noun":(e,t)=>eu(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>eu(e,t),"Adj|Present":(e,t)=>eu(e,t),"Noun|Gerund":(e,t)=>eu(e,t),"Noun|Verb":(e,t)=>eu(e,t)||tu(e,t,"Infinitive"),"Plural|Verb":(e,t)=>eu(e,t)||tu(e,t,"PresentTense"),"Person|Noun":(e,t)=>eu(e,t),"Person|Verb":(e,t)=>0!==t?eu(e,t):null};var ru=nu;const au="undefined"!=typeof process&&process.env?process.env:self.env||{},ou=/^(under|over|mis|re|un|dis|semi)-?/,iu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&au.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},su=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&au.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var lu=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(ou.test(l)&&!o[l]&&(l=l.replace(ou,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=iu(e[t+1],n.afterWords);return o=o||iu(e[t-1],n.beforeWords),o=o||su(e[t-1],n.beforeTags,a),o=o||su(e[t+1],n.afterTags,a),o}(e,t,i[o],r);ru[o]&&(u=ru[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),kl(e,t,r)):au.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},uu=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(wl(o,"Verb","3-[prefix]"),wl(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(wl(o,"Adjective","3-[prefix]"),wl(o,"Prefix","3-[prefix]")))};const cu={tagSwitch:yl,checkSuffix:Dl,checkRegex:Vl,checkCase:Gl,checkPrefix:Bl,checkHyphen:uu,checkYear:Hl},hu={checkAcronym:Ul,neighbours:Ql,orgWords:Yl,nounFallback:Xl,switches:lu},du=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var fu=function(e){const t=e.world,n=Object.keys(gu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=Iu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Eu},Tu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Du=/'/;var Cu=function(e,t){let n=e[t].normal.split(Du)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Ou=/'/;var Vu=function(e,t){let n=e[t].normal.split(Ou)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Bu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const zu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},$u={in:!0,by:!0,for:!0};var Fu=(e,t)=>{let n=e[t];if(zu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===$u[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Su=/'/,Hu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Wu={d:(e,t)=>Vu(e,t),t:(e,t)=>Bu(e,t),s:(e,t,n)=>Fu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Cu(e,t)},Mu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Ju={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Su.test(r[o].normal)&&([,i]=r[o].normal.split(Su));let s=null;Wu.hasOwnProperty(i)&&(s=Wu[i](r,o,t)),s&&(s=Mu(s,e),Tu(n,[a,o],s),Hu(n[a],e,o,s.length))}}))}},Lu={compute:Ju,api:Gu,hooks:["contractionTwo"]};const qu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Ku=["i","we","they"];let Uu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${qu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${qu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${qu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ku,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Ru=null;var _u={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Ru=Ru||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Ru),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Qu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:_u,model:{two:{matches:Uu}},hooks:["postTagger"]};var Zu=Qu,Yu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},Xu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Yu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},ec={lib:{lazy:Xu}},tc=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},nc=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?tc(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},rc={api:function(e){e.prototype.swap=nc}};v.plugin(ju),v.plugin(Lu),v.plugin(Zu),v.plugin(ec),v.plugin(rc);var ac=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter((e=>e.wordCount()>5&&e.match("#Verb+").length>=2));if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},oc=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r},ic=function(e){e.prototype.chunks=oc,e.prototype.clauses=ac};const sc={this:"Noun",then:"Pivot"};var lc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},fc={chunks:function(e){const{document:t,world:n}=e;lc(t),uc(t),dc(e,t,n),mc(t),gc(t)}},vc={compute:fc,api:ic,hooks:["chunks"]};const bc=/'s$/;var yc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(bc,""),e.normal=e.normal.replace(bc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const wc=/\(/,Pc=/\)/,kc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(wc,"");let t=e[e.length-1];t.post=t.post.replace(Pc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const jc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},xc=RegExp("("+Object.keys(jc).join("|")+")"),Nc=RegExp("("+Object.values(jc).join("|")+")"),Ec=function(e,t){const n=e[t].pre.match(xc)[0]||"";if(!n||!jc[n])return null;const r=jc[n];for(;t{e[0].pre=e[0].pre.replace(xc,"");let t=e[e.length-1];t.post=t.post.replace(Nc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Gc=/\./g;var Tc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Gc,""),e.normal=e.normal.replace(Gc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Gc,""),e.normal=e.normal.replace(Gc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},Dc=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Cc=(e,t)=>"number"==typeof t?e.eq(t):e,Oc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Vc=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Oc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let o=Oc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Cc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Cc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Cc(t,e),new Adjectives(t.document,t.pointer)}};const Bc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},zc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let $c=[["emojis","emoji"],["atmentions","atMentions"]];var Fc=function(e){zc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Bc,$c.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},Sc={api:function(e){Fc(e),yc(e),Ac(e),Ic(e),Vc(e),Dc(e),Tc(e)}};const Hc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Wc={case:e=>{Hc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Hc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{Hc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{Hc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Mc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Jc="unicode|punctuation|whitespace|acronyms",Lc="|case|contractions|parentheses|quotations|emoji|honorifics",qc={light:Mc(Jc),medium:Mc(Jc+Lc),heavy:Mc(Jc+Lc+"|possessives|adverbs|nouns|verbs")};var Kc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=qc[e]),Object.keys(e).forEach((t=>{Wc.hasOwnProperty(t)&&Wc[t](this,e[t])})),this}}},Uc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Rc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var _c=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Zc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Qc(e,t),isSubordinate:_c(e),root:t}};const Yc=e=>e.text(),Xc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),eh=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var th=function(e){let t=Zc(e);return{root:Yc(t.root),number:eh(t.number),determiner:Yc(t.determiner),adjectives:Xc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const nh={tags:!0};var rh=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,nh).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",nh),e};const ah={tags:!0};var oh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,ah).tag("Singular","toPlural"),e};const ih=(e,t)=>"number"==typeof t?e.eq(t):e;var sh=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return ih(this,e).map(Zc)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=th(t)),n}),[])}isPlural(e){let t=this.filter((e=>Zc(e).isPlural));return ih(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Zc(e).adjectives;n.found&&(t=t.concat(n))})),ih(t,e)}toPlural(e){return ih(this,e).map((e=>rh(e,Zc(e))))}toSingular(e){return ih(this,e).map((e=>{let t=Zc(e);return oh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Uc(this);return t=ih(t,e),new Nouns(this.document,t.pointer)}},lh={api:sh},uh=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},ch=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(hh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(hh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(hh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},ph=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const gh=/^([0-9,. ]+)\/([0-9,. ]+)$/,fh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},vh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var bh=function(e){if(!0===fh.hasOwnProperty(e))return fh[e];if("a"===e||"an"===e)return 1;const t=ch(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=wh(n),r=wh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:wh(n);let a=r.text("reduced");return yh.test(a)&&(a=a.replace(yh,""),r=r.replaceWith(a)),r=Ph.hasOwnProperty(a)?Ph[a]:wh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:wh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},Ah=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const jh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],xh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Nh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Eh=function(e){let t=[];if(e>100)return t;for(let n=0;n=jh[n][1]&&(e-=jh[n][1],t.push(jh[n][0]));return xh[e]&&t.push(xh[e]),t};var Ih=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ah(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Nh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Eh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ah(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Gh=function(e){return e.numerator&&e.denominator?`${Ih({num:e.numerator})} out of ${Ih({num:e.denominator})}`:""};const Th={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Dh=e=>{let t=Ih(e).split(" "),n=t[t.length-1];return Th.hasOwnProperty(n)?t[t.length-1]=Th[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Ch=function(e){if(!e.numerator||!e.denominator)return"";let t=Ih({num:e.numerator}),n=Dh({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Oh=(e,t)=>"number"==typeof t?e.eq(t):e;var Vh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Oh(this,e).map(kh)}get(e){return Oh(this,e).map(kh)}json(e){return Oh(this,e).map((t=>{let n=t.toView().json(e)[0],r=kh(t);return n.fraction=r,n}),[])}toDecimal(e){return Oh(this,e).forEach((e=>{let{decimal:t}=kh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return Oh(this,e).forEach((e=>{let t=kh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return Oh(this,e).forEach((e=>{let t=kh(e),n=Ch(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return Oh(this,e).forEach((e=>{let t=kh(e),n=Gh(t);e.replaceWith(n)})),this}toPercentage(e){return Oh(this,e).forEach((e=>{let{decimal:t}=kh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=uh(this);return t=Oh(t,e),new Fractions(this.document,t.pointer)}};const Bh="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var zh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Bh+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Bh+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Bh+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Bh+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Bh})`),r=e.has("("+Bh+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Bh+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Bh+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},$h=function(e){if("string"==typeof e)return{num:bh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=kh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=bh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Fh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Ah(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Sh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Hh={"%":"percent","°":"degrees"};var Wh=function(e){let t={suffix:"",prefix:e.prefix};return Sh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Sh[e.prefix],t.prefix=""),Hh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Hh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},Mh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Wh(e);return t+Dh(e)+n}if("Ordinal"===t)return e.prefix+Fh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Wh(e);return t+Ih(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Jh=(e,t)=>"number"==typeof t?e.eq(t):e;var Lh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Jh(this,e).map($h)}get(e){return Jh(this,e).map($h).map((e=>e.num))}json(e){return Jh(this,e).map((t=>{let n=t.toView().json(e)[0],r=$h(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=$h(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Mh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=$h(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Mh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=$h(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Mh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=$h(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Mh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=$h(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Mh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>$h(t).num===e))}greaterThan(e){return this.filter((t=>$h(t).num>e))}lessThan(e){return this.filter((t=>$h(t).num{let r=$h(n).num;return r>e&&r{let n=$h(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Mh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=$h(e).num);let t=this.map((t=>{let n=$h(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Mh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=zh(this);return t=Jh(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=zh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=Jh(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=zh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=Jh(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},qh={api:function(e){Vh(e),Lh(e)}};const Kh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Uh=function(e={}){return!1!==(e=Object.assign({},Kh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},Rh={api:function(e){e.prototype.redact=Uh}};var _h=Rh,Qh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},Zh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},Yh=function(e){let t=e.clauses(),n=Zh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Xh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},ed=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},td=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},nd=function(e){return e.verbs().toInfinitive(),e};const rd=(e,t)=>"number"==typeof t?e.eq(t):e;var ad=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Yh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n}),[])}toPastTense(e){return rd(this,e).map((e=>(Yh(e),Xh(e))))}toPresentTense(e){return rd(this,e).map((e=>(Yh(e),ed(e))))}toFutureTense(e){return rd(this,e).map((e=>(Yh(e),e=td(e))))}toInfinitive(e){return rd(this,e).map((e=>(Yh(e),nd(e))))}toNegative(e){return rd(this,e).map((e=>(Yh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return rd(this,e).map((e=>(Yh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return rd(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return rd(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=rd(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Qh(this);return rd(t,e)}};Object.assign(e.prototype,t)},od={api:ad},id=function(e){return e.match("#Honorific+? #Person+")},sd=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const ld="male",ud="female",cd={mr:ld,mrs:ud,miss:ud,madam:ud,king:ld,queen:ud,duke:ld,duchess:ud,baron:ld,baroness:ud,count:ld,countess:ud,prince:ld,princess:ud,sire:ld,dame:ud,lady:ud,ayatullah:ld,congressman:ld,congresswoman:ud,"first lady":ud,mx:null};var hd=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return ud;if(n.has("#MaleName"))return ld;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),cd.hasOwnProperty(e))return cd[e];if(/^her /.test(e))return ud;if(/^his /.test(e))return ld}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return ld;if(n&&!t)return ud}return null};const dd=(e,t)=>"number"==typeof t?e.eq(t):e;var pd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return dd(this,e).map(sd)}json(e){return dd(this,e).map((t=>{let n=t.toView().json(e)[0],r=sd(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:hd(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=id(this);return t=dd(t,e),new People(this.document,t.pointer)}},md=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},gd=function(e){e.prototype.places=function(t){let n=md(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},fd=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const vd=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var bd=function(e){e.prototype.topics=vd},yd={api:function(e){pd(e),gd(e),fd(e),bd(e)}},wd=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},Pd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},kd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const Ad=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},jd=function(e){return e.match("#Negative")},xd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Nd=function(e){let t=e.clone();t.contractions().expand();const n=Pd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:kd(t,n),auxiliary:Ad(t,n),negative:jd(t),phrasal:xd(n)}};const Ed={tense:"PresentTense"},Id={conditional:!0},Gd={tense:"FutureTense"},Td={progressive:!0},Dd={tense:"PastTense"},Cd={complete:!0,progressive:!1},Od={passive:!0},Vd=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Bd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Ed]],["^wanted to #Infinitive$",[Dd]],["^will want to #Infinitive$",[Gd]]],"gerund-phrase":[["^#PastTense #Gerund$",[Dd]],["^#PresentTense #Gerund$",[Ed]],["^#Infinitive #Gerund$",[Ed]],["^will #Infinitive #Gerund$",[Gd]],["^have #PastTense #Gerund$",[Dd]],["^will have #PastTense #Gerund$",[Dd]]],"simple-present":[["^#PresentTense$",[Ed]],["^#Infinitive$",[Ed]]],"simple-past":[["^#PastTense$",[Dd]]],"simple-future":[["^will #Adverb? #Infinitive",[Gd]]],"present-progressive":[["^(is|are|am) #Gerund$",[Ed,Td]]],"past-progressive":[["^(was|were) #Gerund$",[Dd,Td]]],"future-progressive":[["^will be #Gerund$",[Gd,Td]]],"present-perfect":[["^(has|have) #PastTense$",[Dd,Cd]]],"past-perfect":[["^had #PastTense$",[Dd,Cd]],["^had #PastTense to #Infinitive",[Dd,Cd]]],"future-perfect":[["^will have #PastTense$",[Gd,Cd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Dd,Td]]],"past-perfect-progressive":[["^had been #Gerund$",[Dd,Td]]],"future-perfect-progressive":[["^will have been #Gerund$",[Gd,Td]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Dd,Od]],["^(was|were) being (#PastTense|#Participle)",[Dd,Od]],["^(had|have) been (#PastTense|#Participle)",[Dd,Od]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Ed,Od]],["^(is|are|am) being (#PastTense|#Participle)",[Ed,Od]],["^has been (#PastTense|#Participle)",[Ed,Od]]],"passive-future":[["will have been (#PastTense|#Participle)",[Gd,Od,Id]],["will be being? (#PastTense|#Participle)",[Gd,Od,Id]]],"present-conditional":[["would be #PastTense",[Ed,Id]]],"past-conditional":[["would have been #PastTense",[Dd,Id]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Gd]]],"auxiliary-past":[["^did #Infinitive$",[Dd,{plural:!1}]],["^used to #Infinitive$",[Dd,Cd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Ed,Cd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Dd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let zd=[];Object.keys(Bd).map((e=>{Bd[e].forEach((t=>{zd.push({name:e,match:t[0],data:Vd(t[1])})}))}));var $d=zd,Fd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t<$d.length;t+=1){let r=$d[t];if(!0===e.has(r.match)){n.form=r.name,Object.assign(n,r.data);break}}return n.form||e.has("^#Verb$")&&(n.form="infinitive"),n.tense||(n.tense=t.root.has("#PastTense")?"PastTense":"PresentTense"),n.copula=t.root.has("#Copula"),n};const Sd=function(e){return!(e.length<=1)&&(e.parse()[0]||{}).isSubordinate},Hd=function(e,t){return!!t.has("(are|were|does)")||!!e.has("(those|they|we)")||!(!e.found||!e.isPlural)&&e.isPlural().found};var Wd=function(e){let t=function(e){let t=e.before();t=function(e){let t=e.clauses();return t=t.filter(((e,t)=>!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),Sd(r)&&(n.remove(r),r=n.last()),Sd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Hd(t,e)}};const Md=e=>e,Jd=(e,t)=>{let n=Wd(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Ld=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Wd(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},qd=function(e,t){let n=Wd(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Kd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Ud=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Kd(e)),r&&e.replace(t.root,r),e},Rd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),_d=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Qd=function(e){return e&&e.isView?e.text("normal"):""},Zd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Kd(e))};var Yd=function(e){let t=Nd(e);e=e.clone().toView();const n=Fd(e,t);return{root:t.root.text(),preAdverbs:_d(t.adverbs.pre),postAdverbs:_d(t.adverbs.post),auxiliary:Qd(t.auxiliary),negative:t.negative.found,prefix:Qd(t.prefix),infinitive:Zd(t.root),grammar:n}};const Xd={tags:!0};var ep=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Kd(r)),i&&e.replace(r,i,Xd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=qd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const tp={tags:!0},np={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Kd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Wd(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,tp),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=np.simple(e,t),e=np.noAux(e,t))},hasHad:e=>(e.replace("has","had",tp),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Kd(a)),n(o,e.model).Participle}},rp={infinitive:np.simple,"simple-present":np.simple,"simple-past":Md,"simple-future":np.both,"present-progressive":e=>(e.replace("are","were",tp),e.replace("(is|are|am)","was",tp),e),"past-progressive":Md,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":np.hasHad,"past-perfect":Md,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Rd(e)),e.remove("have"),e),"present-perfect-progressive":np.hasHad,"past-perfect-progressive":Md,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",tp),e),"passive-past":e=>(e.replace("have","had",tp),e),"passive-present":e=>(e.replace("(is|are)","was",tp),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",tp),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Md,"auxiliary-future":e=>(e.replace("(is|are|am)","was",tp),e),"auxiliary-past":Md,"auxiliary-present":e=>(e.replace("(do|does)","did",tp),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",tp):(np.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Md,"want-infinitive":e=>(e.replace("(want|wants)","wanted",tp),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),np.simple(e,t),Rd(e),e)};var ap=function(e,t,n){return rp.hasOwnProperty(n)?((e=rp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const op={tags:!0},ip=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Kd(a)),!1===Jd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Ld(e)),o&&(e=e.replace(a,o,op)).not("#Particle").tag("PresentTense"),e},sp=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Kd(a)),!1===Jd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,op)).not("#Particle").tag("Gerund"),e},lp={infinitive:ip,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return ip(e,t);{let t=Wd(e).subject;if(Jd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,op)}return e},"simple-past":ip,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Ld(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else ip(e,t),e=e.remove("will");return e},"present-progressive":Md,"past-progressive":(e,t)=>{let n=Ld(e);return e.replace("(were|was)",n,op)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(ip(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Wd(e).subject;return Jd(e)||n.has("i")?((e=Ud(e,t)).remove("had"),e):(e.replace("had","has",op),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Md,"past-perfect-progressive":e=>e.replace("had","has",op),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Ld(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,op),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Md,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Md,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(sp(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=qd(e);return e.replace(t.auxiliary,n),e}return sp(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Md,"modal-infinitive":Md,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Kd(r)),a&&(e=e.replace(t.root,a,op))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ip(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Jd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,op),e.remove("will"),e}};var up=function(e,t,n){return lp.hasOwnProperty(n)?((e=lp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const cp={tags:!0},hp=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Kd(r)),o&&(e=e.replace(r,o,cp)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},dp=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Kd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,cp),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},pp={infinitive:hp,"simple-present":hp,"simple-past":hp,"simple-future":Md,"present-progressive":dp,"past-progressive":dp,"future-progressive":Md,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Md,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Md,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Md,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Md,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Md,"modal-past":Md,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),hp(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var mp=function(e,t,n){return e.has("will")||e.has("going to")?e:pp.hasOwnProperty(n)?((e=pp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const gp={tags:!0};var fp=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Kd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Ld(e)} ${s}`,e.replace(a,s,gp)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const vp={tags:!0},bp=function(e,t){let n=qd(e);return e.prepend(n+" not"),e},yp=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},wp=e=>e.has("(is|was|am|are|will|were|be)"),Pp={"simple-present":(e,t)=>!0===wp(e)?yp(e):(e=Ud(e,t),e=bp(e)),"simple-past":(e,t)=>!0===wp(e)?yp(e):((e=Ud(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===wp(e)?yp(e):bp(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",vp),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=bp(e)).replace("wants","want",vp)};var kp=function(e,t,n){if(e.has("#Negative"))return e;if(Pp.hasOwnProperty(n))return e=Pp[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===wp(e)?yp(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Ap=(e,t)=>"number"==typeof t?e.eq(t):e;var jp=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Ap(this,e).map(Nd)}json(e,t){let n=Ap(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Yd(t),n}),[]);return n}subjects(e){return Ap(this,e).map((e=>(Nd(e),Wd(e).subject)))}adverbs(e){return Ap(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return Ap(this,e).filter((e=>!0!==Wd(e).plural))}isPlural(e){return Ap(this,e).filter((e=>!0===Wd(e).plural))}isImperative(e){return Ap(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return ep(e,t,n.form)}))}toPresentTense(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return up(e,t,n.form)}))}toPastTense(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return ap(e,t,n.form)}))}toFutureTense(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return mp(e,t,n.form)}))}toGerund(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return fp(e,t,n.form)}))}conjugate(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:ep(e.clone(),t,n.form).text("normal"),PastTense:ap(e.clone(),t,n.form).text("normal"),PresentTense:up(e.clone(),t,n.form).text("normal"),FutureTense:mp(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return kp(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=wd(this);return t=Ap(t,e),new Verbs(this.document,t.pointer)}},xp={api:jp};return v.plugin(vc),v.plugin(Sc),v.plugin(Kc),v.plugin(lh),v.plugin(qh),v.plugin(_h),v.plugin(od),v.plugin(yd),v.plugin(xp),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.6.0";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},j=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},x=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?j(n):(j(n),j([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var T=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const C=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},D=e=>"[object Array]"===Object.prototype.toString.call(e),O=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=T(e),e)))}(d),n?(C(t.update([u]).firstTerm()),N(h,u,d,r)):(C(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this}};var $=z,H=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const F={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=H(this.document,i);return o=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};F.delete=F.remove;var S=F;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var M=J,W={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=W.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof W[e]?(a=a.sort(W[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var Q={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}},_={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,S,M,U,Q,_);var X=function(e){Object.assign(e.prototype,Z)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const me=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,pe=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(me);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(pe),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max","°","s","e"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},je={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},xe=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=xe(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&je.hasOwnProperty(l)&&(c=je[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]},Te=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Ce.test(l)){let e=l.replace(Ce,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Ge={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Ge,lib:Be,hooks:["lexicon"]},$e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const He=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const We={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};We.compile=We.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=Se(this,n,t);return a=a.settle(),a}},lib:We};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,_e=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=_e(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=_e(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=_e(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Xe={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Ye=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Ye(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Ye(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Xe,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,mt=/&&/,pt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},kt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=pt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){mt.test(e)?(n.choices=e.split(mt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const xt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var It=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(xt(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(xt(e,t)),n=n.concat(Nt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Tt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>Pt(e,t))),r=jt(r,n),r=It(r,n),r=Tt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ot=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),Ft=(e,t)=>-1!==e.pre.indexOf(t),St={hasQuote:e=>Vt.test(e.pre)||Bt.test(e.post),hasComma:e=>Ht(e,","),hasPeriod:e=>!0===Ht(e,".")&&!1===Ht(e,"..."),hasExclamation:e=>Ht(e,"!"),hasQuestionMark:e=>Ht(e,"?")||Ht(e,"¿"),hasEllipses:e=>Ht(e,"..")||Ht(e,"…")||Ft(e,"..")||Ft(e,"…"),hasSemicolon:e=>Ht(e,";"),hasColon:e=>Ht(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};St.hasQuotation=St.hasQuote;var Jt=St;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Gt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Jt[t.method]&&!0===Jt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Wt=Mt;const Lt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(qt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Wt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Wt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(qt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},_t=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Wt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Wt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Wt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?_t(e,r,t[e.r+1]):(e.t+=1,!0)},Xt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Wt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Wt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Yt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Xt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Yt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Lt(e,a)){if(e.negative){if(!Zt(a))return null}else if(!0!==Wt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!tn(a))return null}else if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else if(!Qt(a))return null}else if(!Rt(a))return null}else if(!Kt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},ln={api:ot,methods:{one:{termMethods:Jt,parseMatch:Ct,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(pn,""),fn.test(a)&&(a=" "),a=a.replace(gn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(pn,""),a="-"===a?" ":a.replace(mn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let kn=[],Pn=0;for(;Pn<64;)kn[Pn]=0|4294967296*Math.sin(++Pn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Pn=i=0;Pn>4]+kn[i]+~~o[Pn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const jn={text:!0,terms:!0};let xn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},En={text:e=>bn(e,{keepPunct:!0},!1),normal:e=>bn(e,Nn(wn.normal,{keepPunct:!0}),!1),implicit:e=>bn(e,Nn(wn.implicit,{keepPunct:!0}),!1),machine:e=>bn(e,xn,!1),root:e=>bn(e,Nn(xn,{form:"root"}),!1),hash:e=>An(bn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const In={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},jn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};In.data=In.json;var Tn=In,Cn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Dn="";var On={green:e=>""+e+Dn,red:e=>""+e+Dn,blue:e=>""+e+Dn,magenta:e=>""+e+Dn,cyan:e=>""+e+Dn,yellow:e=>""+e+Dn,black:e=>""+e+Dn,dim:e=>""+e+Dn,i:e=>""+e+Dn},Gn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(On.blue("\n ──────")),t.forEach((e=>{console.log(On.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=On.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=On.blue(" │ ")+On.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return On[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Vn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(On.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(On.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(On.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(On.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${On.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Cn(t),t):(!1!==e.tags&&(Gn(t),console.log("\n")),!0===e.chunks&&(Vn(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const $n=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Hn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Sn=Fn,Jn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},t,e)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Kn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},Rn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},Qn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>qn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Xn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>qn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},er=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},tr={union:function(e){e=Yn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)}};tr.and=tr.union,tr.intersection=function(e){e=Yn(e,this);let t=Xn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.not=function(e){e=Yn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.difference=tr.not,tr.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=er(t,this.document),this.toView(t)},tr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=_n(e,[t])})),e=er(e,this.document),this.update(e)};var nr=function(e){Object.assign(e.prototype,tr)},rr={methods:Qn,api:nr},ar=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const or=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ir=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(or(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(or(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=or(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},sr=function(e,t){e=ir(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},lr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},ur=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},cr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},hr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=lr(a,t.hooks);return o=ur(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),cr(o,e,a,n,r)},dr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===dr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},pr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ar,methods:{one:{buildNet:sr,bulkMatch:hr,bulkTagger:mr}}};const gr=/ /,fr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},vr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),gr.test(t))!function(e,t,n,r){let a=t.split(gr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),vr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var yr=br,wr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>kr({id:e}))),t}return[kr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},xr=e=>"[object Array]"===Object.prototype.toString.call(e),Nr=e=>(e=e||"").trim(),Er=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Pr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ar(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=kr({});return e.forEach((e=>{if((e=kr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(jr(t=e).forEach(kr),t);var t},Ir=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return jr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Tr=function(e){let t=jr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Cr={text:Ir,txt:Ir,array:Tr,flat:Tr},Dr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ir(e,!0)),null):Cr.hasOwnProperty(t)?Cr[t](e):e},Or=e=>{jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Gr=/\//;let Vr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Nr(e),!Gr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Vr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||kr({});return new Vr(t)}add(e,t={}){if(xr(e))return e.forEach((e=>this.add(Nr(e),t))),this;e=Nr(e);let n=kr({id:e,props:t});return this.json.children.push(n),new Vr(n)}remove(e){return e=Nr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return jr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return jr(this.json)}fillDown(){var e;return e=this.json,jr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else xr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Or(this.json);let e=jr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Or(this.json),Dr(this.json,e)}debug(){return Or(this.json),Dr(this.json,"debug"),this}};const Br=function(e){let t=Er(e);return new Vr(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const $r=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Hr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:$r(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Fr=function(e){return e?"string"==typeof e?[e]:e:[]};var Sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Fr(e[t].children),e[t].not=Fr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Jr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Sr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Hr(n)},Mr={one:{setTag:yr,unTag:wr,addTags:Jr}};const Wr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Lr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Wr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Wr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var qr=Lr,Kr=function(e){Object.assign(e.prototype,qr)},Ur={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Rr=new Set(["Auxiliary","Possessive"]);var Qr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Rr.has(e)||!t.hasOwnProperty(n))return 1;if(Rr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},_r={model:{one:{tagSet:{}}},compute:{tagRank:Qr},methods:Mr,api:Kr,lib:Ur};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Xr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Yr=/((?:\r?\n|\r)+)/;var ea=function(e){let t=[],n=e.split(Yr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const oa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ia=RegExp("("+Object.keys(oa).join("|")+")","g"),sa=RegExp("("+Object.values(oa).join("|")+")","g"),la=function(e){if(!e)return!1;let t=e.match(sa);return null!==t&&1===t.length};var ua=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var xa=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Aa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wa(n),n=ba(n),n=n.filter((e=>e)),n};let Na=new RegExp(`[${["#","@","_","+","."].join("")}]+$`,""),Ea=new RegExp(`^[${["%","_","°"].join("")}]+`,"");const Ia=/[\p{Punctuation}\s]+$/u,Ta=/^[\p{Punctuation}\s]+/u,Ca=/['’]/,Da=/^[a-z]\.([a-z]\.)+/i,Oa=/^'[0-9]{2}/,Ga=/^-[0-9]/;var Va=function(e){let t=e,n="",r="";return e=e.replace(Ta,(t=>{let r=t.match(Na);return r?(n=t.replace(Na,""),r):"'"===n&&Oa.test(e)?(n="",t):"-"===t&&Ga.test(e)?t:(n=t,"")})),e=e.replace(Ia,(a=>{let o=a.match(Ea);return o?(r=a.replace(Ea,""),o):Ca.test(a)&&/[sn]['’]$/.test(t)&&!1===Ca.test(n)?(r=r.replace(Ca,""),"'"):!0===Da.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}},Ba=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},za=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const $a=/([A-Z]\.)+[A-Z]?,?$/,Ha=/^[A-Z]\.,?$/,Fa=/[A-Z]{2,}('s|,)?$/,Sa=/([a-z]\.)+[a-z]\.?$/;var Ja=function(e){return function(e){return!0===$a.test(e)||!0===Sa.test(e)||!0===Ha.test(e)||!0===Fa.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Ma=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=za(r),r=n(r,t),r=Ja(r),e.normal=r},Wa=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Ma(e,t)})),n})),e};const La=/[ .][A-Z]\.? *$/i,qa=/(?:\u2026|\.{2,}) *$/,Ka=/\p{L}/u,Ua=/^[A-Z]\. $/;var Ra=function(e,t){if(!1===Ka.test(e))return!1;if(!0===La.test(e))return!1;if(3===e.length&&Ua.test(e))return!1;if(!0===qa.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Qa={one:{killUnicode:Ba,tokenize:{splitSentences:ga,isSentence:Ra,splitTerms:xa,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Va(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Wa}}},_a={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Za={},Xa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Za[t]=!0,Xa[t]="Abbreviation",void 0!==e[1]&&(Xa[t]=[Xa[t],e[1]])}))}));var Ya=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let eo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},to={};Object.keys(eo).forEach((function(e){eo[e].split("").forEach((function(t){to[t]=e}))}));const no=/\//,ro=/[a-z]\.[a-z]/i,ao=/[0-9]/;var oo=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),no.test(n)&&!ro.test(n)&&!ao.test(n)){let t=n.split(no);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const io=/^\p{Letter}+-\p{Letter}+$/u;var so=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),io.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},lo=function(e){let t=e.docs,n={};for(let e=0;emo(e,oo),machine:e=>mo(e,so),normal:e=>mo(e,Ma),freq:lo,offset:uo,index:co,wordCount:ho},methods:Qa,model:{one:{aliases:_a,abbreviations:Za,prefixes:Ya,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Xa,unicode:to}},hooks:["alias","machine","index","id"]},go={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const fo=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var vo=function(e){e.prototype.autoFill=fo},bo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const yo={safe:!0,min:3};var wo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},yo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=bo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},ko={model:{one:{typeahead:{}}},api:vo,lib:wo,compute:go,hooks:["typeahead"]};v.extend(ee),v.extend(Ln),v.extend(ln),v.extend(rr),v.extend(_r),v.plugin(Ie),v.extend(po),v.plugin(k),v.extend(Le),v.extend(ko),v.extend(ze),v.extend(pr);var Po={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Ao={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦unless",Conjunction:"true¦aXbTcuz,evenRhowPiHjust00lest,noEoCp8supposing,t5wh0yet;at,e2il1o0;evOse;e,st;nevMre0thM; if,vL;h0o;erefOo0;!uU;lus,rovide0; 1d0;! 0;th9;r0therwiJ;! not; mattBr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mFcaCorder t0;h0o;at;! 0;only,t0w0;hen;!ev0;er;! 0;if,t8;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;here nLsk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBeAi8o2u0;h,mph,rra0zzB;h,y;ly1o0;r5y8;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh,ye;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;e1ich,o0y;!m;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6J;G:6C;a8Lb74c66d61e60f4Yg4Hh3Wiron0j3Sk3Nl34m2Qn2Oo2Mp23quietEr1Os0HtXuVvacuum 1wKyammerAzH;ero Dip IonH;e0k0;by,up;aOeJhIiHor7Writ38;mp0n35pe0r8s8;eel Dip 8Q;aJiHn2T;gh Hrd0;in,up;n Dr H;d2in,oF;it 6Hk8lk Irm 0Zsh Ht7Av5F;aw3d2o5up;aw3in,o85;rgeAsH;e 1herG;aWeUhSiOoNrJuHypM;ckGrn H;d2in,oFup;aIiHot0y 2P;ckleEp 8B;ckEdH;e 0O;neEp 30s4Z;ck JdIe Hghte5Yme0p o0Jre0;aw3ba4d2in,up;e 6Iy 1;by,oC;ink Hrow 6V;ba4ov6up;aHe 6Gll5G;m 1r 53;ckAke Ilk H;ov6shit,u5H;aHba4d2in,oFup;ba4ft6p5Mw3;a0Mc0Le0Fh0Bi08l04m03n02o01pWquar4XtNuLwH;earJiH;ngItch H;aw3ba4o7P; by;ck Hit 1m 1ss0;in,o7Cup;aNe11iMoKrIuH;c37d2P;aigh23iH;ke 6Xn3L;p Hrm25;by,in,oC;n32r 1tc44;c31mp0nd Hr7Gve9y 1;ba4d2up;ar2ZeKiJlIrHurA;ingAuc8;a3Rit 5S;l18n 1;e6All0;ber 1rt0und like;ap 56ow D;ash 5Xoke0;eep IiHow 7;c1Mp 1;in,oH;ff,v6;de13gn IngHt 5Sz8; al5Nle0;in,o5up;aJoHu5B;ot Hut0w 6V;aw3ba4f3SoC;c2HdeGk5Qve9;e Lll1Hnd Krv8tH; Htl4W;d2f5Cin,o5upH;!on;aw3ba4d2in,o2Nup;o6Eto;al5Jout0rap5J;il9v8;aUeRiQoMuH;b 5Cle0n Hstl8;aJba4d2inIoHt3Lu0Y;ut,v6;!to;c2HrBw3;ll Jot IuH;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Jp9;aHel9inGnt0;c5Sd H;o3Bup;c1Ut0;aVeUiSlQoOrLsyc2RuH;ll Jt H;aHba4d2in,oFt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess IiKoH;p 1;ah1Zon;iHp 5Xr4DurEwer 5X;nt0;ay4TuH;gGmp 7;ck Hg0leAn 7p4Q;oFup;el 50ncilG;c4Iir 2Xn0ss JtIy H;ba4oC; d2c2E;aw3ba4in,oF;pHw4D;e4Ct D;arrowEerd0oH;d9teE;aReOiNoJuH;ddl8lH;l 3X;c13nkeyJp 7uth9ve H;aHd2in,o5up;l42w3; wi3Z;ss0x 1;asur8lIss H;a1Oup;t 7;ke In 7rHs1Xx0;k 7ry9;do,o4Wup;aXeSiNoHuck0;aLc3Vg KoHse0;k Hse3T;aft6ba4d2forw2Sin4Jov6uH;nd6p;in,oF;d 7;e 05ghtKnJsIvH;e 3F;ten 4Z;e 1k 1; 1e3K;ave Jt IvelH; o4I;d2go,in,o5up;in,oH;pen,ut;c8p 1sh HtchAugh9y26;in44o5;eIick9nock H;d2o4Bup;eHyG;l 2Zp H;aw3ba4d2fZin,oFto,up;aJoIuH;ic8mpG;ke3CtE;c3Lzz 1;aWeRiOoLuH;nIrrHsh 7;y 1;kerEt H;arBd2;lHneGrse35;d He 1;ba4d2fast,o04up;de It H;ba4on,up;aw3o5;aHlp0;d Jl 2Hr Ht 1;fHof;rom;in,oWu1K;cKm 1nIve Hz2C;it,to;d Hg 2NkerK;d2in,o5;k 1;aUeOive Nloss 28oJrIunH; f0O;in3Oow 2I; Hof 27;aIb1Fit,oHrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oFrise,up,w3;ar 7ek0t H;aIb1Ad2in,oHrBup;ff,n,ut,v6;cIhHl25rBt,w3;ead;ross;d aInH;g 1;bo5;a0Be04iVlRoNrJuH;ck He2A;arBup;eIighten HownAy 1;aw3oC;eHshe1W; 1z8;lJol H;aHwi1P;bo5rB;d 7low 1;aIeHip0;sh0;g 7ke0mHrHttenE;e 30;gOlMnKrIsHzzle0;h 2Y;e Hm 1;aw3ba4up;d0isH;h 1;e Hl 1I;aw3fMin,o5;ht ba4ure0;eMnIsH;s 1;cJd H;fHoC;or;e D;dZl 1;cLll Hrm0t15;ap08bJd2in,oItH;hrough;ff,ut,v6;a4ehi29;e H;d2oCup;a0Ndge0nd 0Ry8;oKrH;aIess 7op H;aw3bXin,o1W;gAwA; 0Kubl10;a01hYleaXoKrHut 18;ackAeep Hoss D;by,d2in,oHup;n,ut;me KoIuntH; o1Y;k 7l H;d2oC;aNbMforKin,oJtIuH;nd6;ogeth6;n,ut,v6;th,wH;ard;a4y;pHrBw3;art;n 7;eHipG;ck Der H;on,up;lPncel0rLsJtch IveG; in;o1Gup;h Dt H;doubt,oC;ry IvH;e 04;aw3oF;ff,n,ut;l ImE; d2;aHba4d2o17up;rBw3;a0Ne0Fl08oZrMuH;bblJckl00il06lk 7ndl00rHst WtIy 17zz9;n 0BsH;t D;e H;ov6;anSeaQiIush H;oCup;ghMng H;aJba4d2fHin,o5up;orH;th;bo5lHrBw3;ong;teH;n 1;k H;d2in,o5up;ch0;arOg 7iMn8oKssJttlIunce Hx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aMeed0oHurt0;cJw H;aw3ba4d2o5up;ck;k H;in,oY;ck0nk0st9; oMaKef 1nd H;d2ov6up;er;up;r0t H;d2in,oRup;ff,nH;to;ck Nil0nJrgIsH;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oHup;ff,ut;ay;cQdMsk Juction9; oC;ff;arBo5;ouH;nd;d H;d2oHup;ff,n;own;t H;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4x;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ea6Dit2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Km1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Com2C;f0i4Wt0Dy9;! arou4F;arn4GeAo9;cabula41l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aHeGhi8iEoDrBuAv9;! show;m2Jn5rntIto15;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etD;am,mp3A;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n28st4Q;ab2Q;bAnri1Bper bowl,r9;f0roga2;st3Etot1;aCepBipe3Ro1CrAudent9;! lo1L;ang0i8;fa1Gmo1G;ff0t31;loi42meo17;elet14i9;er,ll,rm3M;ack,or49;ab0Vcurity gu2E;e4ho9;l30ol;la33ndwi0J;av0XeChetor5iAo9;de4om;te,v9;erb0O;bCcBf9publ5r0Pspi2;er9orm0;e4r1;it1ord label;a2u42;estion mark,ot29;aMeKhJiHlFort1rAu9yram1D;ddi8ppy,rpo0K;eCie3Io9;bl3Vs9;pe6t9;a2itu2;diction,mi0Froga7ss relea0F;a9ebisci2;q28te,y0;cn5e9g;!r;armaci39otocoH;dest1ncil,r9t1;cen3Hsp3I;nAr2Ste9;!nt;el2Sop3;bj3EcApia2rde1thers,ve9wn0;n,rview;cu9e0G;pi0;aAit25ot9umb0;a26hi8;n2Arra7;aFeEiDoAu9é0H;m0Tr1;mAnopo3pRrni8sq1Qt9u14;h0i36;!my;li0Xn0A;d5nu,t1;mm1nAte9yf3;ri1;!d11;aurea2iBu9;ddi2n9;ch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦-,aMbJcIdHexcept,fFinEmid,notwithstandiSoCpTqua,sBt7u4v2w0;/o,hereOith0;! whEin,oS;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that,uch D;f0n1ut;!f;!to;or,r0;om;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2T;1:20;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt8v6w2;a4i3oo2;d,l;ldlife,ne;rm7t25;ernacul1Ui2;neg1Tol0Otae;eAh8oothpas1Nr3un2yranny;a,gst1V;aff29ea18o3ue nor2;th;oZu2;ble2se1Ft;!shoot1X;er2und1V;e,mod2B;a,nnis;aBcene0IeAh9il8ki7o6p5t3u2weepstak1;g1Hnshi11;ati01e2;am,el;ace23eci1;ap,cc1N;n,ttl1;k,v1L;eep,ingl1;na14ri1;d0Nfe1Vl2nd,t0B;m1Kt;a5e3ic2;e,ke0V;c2laxa0Ssearch;ogni0Rrea0R;bi1in;aVe6hys0last1Ko4re2;amble,mis1s2ten1K;en1Jsu0C;l2rk;it0yB;a1Otr06;bstetr0vercrowd16xyg0Z;a2ews;il polWtional securi1G;a9e7o4u2;m2s1A;ps;n2o19;ey,o2;gamy;a2chan0rchandi16tallurgy;sl1t;chine2themat0; learn0Ury;aught0Se5i4ogi3u2;ck,g0W;c,st0;ce,ghtn0Qngui19teraRv0P;ath0OisuRss;ara08indergart0Hnowled0T;azz,ewelC;ce,gnor7mp4n2;formaYter2;net,sta04;a2ort4;ti2;en0Y;an0X;a5eHisto4o2;ckey,mework,ne2rserad6spitali0Q;s0Py;ry;ir,libXppiFs2;h2te;ish;ene5l4o3r2um,ymna0R;aCeed;lf,re;utYyce0C; 2t0;edit03po2;ol;aLicElour,o4urni2;tu2;re;od,rgive2uriXwl;ne2;ss;conom0duca8lectr7n5quip6th0very3xper2;ti03;body,o2thT;ne;joy2tertain2;ment;ici01on0;tiQ;e8i5o3raugh2ynasZ;ts;pe,wnstai2;rs;abet1s2;honTrepu2;te;b2miP;ut;aAelci9h6iv0l4o2urrency;al,ld w2nfusiFral,ttFusco8;ar;ass0oth1;es;aos,e3ick2;en;eGw7;us;d,rI;a7eef,i5lood,read,u2;nt3tt2;er;ing;lliarDs2;on;g2ss;ga2;ge;cDdviCeroAir9m5ni4ppeal court,rithmet3spi2thlet0;rin;ic;se;en4n2;es2;ty;ds;craft;b0d2naut0;ynam0;ce;id,ou2;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:95;1:80;2:7X;3:8W;4:8Q;5:6E;6:81;7:86;8:8R;9:8D;A:5W;a7Mb77c6Pd67e5Qf58g50h4Pi3Rjuni44k3Pl3Fm33n2To2Ep1Wquart63r1Ls0Rt0JuMvIwBye1J;ast54eFholeEiDoB;man5oBrthwhi6u0F;d7Hzy;despr8Fs6E;!sa6;ather13eBll o5Jste2Q;!k5;aDeCiBola5D;b95ce versa,gi2Q;ng4Vrsa5B;ca0lu54;lt06nHpDrCsBttermo8X;ef75u4;b67ge0; Db2ApCsBti7Y;ca6et,ide dO;er,i4L;f3Tto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4E;e6Zi2FoDpCuB;pervis1spect2;e0ok6X;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6O;mploy1nd2xpect1;eBue;cid1rB;!a6RcovAly2sDwB;aBei7C;tAy;iz1to43;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Gra;aGeDhough59ip 1PoCrB;anspa6Yi3;gethAle83rp9;ena6FmpCrB;r3Ftia6P;e8o6N;leBst3Q;nt1;a03c01eZhYiWkiVmug,nobb3ZoPpMqueam3ZtGuBymb70;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb50;eq73tanda7P;atu69eFi0UrByl3T;aBin4D;ightBy; fBfB;or5X;adfa7Hri6;arCeBirit1lend9ot on;c2Ye34;k5se; caGlub6mbAphisticFrEuCvB;erei5Iiet;ndBth0X;pro6F;d9ry;at1;ll1;g1WnB;ce57g6;am30eA;at1co1Hem5lf3AnBre7;so5V;ath2holBient2K;ar5;cr1me,tisfac5M;aJeEheumato9iCoB;bu6Xtt58y4;ghtBv4;-w2f54;bYcEdu6OlDnown1sBtard1;is3DoB;lu3na0;e1Buc3B;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6NrCuB;bl5Vnjabi;eGiEoB;!b2QfCmi3BpBv4Vxi1Z;er,ort60;a7u63;maBor,sti7va3;!ry;ci60exist2mBpa9;a1Oi63;c9id;ac28rBti3;fe67ma32ti32v5V;i28rCsB;s5Qt;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni58seas,t,wB;ei57rou57;ll;do0Wer;d2Ug1M; bBbBgo2li7;oa60;fashion1school;!ay; gua5XbBli7;eat;eCsB;ce7er0Co0R;dia0se;aJeIiHoBuanc1;nDrthBt1V;!eB;rn;chaCdescri5Lprof29sB;top;la0;ght5;arby,cessa4Bighbor5xt;k1usiat2;aIeHinGoCuB;d14ltip6;deDl13nBot,st;ochroBth5;me;rn,st;dblRi;nac2re;cDgenta,in,j03keshift,mmCnBscu4E;da3Uy;ali2Ioth;ab37ho;aJeGiEoCuB;mber2sh;ngBut19;stand2term;ghtwei44teraB;l,te;ft-w2gBssAth4;al,eBi0B;nda3P;ngu9ps1st;aput,ind5nB;ow2;gno4Xll03mVnDpso 25rB;a3releB;va0; QaPcoMdJe2AfIhibi3CiWnHoGsDtBvalu0V;a4KeB;n48rdep1U;a7igColBuboD;ub6ve0;nifica0;rdi41;a3er;eriCluenOreq3X;eCiEoB;or;fini3p1Ltermi3W;mpCnside8rB;re48;le3;ccu8deq3Xppr36;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe40;ti4;aCeBi0T;d2Yn3M;tu22;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3I;me ma2BnCrrBs04ur5;if30;e3Qo2I;ghfalut1LspB;an2X;lUpf1W;lCnBrdZtI;dy;f,low1;aiHener2Siga25lob4oGraDuB;ilBng ho;ty;cCtB;ef1Ois;ef1N;od;nf1L;aPeMinLlJoErB;aCeBoz1L;q2Ptf1I;gi6nt2H;olErB; keeps,eBge0FmAtu2Owa38;go2i1BseeB;ab6;ish;ag37uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Hmiliar,r Bux;oBreach2;ff;aOfficie0lMmJnHqu4re2Pthere4veryday,xB;a2Oem2RplEquisi3traDuB;be2WlB;ta0;!va1G;icB;it; Bti0O;rou3sui3;erCiB;ne0;ge0;dBe18;er5;gAsB;t,ygo2;er;aQeHiCoBrea15ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0A;a0ni3;as1;an;facto;i5ngeroX;ly;arRePivil,oErCuB;nn2stoma0M;aBu0Iystal0Y;v02z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic09ry;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efM;aMeFizarEliKoCrBuck nak1;and new,isk,on1F;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0ZrrB;en;!wards; priori,b0Qc0Nd0Gf0Ag08h07l00mp6ntiquXpRrLsleep,ttracti09uHvEwB;aCkB;wa0X;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntX;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohFiJkaDl,oCriBterP;ght;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt","Adj|Past":"true¦0:2V;1:2M;2:2P;a2Eb29c1Rd19e13f0Ygift0h0Vi0Oj0Nknown,l0Km0Fn0Do0Ap03qua02rTsDt9u7v5w3;arp0ea3or5;kHth2O;a3e0U;ri0;ni3pd1s0;fi0t0;ar5hreatCr3wi2N;a3ou18;ck0in0pp0;get0ni1L;aGcaFeEhDimCm00oak0pAt6u3;bsid24gge2Is3;pe3ta1P;ct0nd0;at0e5r3uU;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al1Wfi0;pHul1;ar0ut;al0c1Gle2t1O;r0tt22;t3ut0;is1Hur1;aAe3;c7duc0f1Ag6l1new0qu5s3;pe2t3;or0ri2;e1Zir0;ist1Uul1;eiv0o3;mme09rd0v1S;lli0ti18;li17;arallel0l7o6r3ump0;e4o3;ce0Ilo0Hnou1Qpos0te2;fe0Koc8pY;i1Dli0Q;a3e16;nn0;c4rgan18verlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3;di0Tt0F;as0Olt0;n3rk0;ag0ufact0M;eft,i4o3;ad0st;cens0mit0st0;agg0us0L;mp8n3sol1;br0debt0f6t3volv0;e3ox0D;gr1n3re15;d0si0H;e2oW;li0oLrov0;amm0Xe1o3;ok0r3;ri0C;aNe6i5lavo07ocus0r3;a3i0;ct05g0Jm0;niWx0;ar0;duc1mbarraKn7quipp0stabliUx3;p3te5;a4e3;ct0rie0P;nd0;ha0NsX;aIeAi3;gniZminiNre2s3;a7c5grun02t3;o3reBurb0;rt0;iplQou3;nt0rD;bl0;cenTdMf7lay0pre6ra5t3velop0;a3ermM;il0;ng0;ss0;e4o3;rm0;rr0;m3t0;ag0;alcul1eGharg0lFo8r5u3;lt3stomQ;iv1;a4owd0u3;sh0;ck0mp0;d0lo8m5n3ok0vV;centr1s3troll0;idTolid1;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralA;a6i5o3roken,urn0;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k36l2Xm2Rnou3Uo2Mp25qu24r1As08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Gc0Fe0Dh09i07l05m04n03o01pWquVtOuJwG;all6YeeHiG;m,ng;p,t5;bIccumb,ffHggeBmm8Zp2DrG;mouFvi2;er,i3;li7Wmer9siGveD;de,st;aKe7PiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Pi8;awn,eJiIlHoGri68;il,of;ay,it;ll,t;ak,nd;lGot6Iw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5CoHriGun;nk,v5O;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Hv0w;!k,m;aven9ul7V;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2YsLtJvG;amp,eHiGo2N;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1TrG;a5QiCuctu7;de,gn,st;el,hra1lGreseF;a3e63;d0ew,o02;a5Le2To2;a6eFiGoad,y;e2nq3Dve;mbur1nf2M;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Dla3GoGyc4;gni54nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Kit,o6;aUerSiRlumm0SoQrIuG;b3Hke,ni8rGt;poDs6R;eKoG;cId,fe31hibEnoHpo1sp0truAvG;e,iAo4P;un3;la32u7;a5Bc1LdHf0ocSsup0CvG;a5GeF;etermi3ZiC;a58rt4Q;er3npoiF;cei2fo39i8mea6plex,sGvaA;eve7iB;mp0n11rGtrol,ve,y;a5Mt5I;bser2cJpIutHverGwe;lap,s13tu64u1;gr4Jnu1Upa3;era6i3Ppo1;cupy;aKe06iHoGultiply;leBu5Z;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u33;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng1Zu18;eep,nG;e3Kow;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const jo=36,xo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",No=xo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Eo=function(e){if(void 0!==No[e])return No[e];let t=0,n=1,r=jo,a=1;for(;n=0;n--,a*=jo){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Io=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Co(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Do(Ao[e]);Bo.test(e)?Object.keys(t).forEach((t=>{if($o[t]=e,"Noun|Verb"===e){let e=Vo(t,Ho);$o[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{zo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","zo[e]="Emoticon")),delete zo[""],delete zo.null,delete zo[" "];const Fo="Adjective";var So={beforeTags:{Determiner:Fo,Possessive:Fo},afterTags:{Adjective:Fo},beforeWords:{seem:Fo,seemed:Fo,seems:Fo,feel:Fo,feels:Fo,felt:Fo,appear:Fo,appears:Fo,appeared:Fo,also:Fo,over:Fo,under:Fo,too:Fo,it:Fo,but:Fo,still:Fo,really:Fo,quite:Fo,well:Fo,very:Fo,deeply:Fo,profoundly:Fo,extremely:Fo,so:Fo,badly:Fo,mostly:Fo,totally:Fo,awfully:Fo,rather:Fo,nothing:Fo,something:Fo,anything:Fo,not:Fo,me:Fo,is:Fo},afterWords:{too:Fo,also:Fo,or:Fo}};const Jo="Gerund";var Mo={beforeTags:{Adverb:Jo,Preposition:Jo,Conjunction:Jo},afterTags:{Adverb:Jo,Possessive:Jo,Person:Jo,Pronoun:Jo,Determiner:Jo,Copula:Jo,Preposition:Jo,Conjunction:Jo,Comparative:Jo},beforeWords:{been:Jo,keep:Jo,continue:Jo,stop:Jo,am:Jo,be:Jo,me:Jo,began:Jo,start:Jo,starts:Jo,started:Jo,stops:Jo,stopped:Jo,help:Jo,helps:Jo,avoid:Jo,avoids:Jo,love:Jo,loves:Jo,loved:Jo,hate:Jo,hates:Jo,hated:Jo},afterWords:{you:Jo,me:Jo,her:Jo,him:Jo,them:Jo,their:Jo,it:Jo,this:Jo,there:Jo,on:Jo,about:Jo,for:Jo}},Wo={beforeTags:Object.assign({},So.beforeTags,Mo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},So.afterTags,Mo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},So.beforeWords,Mo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},So.afterWords,Mo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Lo="Singular";var qo={beforeTags:{Determiner:Lo,Possessive:Lo,Acronym:Lo,Noun:Lo,Adjective:Lo,PresentTense:Lo,Gerund:Lo,PastTense:Lo,Infinitive:Lo,Date:Lo},afterTags:{Value:Lo,Modal:Lo,Copula:Lo,PresentTense:Lo,PastTense:Lo,Demonym:Lo},beforeWords:{the:Lo,with:Lo,without:Lo,of:Lo,for:Lo,any:Lo,all:Lo,on:Lo,cut:Lo,cuts:Lo,save:Lo,saved:Lo,saves:Lo,make:Lo,makes:Lo,made:Lo,minus:Lo,plus:Lo,than:Lo,another:Lo,versus:Lo,neither:Lo,favorite:Lo,best:Lo,daily:Lo,weekly:Lo,linear:Lo,binary:Lo,mobile:Lo,lexical:Lo,technical:Lo,computer:Lo,scientific:Lo,formal:Lo},afterWords:{of:Lo,system:Lo,aid:Lo,method:Lo,utility:Lo,tool:Lo,reform:Lo,therapy:Lo,philosophy:Lo,room:Lo,authority:Lo,says:Lo,said:Lo,wants:Lo,wanted:Lo,is:Lo}};const Ko={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Uo={beforeTags:Object.assign({},So.beforeTags,qo.beforeTags,Ko.beforeTags),afterTags:Object.assign({},So.afterTags,qo.afterTags),beforeWords:Object.assign({},So.beforeWords,qo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,qo.afterWords)};let Ro="PastTense";const Qo={beforeTags:{Adverb:Ro,Pronoun:Ro,ProperNoun:Ro,Auxiliary:Ro,Noun:Ro},afterTags:{Possessive:Ro,Pronoun:Ro,Determiner:Ro,Adverb:Ro,Comparative:Ro,Date:Ro},beforeWords:{be:Ro,who:Ro,get:"Adjective",had:Ro,has:Ro,have:Ro,been:Ro,it:Ro,as:Ro,for:"Adjective"},afterWords:{by:Ro,back:Ro,out:Ro,in:Ro,up:Ro,down:Ro,for:Ro,the:Ro,with:Ro,as:Ro,on:Ro,at:Ro}};var _o={beforeTags:Object.assign({},So.beforeTags,Qo.beforeTags),afterTags:Object.assign({},So.afterTags,Qo.afterTags),beforeWords:Object.assign({},So.beforeWords,Qo.beforeWords),afterWords:Object.assign({},So.afterWords,Qo.afterWords)};const Zo="Infinitive";var Xo={beforeTags:{Modal:Zo,Adverb:Zo,Negative:Zo,Plural:Zo},afterTags:{Determiner:Zo,Adverb:Zo,Possessive:Zo,Preposition:Zo},beforeWords:{i:Zo,we:Zo,you:Zo,they:Zo,to:Zo,please:Zo,will:Zo,have:Zo,had:Zo,would:Zo,could:Zo,should:Zo,do:Zo,did:Zo,does:Zo,can:Zo,must:Zo,us:Zo,me:Zo,he:Zo,she:Zo,it:Zo,being:Zo},afterWords:{the:Zo,me:Zo,you:Zo,him:Zo,her:Zo,them:Zo,it:Zo,a:Zo,an:Zo,up:Zo,down:Zo,by:Zo,out:Zo,off:Zo,under:Zo,when:Zo,all:Zo,to:Zo,because:Zo,although:Zo,before:Zo,how:Zo,otherwise:Zo,together:Zo,though:Zo,yet:Zo}};const Yo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ei={beforeTags:Object.assign({},So.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},So.afterTags,Xo.afterTags,Yo.afterTags),beforeWords:Object.assign({},So.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Xo.afterWords,{to:void 0})};const ti={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ni={},ri={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ai={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var oi={beforeTags:Object.assign({},Mo.beforeTags,qo.beforeTags,ti),afterTags:Object.assign({},Mo.afterTags,qo.afterTags,ni),beforeWords:Object.assign({},Mo.beforeWords,qo.beforeWords,ri),afterWords:Object.assign({},Mo.afterWords,qo.afterWords,ai)},ii={beforeTags:Object.assign({},Xo.beforeTags,qo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xo.afterTags,qo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xo.beforeWords,qo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xo.afterWords,qo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const si="Person";var li={beforeTags:{Honorific:si,Person:si,Preposition:si},afterTags:{Person:si,ProperNoun:si,Verb:si},ownTags:{ProperNoun:si},beforeWords:{hi:si,hey:si,yo:si,dear:si,hello:si},afterWords:{said:si,says:si,told:si,tells:si,feels:si,felt:si,seems:si,thinks:si,thought:si,spends:si,spendt:si,plays:si,played:si,sing:si,sang:si,learn:si,learned:si,wants:si,wanted:si}};const ui="Month",ci={beforeTags:{Date:ui,Value:ui},afterTags:{Date:ui,Value:ui},beforeWords:{by:ui,in:ui,on:ui,during:ui,after:ui,before:ui,between:ui,until:ui,til:ui,sometime:ui,of:ui,this:ui,next:ui,last:ui,previous:ui,following:ui},afterWords:{sometime:ui,in:ui,of:ui,until:ui,the:ui}};var hi={beforeTags:Object.assign({},li.beforeTags,ci.beforeTags),afterTags:Object.assign({},li.afterTags,ci.afterTags),beforeWords:Object.assign({},li.beforeWords,ci.beforeWords),afterWords:Object.assign({},li.afterWords,ci.afterWords)};const di="Place",mi={beforeTags:{Place:di},afterTags:{Place:di,Abbreviation:di},beforeWords:{in:di,by:di,near:di,from:di,to:di},afterWords:{in:di,by:di,near:di,from:di,to:di,government:di,council:di,region:di,city:di}};let pi="Unit";const gi="Honorific";let fi={first:gi,general:gi,royal:gi,vice:gi,rear:gi,major:gi};const vi={"Adj|Gerund":Wo,"Adj|Noun":Uo,"Adj|Past":_o,"Adj|Present":ei,"Noun|Verb":ii,"Noun|Gerund":oi,"Person|Noun":{beforeTags:Object.assign({},qo.beforeTags,li.beforeTags),afterTags:Object.assign({},qo.afterTags,li.afterTags),beforeWords:Object.assign({},qo.beforeWords,li.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},qo.afterWords,li.afterWords)},"Person|Date":hi,"Person|Verb":{beforeTags:Object.assign({},li.beforeTags,Xo.beforeTags),afterTags:Object.assign({},li.afterTags,Xo.afterTags),beforeWords:Object.assign({},li.beforeWords,Xo.beforeWords),afterWords:Object.assign({},li.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},mi.beforeTags,li.beforeTags),afterTags:Object.assign({},mi.afterTags,li.afterTags),beforeWords:Object.assign({},mi.beforeWords,li.beforeWords),afterWords:Object.assign({},mi.afterWords,li.afterWords)},"Unit|Noun":{beforeTags:{Value:pi},afterTags:{},beforeWords:{per:pi,every:pi,each:pi,square:pi,cubic:pi,sq:pi,metric:pi},afterWords:{per:pi,squared:pi,cubed:pi,long:pi}},"Honorific|Noun":{beforeTags:{Honorific:gi,ProperNoun:gi,Ordinal:gi},afterTags:{Person:gi,ProperNoun:gi},beforeWords:Object.assign({},fi,{honorable:gi,honourable:gi,worship:gi,excellency:gi,majesty:gi,right:gi}),afterWords:fi}},bi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};vi["Plural|Verb"]={beforeWords:bi(vi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:bi(vi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:bi(vi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:bi(vi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yi=vi;const wi="Adjective",ki="Infinitive",Pi="PresentTense",Ai="Singular",ji="PastTense",xi="Adverb",Ni="Plural",Ei="Actor",Ii="Verb",Ti="Noun",Ci="LastName",Di="Modal",Oi="Participle";var Gi=[null,null,{ea:Ai,ia:Ti,ic:wi,ly:xi,"'n":Ii,"'t":Ii},{oed:ji,ued:ji,xed:ji," so":xi,"'ll":Di,"'re":"Copula",azy:wi,eer:Ti,end:Ii,ped:ji,ffy:wi,ify:ki,ing:"Gerund",ize:ki,ibe:ki,lar:wi,mum:wi,nes:Pi,nny:wi,ous:wi,que:wi,rol:Ai,sis:Ai,ogy:Ai,oid:Ai,ian:Ai,zes:Pi,eld:ji,ken:Oi,ven:Oi,ten:Oi,ect:ki,ict:ki,ign:ki,ful:wi,bal:wi},{amed:ji,aped:ji,ched:ji,lked:ji,rked:ji,reed:ji,nded:ji,mned:wi,cted:ji,dged:ji,ield:Ai,akis:Ci,cede:ki,chuk:Ci,czyk:Ci,ects:Pi,ends:Ii,enko:Ci,ette:Ai,wner:Ai,fies:Pi,fore:xi,gate:ki,gone:wi,ices:Ni,ints:Ni,ruct:ki,ines:Ni,ions:Ni,less:wi,llen:wi,made:wi,nsen:Ci,oses:Pi,ould:Di,some:wi,sson:Ci,tion:Ai,tage:Ti,ique:Ai,tive:wi,tors:Ti,vice:Ai,lier:Ai,fier:Ai,wned:ji,gent:Ai,tist:Ai,pist:Ai,rist:Ai,mist:Ai,yist:Ai,vist:Ai,lite:Ai,site:Ai,rite:Ai,mite:Ai,bite:Ai,mate:Ai,date:Ai,ndal:Ai,vent:Ai,uist:Ai,gist:Ai,note:Ai,cide:Ai,wide:wi,vide:ki,ract:ki,duce:ki,pose:ki,eive:ki,lyze:ki,lyse:ki,iant:wi,nary:wi},{elist:Ai,holic:Ai,phite:Ai,tized:ji,urned:ji,eased:ji,ances:Ni,bound:wi,ettes:Ni,fully:xi,ishes:Pi,ities:Ni,marek:Ci,nssen:Ci,ology:Ti,osome:Ai,tment:Ai,ports:Ni,rough:wi,tches:Pi,tieth:"Ordinal",tures:Ni,wards:xi,where:xi,archy:Ti,pathy:Ti,opoly:Ti,embly:Ti,phate:Ti,ndent:Ai,scent:Ai,onist:Ai,anist:Ai,alist:Ai,olist:Ai,icist:Ai,ounce:ki,iable:wi,borne:wi,gnant:wi,inant:wi,igent:wi,atory:wi,rient:Ai,dient:Ai},{auskas:Ci,parent:Ai,cedent:Ai,ionary:Ai,cklist:Ai,keeper:Ei,logist:Ei,teenth:"Value"},{opoulos:Ci,borough:"Place",sdottir:Ci}];const Vi="Adjective",Bi="Noun",zi="Verb";var $i=[null,null,{},{neo:Bi,bio:Bi,"de-":zi,"re-":zi,"un-":zi},{anti:Bi,auto:Bi,faux:Vi,hexa:Bi,kilo:Bi,mono:Bi,nano:Bi,octa:Bi,poly:Bi,semi:Vi,tele:Bi,"pro-":Vi,"mis-":zi,"dis-":zi,"pre-":Vi},{anglo:Bi,centi:Bi,ethno:Bi,ferro:Bi,grand:Bi,hepta:Bi,hydro:Bi,intro:Bi,macro:Bi,micro:Bi,milli:Bi,nitro:Bi,penta:Bi,quasi:Vi,radio:Bi,tetra:Bi,"omni-":Vi,"post-":Vi},{pseudo:Vi,"extra-":Vi,"hyper-":Vi,"inter-":Vi,"intra-":Vi,"deca-":Vi},{electro:Bi}];const Hi="Adjective",Fi="Infinitive",Si="PresentTense",Ji="Singular",Mi="PastTense",Wi="Adverb",Li="Expression",qi="Actor",Ki="Verb",Ui="Noun",Ri="LastName";var Qi={a:[[/.[aeiou]na$/,Ui,"tuna"],[/.[oau][wvl]ska$/,Ri],[/.[^aeiou]ica$/,Ji,"harmonica"],[/^([hyj]a+)+$/,Li,"haha"]],c:[[/.[^aeiou]ic$/,Hi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Mi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Mi,"rammed"],[/.[aeiou][sg]hed$/,Mi,"gushed"],[/.[aeiou]red$/,Mi,"hired"],[/.[aeiou]r?ried$/,Mi,"hurried"],[/[^aeiou]ard$/,Ji,"steward"],[/[aeiou][^aeiou]id$/,Hi,""],[/.[vrl]id$/,Hi,"livid"],[/..led$/,Mi,"hurled"],[/.[iao]sed$/,Mi,""],[/[aeiou]n?[cs]ed$/,Mi,""],[/[aeiou][rl]?[mnf]ed$/,Mi,""],[/[aeiou][ns]?c?ked$/,Mi,"bunked"],[/[aeiou]gned$/,Mi],[/[aeiou][nl]?ged$/,Mi],[/.[tdbwxyz]ed$/,Mi],[/[^aeiou][aeiou][tvx]ed$/,Mi],[/.[cdflmnprstv]ied$/,Mi,"emptied"]],e:[[/.[lnr]ize$/,Fi,"antagonize"],[/.[^aeiou]ise$/,Fi,"antagonise"],[/.[aeiou]te$/,Fi,"bite"],[/.[^aeiou][ai]ble$/,Hi,"fixable"],[/.[^aeiou]eable$/,Hi,"maleable"],[/.[ts]ive$/,Hi,"festive"],[/[a-z]-like$/,Hi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Hi,"cornish"],[/.v[iy]ch$/,Ri,"..ovich"],[/^ug?h+$/,Li,"ughh"],[/^uh[ -]?oh$/,Li,"uhoh"],[/[a-z]-ish$/,Hi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Ri,"polish-male"]],k:[[/^(k){2}$/,Li,"kkkk"]],l:[[/.[gl]ial$/,Hi,"familial"],[/.[^aeiou]ful$/,Hi,"fitful"],[/.[nrtumcd]al$/,Hi,"natal"],[/.[^aeiou][ei]al$/,Hi,"familial"]],m:[[/.[^aeiou]ium$/,Ji,"magnesium"],[/[^aeiou]ism$/,Ji,"schism"],[/^[hu]m+$/,Li,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Hi,"republican"],[/[^aeiou]ician$/,qi,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Li,"noooo"],[/^(yo)+$/,Li,"yoo"],[/^wo{2,}[pt]?$/,Li,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Ji],[/[^i]fer$/,Fi],[/.[^aeiou][ao]pher$/,qi],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Hi],[/[aeiou].*ist$/,Hi],[/^[a-z]et$/,Ki]],s:[[/.[^aeiou]ises$/,Si],[/.[rln]ates$/,Si],[/.[^z]ens$/,Ki],[/.[lstrn]us$/,Ji],[/.[aeiou]sks$/,Si],[/.[aeiou]kes$/,Si],[/[aeiou][^aeiou]is$/,Ji],[/[a-z]'s$/,Ui],[/^yes+$/,Li]],v:[[/.[^aeiou][ai][kln]ov$/,Ri]],y:[[/.[cts]hy$/,Hi],[/.[st]ty$/,Hi],[/.[tnl]ary$/,Hi],[/.[oe]ry$/,Ji],[/[rdntkbhs]ly$/,Wi],[/.(gg|bb|zz)ly$/,Hi],[/...lly$/,Wi],[/.[gk]y$/,Hi],[/[bszmp]{2}y$/,Hi],[/.[ai]my$/,Hi],[/[ea]{2}zy$/,Hi],[/.[^aeiou]ity$/,Ji]]};const _i="Verb",Zi="Noun";var Xi={leftTags:[["Adjective",Zi],["Possessive",Zi],["Determiner",Zi],["Adverb",_i],["Pronoun",_i],["Value",Zi],["Ordinal",Zi],["Modal",_i],["Superlative",Zi],["Demonym",Zi],["Honorific","Person"]],leftWords:[["i",_i],["first",Zi],["it",_i],["there",_i],["not",_i],["because",Zi],["if",Zi],["but",Zi],["who",_i],["this",Zi],["his",Zi],["when",Zi],["you",_i],["very","Adjective"],["old",Zi],["never",_i],["before",Zi],["a","Singular"],["the",Zi],["been",_i]],rightTags:[["Copula",Zi],["PastTense",Zi],["Conjunction",Zi],["Modal",Zi]],rightWords:[["there",_i],["me",_i],["man","Adjective"],["only",_i],["him",_i],["it",_i],["were",Zi],["took",Zi],["himself",_i],["went",Zi],["who",Zi],["jr","Person"]]},Yi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},es={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ts={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ns={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},rs={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const as=/^.([0-9]+)/;var os=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(as);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(as,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},ss=/^([0-9]+)/,ls=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ss);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ss,"")]}(n[0],n[1])}))};var us=function(e={}){return(e=Object.assign({},e)).rules=ls(e.rules),e.rules=is(e.rules),e.rev&&(e.rev=ls(e.rev),e.rev=is(e.rev)),e.exceptions=ls(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},cs=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const hs=us({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ds=us(ns),ms=us(es),ps=us(ts),gs=cs(hs),fs=cs(ds),vs=cs(ms),bs=cs(ps),ys=us(Yi),ws=us(rs);var ks={fromPast:hs,fromPresent:ds,fromGerund:ms,fromParticiple:ps,toPast:gs,toPresent:fs,toGerund:vs,toParticiple:bs,toComparative:ys,toSuperlative:ws,fromComparative:cs(ys),fromSuperlative:cs(ws)},Ps=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),As=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],js=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Ns[t].forEach((n=>e[n]=t)),e)),{});var Es=Ns,Is=function(e){let t=e.substring(e.length-3);if(!0===Es.hasOwnProperty(t))return Es[t];let n=e.substring(e.length-2);return!0===Es.hasOwnProperty(n)?Es[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ts={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Cs=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Is(e)),Ts.hasOwnProperty(e))c=Ts[e];else if("Participle"===n)c=os(l,i);else if("PastTense"===n)c=os(l,r);else if("PresentTense"===n)c=os(l,a);else{if("Gerund"!==n)return e;c=os(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ds=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:os(i,n),PresentTense:os(i,r),Gerund:os(i,a),FutureTense:"will "+e},u=os(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Os={toInfinitive:Cs,conjugate:Ds,all:function(e,t){let n=Ds(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},Gs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Vs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Bs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var zs=function(e){if(Bs.hasOwnProperty(e))return Bs[e];let t=Gs(e,Vs);return t||e+"ly"};const $s=function(e,t){const n=t.two.models.toSuperlative;return os(e,n)},Hs=function(e,t){const n=t.two.models.toComparative;return os(e,n)},Fs="ically",Ss=new Set(["analyt"+Fs,"chem"+Fs,"class"+Fs,"clin"+Fs,"crit"+Fs,"ecolog"+Fs,"electr"+Fs,"empir"+Fs,"frant"+Fs,"grammat"+Fs,"ident"+Fs,"ideolog"+Fs,"log"+Fs,"mag"+Fs,"mathemat"+Fs,"mechan"+Fs,"med"+Fs,"method"+Fs,"method"+Fs,"mus"+Fs,"phys"+Fs,"phys"+Fs,"polit"+Fs,"pract"+Fs,"rad"+Fs,"satir"+Fs,"statist"+Fs,"techn"+Fs,"technolog"+Fs,"theoret"+Fs,"typ"+Fs,"vert"+Fs,"whims"+Fs]),Js=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ms=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ws={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Ls=function(e){return e.endsWith("ly")?Ss.has(e)?e.replace(/ically/,"ical"):Ms.has(e)?null:Ws.hasOwnProperty(e)?Ws[e]:Gs(e,Js)||e:null};const qs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ks={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Us=new Set(["terrible","annoying"]);var Rs={toSuperlative:$s,toComparative:Hs,toAdverb:zs,toNoun:function(e){if(Ks.hasOwnProperty(e))return Ks[e];if(Us.has(e))return null;let t=Gs(e,qs);return t||e+"ness"},fromAdverb:Ls,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return os(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return os(e,n)},all:function(e,t){let n=[e];return n.push($s(e,t)),n.push(Hs(e,t)),n.push(zs(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Qs={noun:xs,verb:Os,adjective:Rs},_s={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Zs=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===_s.hasOwnProperty(i)&&_s[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},Xs=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!tl.find((t=>e.endsWith(t)))},rl={two:{quickSplit:Xs,expandLexicon:Zs,transform:Qs,looksPlural:nl}},al=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const ol=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var il=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=ol(n,"Infinitive","PastTense"),Object.assign(s,l),l=ol(r,"Infinitive","Verb"),Object.assign(s,l),l=ol(a,"Infinitive","Gerund"),Object.assign(s,l),l=ol(o,"Adjective","Superlative"),Object.assign(s,l),l=ol(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let sl={two:{models:ks}};const ll={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},ul=function(e,t){const n={model:t,methods:rl};let{lex:r,_multi:a}=rl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},cl=function(e,t,n){let r=Ds(e,sl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},hl=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=ll[o],"Noun|Verb"!==o&&"Person|Verb"!==o||cl(a,r,!1),"Adj|Present"===o&&(cl(a,r,!0),function(e,t,n){let r=$s(e,n);t[r]=t[r]||"Superlative";let a=Hs(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Cs(a,sl,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Cs(a,sl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=ul(n,t)};var dl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=ul(e.one.lexicon,e)).one.lexicon,e),e=hl(e.two.switches,e),e=il(e),e=al(e)};let ml={one:{_multiCache:{},lexicon:zo},two:{irregularPlurals:Po,models:ks,suffixPatterns:Gi,prefixPatterns:$i,endsWith:Qi,neighbours:Xi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:$o,clues:yi,uncountable:{},orgWords:Ps}};ml=dl(ml);var pl=ml;const gl=/^(under|over|mis|re|un|dis|semi)-?/;var fl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(gl.test(a.normal)){let e=a.normal.replace(gl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},vl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const bl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var yl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(nl(e.normal)?vl(e,"Plural","3-plural-guess"):vl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Is(e.normal);t&&vl(e,t,"3-verb-tense-guess")}}(r)};const wl=/^\p{Lu}[\p{Ll}'’]/u,kl=/[0-9]/,Pl=["Date","Month","WeekDay","Unit"],Al=/^[IVXLCDM]{2,}$/,jl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,xl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Nl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===wl.test(o)&&!1===kl.test(o)?Pl.find((e=>r.tags.has(e)))?null:(yl(e,t,n),r.tags.has("Noun")||r.tags.clear(),vl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Al.test(o)&&jl.test(o)&&!xl[r.normal]?(vl(r,"RomanNumeral","2-xvii"),!0):null};const El=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var Il=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=El(r.normal,n.two.suffixPatterns);if(null!==e)return vl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=El(r.implicit,n.two.suffixPatterns),null!==e))return vl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Tl=/['‘’‛‵′`´]/,Cl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return vl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Gl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Vl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Gl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Bl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},zl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var $l=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Vl(a)||Vl(o))return vl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Bl(a)||Bl(o))return vl(n,"Year","2-tagYear-close");if(zl(e[t-2])||zl(e[t+2]))return vl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return vl(n,"Year","2-tagYear-noun")}}}return null};const Hl=/^[A-Z]('s|,)?$/,Fl=/^[A-Z-]+$/,Sl=/([A-Z]\.)+[A-Z]?,?$/,Jl=/[A-Z]{2,}('s|,)?$/,Ml=/([a-z]\.)+[a-z]\.?$/,Wl={I:!0,A:!0};var Ll=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Fl.test(n)||n.length>5||Wl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Sl.test(n)&&!0!==Ml.test(n)&&!0!==Hl.test(n)&&!0!==Jl.test(n))}(r,n)?(r.tags.clear(),vl(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Wl.hasOwnProperty(r.text)&&Hl.test(r.text)?(r.tags.clear(),vl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(vl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Fl.test(r.text)&&r.text.length<=6?(vl(r,"Acronym","3-titlecase-acronym"),!0):null};const ql=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Kl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ul=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||ql(e[t-1],a),l=l||ql(e[t+1],o),l=l||Kl(e[t-1],r),l=l||Kl(e[t+1],i),l)return vl(s,l,"3-[neighbour]"),yl(e,t,n),e[t].confidence=.2,!0}return null};const Rl=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Ql=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Rl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Rl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},_l=function(e,t,n){0===e[t].tags.size&&(vl(e[t],"Noun","3-[fallback]"),yl(e,t,n),e[t].confidence=.1)};const Zl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Xl=(e,t,n)=>0!==t||e[1]?null:n,Yl={"Adj|Gerund":(e,t)=>Zl(e,t),"Adj|Noun":(e,t)=>Zl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Zl(e,t),"Adj|Present":(e,t)=>Zl(e,t),"Noun|Gerund":(e,t)=>Zl(e,t),"Noun|Verb":(e,t)=>Zl(e,t)||Xl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Zl(e,t)||Xl(e,t,"PresentTense"),"Person|Noun":(e,t)=>Zl(e,t),"Person|Verb":(e,t)=>0!==t?Zl(e,t):null};var eu=Yl;const tu="undefined"!=typeof process&&process.env?process.env:self.env||{},nu=/^(under|over|mis|re|un|dis|semi)-?/,ru=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&tu.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},au=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&tu.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var ou=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(nu.test(l)&&!o[l]&&(l=l.replace(nu,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=ru(e[t+1],n.afterWords);return o=o||ru(e[t-1],n.beforeWords),o=o||au(e[t-1],n.beforeTags,a),o=o||au(e[t+1],n.afterTags,a),o}(e,t,i[o],r);eu[o]&&(u=eu[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),yl(e,t,r)):tu.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},iu=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(vl(o,"Verb","3-[prefix]"),vl(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(vl(o,"Adjective","3-[prefix]"),vl(o,"Prefix","3-[prefix]")))};const su={tagSwitch:fl,checkSuffix:Il,checkRegex:Dl,checkCase:Nl,checkPrefix:Ol,checkHyphen:iu,checkYear:$l},lu={checkAcronym:Ll,neighbours:Ul,orgWords:Ql,nounFallback:_l,switches:ou},uu=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var mu=function(e){const t=e.world,n=Object.keys(du);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=xu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=ju},Eu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Iu=/'/;var Tu=function(e,t){let n=e[t].normal.split(Iu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Cu=/'/;var Du=function(e,t){let n=e[t].normal.split(Cu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Ou=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Gu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Vu={in:!0,by:!0,for:!0};var Bu=(e,t)=>{let n=e[t];if(Gu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Vu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const zu=/'/,$u=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Hu={d:(e,t)=>Du(e,t),t:(e,t)=>Ou(e,t),s:(e,t,n)=>Bu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Tu(e,t)},Fu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Su={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===zu.test(r[o].normal)&&([,i]=r[o].normal.split(zu));let s=null;Hu.hasOwnProperty(i)&&(s=Hu[i](r,o,t)),s&&(s=Fu(s,e),Eu(n,[a,o],s),$u(n[a],e,o,s.length))}}))}},Ju={compute:Su,api:Nu,hooks:["contractionTwo"]};const Mu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Wu=["i","we","they"];let Lu=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"[brand #Gerund?] new",tag:"Adverb",group:0,reason:"brand-new"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Mu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Mu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Mu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past%]",group:0,tag:"Adjective",reason:"do-not-be-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Wu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Wu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Wu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|well|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^[come on] #Noun",group:0,tag:"Expression",reason:"come-on"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),qu=null;var Ku={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;qu=qu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(qu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Uu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ku,model:{two:{matches:Lu}},hooks:["postTagger"]};var Ru=Uu,Qu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},_u=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Qu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Zu={lib:{lazy:_u}},Xu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},Yu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Xu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},ec={api:function(e){e.prototype.swap=Yu}};v.plugin(ku),v.plugin(Ju),v.plugin(Ru),v.plugin(Zu),v.plugin(ec);var tc=function(e){let t=this;return t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)"),"number"==typeof e&&(t=t.get(e)),t},nc=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r},rc=function(e){e.prototype.chunks=nc,e.prototype.clauses=tc};const ac={this:"Noun",then:"Pivot"};var oc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},mc={chunks:function(e){const{document:t,world:n}=e;oc(t),ic(t),uc(e,t,n),hc(t),dc(t)}},pc={compute:mc,api:rc,hooks:["chunks"]};const gc=/'s$/;var fc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(gc,""),e.normal=e.normal.replace(gc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const vc=/\(/,bc=/\)/,yc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(vc,"");let t=e[e.length-1];t.post=t.post.replace(bc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const kc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Pc=RegExp("("+Object.keys(kc).join("|")+")"),Ac=RegExp("("+Object.values(kc).join("|")+")"),jc=function(e,t){const n=e[t].pre.match(Pc)[0]||"";if(!n||!kc[n])return null;const r=kc[n];for(;t{e[0].pre=e[0].pre.replace(Pc,"");let t=e[e.length-1];t.post=t.post.replace(Ac,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Nc=/\./g;var Ec=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Nc,""),e.normal=e.normal.replace(Nc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Nc,""),e.normal=e.normal.replace(Nc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},Ic=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Tc=(e,t)=>"number"==typeof t?e.eq(t):e,Cc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Dc=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Cc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return Tc(this,e).map((e=>{let o=Cc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return Tc(this,e).map((e=>{let n=Cc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return Tc(this,e).map((e=>{let n=Cc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return Tc(this,e).map((e=>{let n=Cc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return Tc(this,e).map((e=>{let n=Cc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Tc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Tc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Tc(t,e),new Adjectives(t.document,t.pointer)}};const Oc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},Gc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let Vc=[["emojis","emoji"],["atmentions","atMentions"]];var Bc=function(e){Gc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Oc,Vc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},zc={api:function(e){Bc(e),fc(e),wc(e),xc(e),Dc(e),Ic(e),Ec(e)}};const $c=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Hc={case:e=>{$c(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;$c(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{$c(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{$c(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Fc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Sc="unicode|punctuation|whitespace|acronyms",Jc="|case|contractions|parentheses|quotations|emoji|honorifics",Mc={light:Fc(Sc),medium:Fc(Sc+Jc),heavy:Fc(Sc+Jc+"|possessives|adverbs|nouns|verbs")};var Wc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Mc[e]),Object.keys(e).forEach((t=>{Hc.hasOwnProperty(t)&&Hc[t](this,e[t])})),this}}},Lc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const qc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Kc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Rc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Uc(e,t),isSubordinate:Kc(e),root:t}};const Qc=e=>e.text(),_c=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Zc=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Xc=function(e){let t=Rc(e);return{root:Qc(t.root),number:Zc(t.number),determiner:Qc(t.determiner),adjectives:_c(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Yc={tags:!0};var eh=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Yc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Yc),e};const th={tags:!0};var nh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,th).tag("Singular","toPlural"),e};const rh=(e,t)=>"number"==typeof t?e.eq(t):e;var ah=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return rh(this,e).map(Rc)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Xc(t)),n}),[])}isPlural(e){let t=this.filter((e=>Rc(e).isPlural));return rh(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Rc(e).adjectives;n.found&&(t=t.concat(n))})),rh(t,e)}toPlural(e){return rh(this,e).map((e=>eh(e,Rc(e))))}toSingular(e){return rh(this,e).map((e=>{let t=Rc(e);return nh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Lc(this);return t=rh(t,e),new Nouns(this.document,t.pointer)}},oh={api:ah},ih=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},sh=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(lh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(lh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(lh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},ch=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const dh=/^([0-9,. ]+)\/([0-9,. ]+)$/,mh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},ph=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var gh=function(e){if(!0===mh.hasOwnProperty(e))return mh[e];if("a"===e||"an"===e)return 1;const t=sh(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=vh(n),r=vh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:vh(n);let a=r.text("reduced");return fh.test(a)&&(a=a.replace(fh,""),r=r.replaceWith(a)),r=bh.hasOwnProperty(a)?bh[a]:vh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:vh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},wh=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const kh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Ph=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Ah=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],jh=function(e){let t=[];if(e>100)return t;for(let n=0;n=kh[n][1]&&(e-=kh[n][1],t.push(kh[n][0]));return Ph[e]&&t.push(Ph[e]),t};var xh=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=wh(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Ah.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(jh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=wh(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Nh=function(e){return e.numerator&&e.denominator?`${xh({num:e.numerator})} out of ${xh({num:e.denominator})}`:""};const Eh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Ih=e=>{let t=xh(e).split(" "),n=t[t.length-1];return Eh.hasOwnProperty(n)?t[t.length-1]=Eh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Th=function(e){if(!e.numerator||!e.denominator)return"";let t=xh({num:e.numerator}),n=Ih({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Ch=(e,t)=>"number"==typeof t?e.eq(t):e;var Dh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Ch(this,e).map(yh)}get(e){return Ch(this,e).map(yh)}json(e){return Ch(this,e).map((t=>{let n=t.toView().json(e)[0],r=yh(t);return n.fraction=r,n}),[])}toDecimal(e){return Ch(this,e).forEach((e=>{let{decimal:t}=yh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return Ch(this,e).forEach((e=>{let t=yh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return Ch(this,e).forEach((e=>{let t=yh(e),n=Th(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return Ch(this,e).forEach((e=>{let t=yh(e),n=Nh(t);e.replaceWith(n)})),this}toPercentage(e){return Ch(this,e).forEach((e=>{let{decimal:t}=yh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=ih(this);return t=Ch(t,e),new Fractions(this.document,t.pointer)}};const Oh="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Gh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Oh+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Oh+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Oh+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Oh+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Oh})`),r=e.has("("+Oh+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Oh+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Oh+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},Vh=function(e){if("string"==typeof e)return{num:gh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=yh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=gh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Bh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=wh(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const zh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},$h={"%":"percent","°":"degrees"};var Hh=function(e){let t={suffix:"",prefix:e.prefix};return zh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+zh[e.prefix],t.prefix=""),$h.hasOwnProperty(e.suffix)&&(t.suffix+=" "+$h[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},Fh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Hh(e);return t+Ih(e)+n}if("Ordinal"===t)return e.prefix+Bh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Hh(e);return t+xh(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Sh=(e,t)=>"number"==typeof t?e.eq(t):e;var Jh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Sh(this,e).map(Vh)}get(e){return Sh(this,e).map(Vh).map((e=>e.num))}json(e){return Sh(this,e).map((t=>{let n=t.toView().json(e)[0],r=Vh(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=Vh(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Fh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=Vh(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Fh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Fh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Fh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Fh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>Vh(t).num===e))}greaterThan(e){return this.filter((t=>Vh(t).num>e))}lessThan(e){return this.filter((t=>Vh(t).num{let r=Vh(n).num;return r>e&&r{let n=Vh(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Fh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=Vh(e).num);let t=this.map((t=>{let n=Vh(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Fh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Gh(this);return t=Sh(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Gh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=Sh(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Gh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=Sh(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Mh={api:function(e){Dh(e),Jh(e)}};const Wh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Lh=function(e={}){return!1!==(e=Object.assign({},Wh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},qh={api:function(e){e.prototype.redact=Lh}};var Kh=qh,Uh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},Rh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};const Qh=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}};var _h=function(e){let t=e.clauses(),n=Rh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o,grammar:Qh(a)}},Zh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Xh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},Yh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},ed=function(e){return e.verbs().toInfinitive(),e};const td=(e,t)=>"number"==typeof t?e.eq(t):e;var nd=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o,grammar:i}=_h(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal"),grammar:i},n}),[])}toPastTense(e){return td(this,e).map((e=>(_h(e),Zh(e))))}toPresentTense(e){return td(this,e).map((e=>(_h(e),Xh(e))))}toFutureTense(e){return td(this,e).map((e=>(_h(e),e=Yh(e))))}toInfinitive(e){return td(this,e).map((e=>(_h(e),ed(e))))}toNegative(e){return td(this,e).map((e=>(_h(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return td(this,e).map((e=>(_h(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return td(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return td(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=td(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Uh(this);return td(t,e)}};Object.assign(e.prototype,t)},rd={api:nd},ad=function(e){return e.match("#Honorific+? #Person+")},od=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const id="male",sd="female",ld={mr:id,mrs:sd,miss:sd,madam:sd,king:id,queen:sd,duke:id,duchess:sd,baron:id,baroness:sd,count:id,countess:sd,prince:id,princess:sd,sire:id,dame:sd,lady:sd,ayatullah:id,congressman:id,congresswoman:sd,"first lady":sd,mx:null};var ud=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return sd;if(n.has("#MaleName"))return id;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),ld.hasOwnProperty(e))return ld[e];if(/^her /.test(e))return sd;if(/^his /.test(e))return id}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return id;if(n&&!t)return sd}return null};const cd=(e,t)=>"number"==typeof t?e.eq(t):e;var hd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return cd(this,e).map(od)}json(e){return cd(this,e).map((t=>{let n=t.toView().json(e)[0],r=od(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:ud(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=ad(this);return t=cd(t,e),new People(this.document,t.pointer)}},dd=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},md=function(e){e.prototype.places=function(t){let n=dd(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},pd=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const gd=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var fd=function(e){e.prototype.topics=gd},vd={api:function(e){hd(e),md(e),pd(e),fd(e)}},bd=function(e){let t=e.match("");return t=t.not("(#Conjunction && !to)"),t=t.not("#Preposition"),t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0),t=t.not("#Reflexive$"),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t},yd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},wd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const kd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Pd=function(e){return e.match("#Negative")},Ad=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var jd=function(e){let t=e.clone();t.contractions().expand();const n=yd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:wd(t,n),auxiliary:kd(t,n),negative:Pd(t),phrasal:Ad(n)}};const xd={tense:"PresentTense"},Nd={conditional:!0},Ed={tense:"FutureTense"},Id={progressive:!0},Td={tense:"PastTense"},Cd={complete:!0,progressive:!1},Dd={passive:!0},Od=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Gd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[xd]],["^wanted to #Infinitive$",[Td]],["^will want to #Infinitive$",[Ed]]],"gerund-phrase":[["^#PastTense #Gerund$",[Td]],["^#PresentTense #Gerund$",[xd]],["^#Infinitive #Gerund$",[xd]],["^will #Infinitive #Gerund$",[Ed]],["^have #PastTense #Gerund$",[Td]],["^will have #PastTense #Gerund$",[Td]]],"simple-present":[["^#PresentTense$",[xd]],["^#Infinitive$",[xd]]],"simple-past":[["^#PastTense$",[Td]]],"simple-future":[["^will #Adverb? #Infinitive",[Ed]]],"present-progressive":[["^(is|are|am) #Gerund$",[xd,Id]]],"past-progressive":[["^(was|were) #Gerund$",[Td,Id]]],"future-progressive":[["^will be #Gerund$",[Ed,Id]]],"present-perfect":[["^(has|have) #PastTense$",[Td,Cd]]],"past-perfect":[["^had #PastTense$",[Td,Cd]],["^had #PastTense to #Infinitive",[Td,Cd]]],"future-perfect":[["^will have #PastTense$",[Ed,Cd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Td,Id]]],"past-perfect-progressive":[["^had been #Gerund$",[Td,Id]]],"future-perfect-progressive":[["^will have been #Gerund$",[Ed,Id]]],"passive-past":[["(got|were|was) #Passive",[Td,Dd]],["^(was|were) being #Passive",[Td,Dd]],["^(had|have) been #Passive",[Td,Dd]]],"passive-present":[["^(is|are|am) #Passive",[xd,Dd]],["^(is|are|am) being #Passive",[xd,Dd]],["^has been #Passive",[xd,Dd]]],"passive-future":[["will have been #Passive",[Ed,Dd,Nd]],["will be being? #Passive",[Ed,Dd,Nd]]],"present-conditional":[["would be #PastTense",[xd,Nd]]],"past-conditional":[["would have been #PastTense",[Td,Nd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Ed]]],"auxiliary-past":[["^did #Infinitive$",[Td,{plural:!1}]],["^used to #Infinitive$",[Td,Cd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[xd,Cd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Td]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Vd=[];Object.keys(Gd).map((e=>{Gd[e].forEach((t=>{Vd.push({name:e,match:t[0],data:Od(t[1])})}))}));var Bd=Vd,zd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),$d(r)&&(n.remove(r),r=n.last()),$d(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Hd(t,e)}};const Sd=e=>e,Jd=(e,t)=>{let n=Fd(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Md=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Fd(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Wd=function(e,t){let n=Fd(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Ld=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},qd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Ld(e)),r&&e.replace(t.root,r),e},Kd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Ud=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Rd=function(e){return e&&e.isView?e.text("normal"):""},Qd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Ld(e))};var _d=function(e){let t=jd(e);e=e.clone().toView();const n=zd(e,t);return{root:t.root.text(),preAdverbs:Ud(t.adverbs.pre),postAdverbs:Ud(t.adverbs.post),auxiliary:Rd(t.auxiliary),negative:t.negative.found,prefix:Rd(t.prefix),infinitive:Qd(t.root),grammar:n}};const Zd={tags:!0};var Xd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Ld(r)),i&&e.replace(r,i,Zd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Wd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Yd={tags:!0},em={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Ld(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Fd(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Yd),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=em.simple(e,t),e=em.noAux(e,t))},hasHad:e=>(e.replace("has","had",Yd),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Ld(a)),n(o,e.model).Participle}},tm={infinitive:em.simple,"simple-present":em.simple,"simple-past":Sd,"simple-future":em.both,"present-progressive":e=>(e.replace("are","were",Yd),e.replace("(is|are|am)","was",Yd),e),"past-progressive":Sd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":em.hasHad,"past-perfect":Sd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Kd(e)),e.remove("have"),e),"present-perfect-progressive":em.hasHad,"past-perfect-progressive":Sd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Yd),e),"passive-past":e=>(e.replace("have","had",Yd),e),"passive-present":e=>(e.replace("(is|are)","was",Yd),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Yd),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Sd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Yd),e),"auxiliary-past":Sd,"auxiliary-present":e=>(e.replace("(do|does)","did",Yd),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Yd):(em.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Sd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Yd),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),em.simple(e,t),Kd(e),e)};var nm=function(e,t,n){return tm.hasOwnProperty(n)?((e=tm[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const rm={tags:!0},am=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Ld(a)),!1===Jd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Md(e)),o&&(e=e.replace(a,o,rm)).not("#Particle").tag("PresentTense"),e},om=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Ld(a)),!1===Jd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,rm)).not("#Particle").tag("Gerund"),e},im={infinitive:am,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return am(e,t);{let t=Fd(e).subject;if(Jd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,rm)}return e},"simple-past":am,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Md(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else am(e,t),e=e.remove("will");return e},"present-progressive":Sd,"past-progressive":(e,t)=>{let n=Md(e);return e.replace("(were|was)",n,rm)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(am(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Fd(e).subject;return Jd(e)||n.has("i")?((e=qd(e,t)).remove("had"),e):(e.replace("had","has",rm),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Sd,"past-perfect-progressive":e=>e.replace("had","has",rm),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Md(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,rm),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Sd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Sd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(om(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Wd(e);return e.replace(t.auxiliary,n),e}return om(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Sd,"modal-infinitive":Sd,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Ld(r)),a&&(e=e.replace(t.root,a,rm))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),am(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Jd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,rm),e.remove("will"),e}};var sm=function(e,t,n){return im.hasOwnProperty(n)?((e=im[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const lm={tags:!0},um=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Ld(r)),o&&(e=e.replace(r,o,lm)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},cm=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Ld(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,lm),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},hm={infinitive:um,"simple-present":um,"simple-past":um,"simple-future":Sd,"present-progressive":cm,"past-progressive":cm,"future-progressive":Sd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Sd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Sd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Sd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Sd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Sd,"modal-past":Sd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),um(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var dm=function(e,t,n){return e.has("will")||e.has("going to")?e:hm.hasOwnProperty(n)?((e=hm[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const mm={tags:!0};var pm=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Ld(a));let s=r(i,e.model).Gerund;return s&&(s=`${Md(e)} ${s}`,e.replace(a,s,mm)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const gm={tags:!0},fm=function(e,t){let n=Wd(e);return e.prepend(n+" not"),e},vm=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},bm=e=>e.has("(is|was|am|are|will|were|be)"),ym={"simple-present":(e,t)=>!0===bm(e)?vm(e):(e=qd(e,t),e=fm(e)),"simple-past":(e,t)=>!0===bm(e)?vm(e):((e=qd(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===bm(e)?vm(e):fm(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",gm),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=fm(e)).replace("wants","want",gm)};var wm=function(e,t,n){if(e.has("#Negative"))return e;if(ym.hasOwnProperty(n))return e=ym[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===bm(e)?vm(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const km=(e,t)=>"number"==typeof t?e.eq(t):e;var Pm=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return km(this,e).map(jd)}json(e,t){let n=km(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=_d(t),n}),[]);return n}subjects(e){return km(this,e).map((e=>(jd(e),Fd(e).subject)))}adverbs(e){return km(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return km(this,e).filter((e=>!0!==Fd(e).plural))}isPlural(e){return km(this,e).filter((e=>!0===Fd(e).plural))}isImperative(e){return km(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return km(this,e).map((e=>{let t=jd(e),n=zd(e,t);return Xd(e,t,n.form)}))}toPresentTense(e){return km(this,e).map((e=>{let t=jd(e),n=zd(e,t);return sm(e,t,n.form)}))}toPastTense(e){return km(this,e).map((e=>{let t=jd(e),n=zd(e,t);return nm(e,t,n.form)}))}toFutureTense(e){return km(this,e).map((e=>{let t=jd(e),n=zd(e,t);return dm(e,t,n.form)}))}toGerund(e){return km(this,e).map((e=>{let t=jd(e),n=zd(e,t);return pm(e,t,n.form)}))}conjugate(e){return km(this,e).map((e=>{let t=jd(e),n=zd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Xd(e.clone(),t,n.form).text("normal"),PastTense:nm(e.clone(),t,n.form).text("normal"),PresentTense:sm(e.clone(),t,n.form).text("normal"),FutureTense:dm(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return km(this,e).map((e=>{let t=jd(e),n=zd(e,t);return wm(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=bd(this);return t=km(t,e),new Verbs(this.document,t.pointer)}},Am={api:Pm};return v.plugin(pc),v.plugin(zc),v.plugin(Wc),v.plugin(oh),v.plugin(Mh),v.plugin(Kh),v.plugin(rd),v.plugin(vd),v.plugin(Am),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/one/compromise-one.cjs b/builds/one/compromise-one.cjs index a04251cd7..117ef161f 100644 --- a/builds/one/compromise-one.cjs +++ b/builds/one/compromise-one.cjs @@ -1 +1 @@ -var t,e;t=this,e=function(){var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach((r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)})):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n=e,r={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2]))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var i=o;const s=Object.assign({},i,n,r);s.get=s.eq;var l=s;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach((t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})})),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map((t=>t.map((t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)))));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,l);var a=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function u(t,e){if(c(e))for(const n in e)c(e[n])?(t[n]||Object.assign(t,{[n]:{}}),u(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}var h=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&u(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.exceptions[t]=e[t].pastTense),n.fromPast&&(n.fromPast.exceptions[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.exceptions[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.exceptions[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.exceptions[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.exceptions[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.exceptions[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.exceptions[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[e[t].superlative]=t))}))}(i,t.irregulars),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach((e=>r[e]=t.lib[e])),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const f=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var p=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t)return new e(r.one.tokenize.fromString(t,n));if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(f(t)){if(f(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=function(t){return t.map((t=>t.terms.map((t=>(f(t.tags)&&(t.tags=new Set(t.tags)),t)))))}(t);return new e(n)}return o};let d=Object.assign({},t);const m=function(t,e){e&&m.addWords(e);let n=p(t,a,d);return t&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(t,e){const{compute:n}=this._world;e&&m.addWords(e);let r=p(t,a,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(t){return h(t,this._world,a,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},m.version="14.5.2";var w=m,y=function(t){let e=t.map((t=>{let e=new Set;return t.forEach((t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach((t=>e.add(t)));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),E=(t,e,n)=>{if(n.forEach((t=>t.dirty=!0)),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},O=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},k=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},P=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?O(n):(O(n),O([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!j(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(t=>t.toUpperCase()));let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||j(o.text)&&o.text.length>1&&(o.text=o.text.replace(/^\p{Lu}/u,(t=>t.toLowerCase())))}(t,i,n),E(t,i,n)};let _=0;const S=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var A=function(t){let[e,n]=t.index||[0,0];_+=1,_=_>46655?0:_,e=e>46655?0:e,n=n>1294?0:n;let r=S(_.toString(36));r+=S(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const $=function(t){t.has("@hasContraction")&&"function"==typeof t.contractions&&t.grow("@hasContraction").contractions().expand()},T=t=>"[object Array]"===Object.prototype.toString.call(t),C=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]||[]:T(t)?T(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=A(t),t)))}(f),n?($(e.update([c]).firstTerm()),P(h,c,f,r)):($(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)})),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(L,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let o=this.update(n);n=n.map((t=>t.slice(0,3)));let i=(o.docs[0]||[]).map((t=>Array.from(t.tags)));r.insertAfter(t),o.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach(((t,e)=>{t.tagSafe(i[e])})),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),s},replace:function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this}};var q=V,F=function(t,e){e.forEach((e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))}));for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const G={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=F(this.document,i);return o=function(t,e){return t=t.map((t=>{let[n]=t;return e[n]?(e[n].forEach((e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)})),t):t})),t.forEach(((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0))).map((t=>(t[3]=null,t[4]=null,t)))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};G.delete=G.remove;var D=G;const B={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t})),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t})),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")}))})),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach((e=>{e.forEach((e=>{t.test(e.post)&&(e.post=" ")}))})),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this}};B.deHyphenate=B.dehyphenate,B.toQuotation=B.toQuotations;var U=B,M={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach((t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1})),t.sort(((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0})),t}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),R=new Set(["freq","frequency","topk","repeats"]),I=new Set(["alpha","alphabetical"]);var Q={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return W.has(t)&&(t="sequential"),I.has(t)&&(t="alpha"),R.has(t)?(o=M.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof M[t]?(o=o.sort(M[t]),this.update(o.map((t=>t.pointer)))):this}};const Z=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var H={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return E(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach((e=>{e[0]+=t.document.length})),t.document=Z(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=Z(this.document,t);return this.document=e,this.all()}var o;return this}},K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map((t=>t.slice(0,3))),this.ptrs=t),this}};const J=Object.assign({},{toLowerCase:function(){return this.termList().forEach((t=>{t.text=t.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((t=>{t.text=t.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))),n!==t.length-1&&(e.post="")}))})),this}},N,q,D,U,Q,H,K);var X=function(t){Object.assign(t.prototype,J)};const Y={id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t))),n[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const rt=/'/,ot=new Set(["what","how","when","where","why"]),it=new Set(["be","go","start","think","need"]),st=new Set(["been","gone"]);var lt=function(t,e){let n=t[e].normal.split(rt)[0];if(ot.has(n))return[n,"did"];if(t[e+1]){if(st.has(t[e+1].normal))return[n,"had"];if(it.has(t[e+1].normal))return[n,"would"]}return null},at=function(t,e){return"ain't"===t[e].normal||"aint"===t[e].normal?null:[t[e].normal.replace(/n't/,""),"not"]};const ct=/'/;var ut=(t,e)=>["je",t[e].normal.split(ct)[1]],ht=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ft=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,dt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,gt=/^[0-9]{3}-[0-9]{4}$/;var mt=function(t,e){let n=t[e],r=n.text.match(pt);return null!==r?!0===n.tags.has("PhoneNumber")||gt.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(dt),null!==r?[r[1],"to",r[4]]:null)};const wt=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,yt=new Set(["st","nd","rd","th","am","pm","max"]);var bt=function(t,e){let n=t[e].text.match(wt);if(null!==n){let t=n[2].toLowerCase().trim();return yt.has(t)?null:[n[1],t]}return null};const vt=/'/,xt=/^[0-9][^-–—]*[-–—].*?[0-9]/,jt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]]},Et={t:(t,e)=>at(t,e),d:(t,e)=>lt(t,e)},Ot={j:(t,e)=>ut(t,e),l:(t,e)=>ht(t,e),d:(t,e)=>ft(t,e)},kt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===vt.test(r[l].normal)&&([a,c]=r[l].normal.split(vt));let u=kt(i,r[l],a,c);!u&&Et.hasOwnProperty(c)&&(u=Et[c](r,l,e)),!u&&Ot.hasOwnProperty(a)&&(u=Ot[a](r,l)),u?(u=Pt(u,t),nt(n,[s,l],u),jt(n[s],t,l,u.length)):xt.test(r[l].normal)?(u=mt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),jt(n[s],t,l,u.length))):(u=bt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}}))},St={model:et,compute:{contractions:_t},hooks:["contractions"]},At=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t)));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===$t.test(a)){let t=a.replace($t,"");if(s.hasOwnProperty(t)&&t.length>3&&Tt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null},zt={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}},Lt={addWords:function(t){const e=this.world(),{methods:n,model:r}=e;if(t)if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},Vt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Nt}},compute:zt,lib:Lt,hooks:["lexicon"]},qt=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map((t=>t.text.toLowerCase()))}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const Ft=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const Bt=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1),t;return t};var Ut=function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Bt(t.goNext,void 0),t.failTo=Bt(t.failTo,0),t.endAs=Bt(t.endAs,null),t};const Mt={buildTrie:function(t){const e=qt(t,this.world());return Ut(e)}};Mt.compile=Mt.buildTrie;var Wt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:qt(t,this.world));var r;let o=Dt(this,n,e);return o=o.settle(),o}},lib:Mt};const Rt=function(t,e){return e?(t.forEach((t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])})),t):t},It=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Rt(n,e),Object.keys(r).forEach((t=>{r[t]=Rt(r[t],e)})),{ptrs:n,byGroup:r}},Qt=t=>"[object Object]"===Object.prototype.toString.call(t),Zt=t=>t&&Qt(t)&&!0===t.isView,Ht=t=>t&&Qt(t)&&!0===t.isNet,Kt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Jt={matchOne:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t).eq(0);if(Ht(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t);if(Ht(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Kt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Zt(t))return t.fullPointer.length>0;if(Ht(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.filter((e=>e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Zt(t))return this.filter((e=>!e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Kt(t,n,this.world);let i=this._cache||[],s=this.filter(((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length}));return this._cache&&(s._cache=s.ptrs.map((t=>i[t[0]]))),s}},Xt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?1:-1))[0];e[1]>0&&o.push([e[0],0,e[1]])}));let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?-1:1))[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}})),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach(((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}})),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Yt=function(t,e){return[t[0],t[1],e[2]]},te=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},ee=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},ne={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Yt(t.match,t.after)):(i.push(t.match),i.push(t.after))})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(Yt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)}};ne.split=ne.splitAfter;var re=ne;const oe=Object.assign({},Jt,Xt,re);oe.lookBehind=oe.before,oe.lookBefore=oe.before,oe.lookAhead=oe.after,oe.lookAfter=oe.after,oe.notIf=oe.ifNo;var ie=function(t){Object.assign(t.prototype,oe)};const se=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,le=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ae=/ /g,ce=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),ue=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))};var he=function(t){let e=t.split(se),n=[];e.forEach((t=>{ce(t)?n.push(t):n=n.concat(t.split(le))})),n=ue(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ce(t)?r.push(t):r=r.concat(t.split(ae))})),r=ue(r),r};const fe=/\{([0-9]+)?(, *[0-9]*)?\}/,pe=/&&/,de=new RegExp(/^<\s*(\S+)\s*>/),ge=t=>t.charAt(0).toUpperCase()+t.substring(1),me=t=>t.charAt(t.length-1),we=t=>t.charAt(0),ye=t=>t.substring(1),be=t=>t.substring(0,t.length-1),ve=function(t){return t=ye(t),t=be(t)},xe=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===me(t)&&(n.end=!0,t=be(t)),"^"===we(t)&&(n.start=!0,t=ye(t)),("["===we(t)||"]"===me(t))&&(n.group=null,"["===we(t)&&(n.groupStart=!0),"]"===me(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===we(t))){const e=de.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===me(t)&&(n.greedy=!0,t=be(t)),"*"!==t&&"*"===me(t)&&"\\*"!==t&&(n.greedy=!0,t=be(t)),"?"===me(t)&&(n.optional=!0,t=be(t)),"!"===we(t)&&(n.negative=!0,t=ye(t)),"~"===we(t)&&"~"===me(t)&&t.length>2&&(t=ve(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===we(t)&&")"===me(t)){pe.test(t)?(n.choices=t.split(pe),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ye(n.choices[0]);let r=n.choices.length-1;n.choices[r]=be(n.choices[r]),n.choices=n.choices.map((t=>t.trim())),n.choices=n.choices.filter((t=>t)),n.choices=n.choices.map((t=>t.split(/ /g).map((t=>xe(t,e))))),t=""}if("/"===we(t)&&"/"===me(t))return t=ve(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===we(t)&&"}"===me(t)){if(t=ve(t),n.id=t,n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.num=t[2])}return n}if("<"===we(t)&&">"===me(t))return t=ve(t),n.chunk=ge(t),n.greedy=!0,n;if("%"===we(t)&&"%"===me(t))return t=ve(t),n.switch=t,n}return!0===fe.test(t)&&(t=t.replace(fe,((t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===we(t)?(n.tag=ye(t),n.tag=ge(n.tag),n):"@"===we(t)?(n.method=ye(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var je=xe;const Ee=/[a-z0-9][-–—][a-z]/i;var Oe=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&Ee.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter((t=>t)).reverse(),t.splice(e,1),o.forEach((n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)}))}}return t};const ke=function(t,e){let{all:n}=e.methods.two.transform.verb||{},r=t.root;return n?n(r,e.model):[]},Pe=function(t,e){let{all:n}=e.methods.two.transform.noun||{};return n?n(t.root,e.model):[t.root]},_e=function(t,e){let{all:n}=e.methods.two.transform.adjective||{};return n?n(t.root,e.model):[t.root]};var Se=function(t,e){return t=t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform){let n=[];t.pos?"Verb"===t.pos?n=n.concat(ke(t,e)):"Noun"===t.pos?n=n.concat(Pe(t,e)):"Adjective"===t.pos&&(n=n.concat(_e(t,e))):(n=n.concat(ke(t,e)),n=n.concat(Pe(t,e)),n=n.concat(_e(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t}))},Ae=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach((e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)})),t)))}(t=t.map((t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every((t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method}))&&(t.fastOr=new Set,t.choices.forEach((e=>{t.fastOr.add(e[0].word)})),delete t.choices)}return t}))),t},$e=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=he(t);return r=r.map((t=>je(t,e))),r=Oe(r,n),r=Se(r,n),r=Ae(r),r};const Te=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var Ce=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),Ge=(t,e)=>-1!==t.pre.indexOf(e),De={hasQuote:t=>Ne.test(t.pre)||Le.test(t.post),hasComma:t=>Fe(t,","),hasPeriod:t=>!0===Fe(t,".")&&!1===Fe(t,"..."),hasExclamation:t=>Fe(t,"!"),hasQuestionMark:t=>Fe(t,"?")||Fe(t,"¿"),hasEllipses:t=>Fe(t,"..")||Fe(t,"…")||Ge(t,"..")||Ge(t,"…"),hasSemicolon:t=>Fe(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>Ve.test(t.post)||Ve.test(t.pre),hasDash:t=>qe.test(t.post)||qe.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};De.hasQuotation=De.hasQuote;var Be=De;let Ue=function(){};Ue=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(ze(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some((t=>t===e.word)))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof Be[e.method]&&!0===Be[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.pos&&!t.tags.has(e.pos)?null:e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Ue(t,e,n,r))):e.choices.some((e=>Ue(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};var Me=Ue;const We=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max?(t.t=t.t+n.max,!0):(!0===t.hasGroup&&(Re(t,t.t).length=r-t.t),t.t=r,!0)};const Qe=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Me(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every(((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Me(t.terms[r],e,r,t.phrase_length)}));return!0===r&&n.length>e&&(e=n.length),r}))&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup&&(Re(t,t.t).length+=r),!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null},Ke=function(t,e,n){let r=0;for(let o=t.t;or||(t.t+=r,0))},Je=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,Me(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];n&&(Me(t.terms[t.t],n,t.start_i+t.t,t.phrase_length)?t.r+=1:n.optional&&e[t.r+2]&&Me(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2))}return n.greedy?Ke(t,r,e[t.r+1]):(t.t+=1,!0)},Xe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Me(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Me(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}},Ye=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null},tn=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}},en=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;return!!(n.optional&&e[t.r+1]&&n.negative)||(n.optional&&e[t.r+1]&&Xe(t),r.implicit&&t.terms[t.t+1]&&tn(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ye(t)?(!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Re(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0):null)},nn=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional)))break;return null}if(!0!==t.anything||!0!==t.greedy){if(void 0===t.choices||"or"!==t.operator){if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything){if(!0!==We(t,o)){if(t.negative){if(!Je(o))return null}else if(!0!==Me(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else if(!en(o))return null}else if(!en(o))return null}else{if(t.negative&&t.anything)return null;if(!en(o))return null}else if(!He(o))return null}else if(!Ze(o))return null}else if(!Ie(o))return null}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach((t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]})),{pointer:i,groups:s}},rn=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach((t=>{t.groups[e]&&n.push(t.groups[e])})):t.forEach((t=>{n.push(t.pointer),Object.keys(t.groups).forEach((e=>{r[e]=r[e]||[],r[e].push(t.groups[e])}))}))),{ptrs:n,byGroup:r}};const on=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach((n=>{t.groups[n][0]=e})),t},sn=function(t,e,n){let r=nn(t,e,0,t.length);return r?(r=on(r,n),r):null};var ln=function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter((t=>!0!==t.optional&&!0!==t.negative)).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=sn(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter((e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]}))),s=rn(s,o),s.ptrs.forEach((e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id})),s},an={api:ie,methods:{one:{termMethods:Be,parseMatch:$e,match:ln}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const cn=/^\../,un=/^#./,hn=function(t,e){let n={},r={};return Object.keys(e).forEach((o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),cn.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach((t=>{if(t.every((t=>t.implicit)))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)}))})),{starts:n,ends:r}};var fn={html:function(t){let{starts:e,ends:n}=hn(this,t),r="";return this.docs.forEach((t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(dn,""),mn.test(o)&&(o=" "),o=o.replace(gn,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(dn,""),o="-"===o?" ":o.replace(pn,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&wn.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},bn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};bn.clean=bn.normal,bn.reduced=bn.root;var vn=bn;let xn=[],jn=0;for(;jn<64;)xn[jn]=0|4294967296*Math.sin(++jn%Math.PI);function En(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(jn=s=0;jn>4]+xn[s]+~~i[jn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const On={text:!0,terms:!0};let kn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Pn=function(t,e){return Object.assign({},t,e)},_n={text:t=>yn(t,{keepPunct:!0},!1),normal:t=>yn(t,Pn(vn.normal,{keepPunct:!0}),!1),implicit:t=>yn(t,Pn(vn.implicit,{keepPunct:!0}),!1),machine:t=>yn(t,kn,!1),root:t=>yn(t,Pn(kn,{form:"root"}),!1),hash:t=>En(yn(t,{keepPunct:!0},!1)),offset:t=>{let e=_n.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map((t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e})),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some((t=>!0===t.dirty))};_n.sentences=_n.sentence,_n.clean=_n.normal,_n.reduced=_n.root;const Sn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},On,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&_n[i]&&(o[i]=_n[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};Sn.data=Sn.json;var An=Sn,$n=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach((t=>{console.groupCollapsed(t.text());let e=t.docs[0].map((t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}}));console.table(e,["text","tags"]),console.groupEnd()}))};const Tn="";var Cn={green:t=>""+t+Tn,red:t=>""+t+Tn,blue:t=>""+t+Tn,magenta:t=>""+t+Tn,cyan:t=>""+t+Tn,yellow:t=>""+t+Tn,black:t=>""+t+Tn,dim:t=>""+t+Tn,i:t=>""+t+Tn},zn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(Cn.blue("\n ──────")),e.forEach((t=>{console.log(Cn.blue("\n ┌─────────")),t.forEach((t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=Cn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=Cn.blue(" │ ")+Cn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map((t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return Cn[n](t)}))),t.join(", ")}(e,n);console.log(i)}))}))},Nn=function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(Cn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(Cn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(Cn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(Cn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")}))},Ln=function(t){if(!t.found)return;let e={};t.fullPointer.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),Object.keys(e).forEach((n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach(((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${Cn.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)}))},Vn=function(t={}){let e=this;if("string"==typeof t){let e={};e[t]=!0,t=e}return"undefined"!=typeof window&&window.document?($n(e),e):(!1!==t.tags&&(zn(e),console.log("\n")),!0===t.chunks&&(Nn(e),console.log("\n")),!0===t.highlight&&(Ln(e),console.log("\n")),e)};const qn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var Fn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach((r=>{t.match(r).fullPointer.forEach((t=>{n[t[3]]={fn:e[r],end:t[2]}}))})),n}(t,e),r="";return t.docs.forEach(((e,o)=>{for(let i=0;it.reduce(((t,e)=>t+e.pre+e.text+e.post),"").trim()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.sort(((t,e)=>t.count>e.count?-1:0))}(this.json({normal:!0}).map((t=>t.normal)));if("terms"===t){let t=[];return this.docs.forEach((e=>{let n=e.terms.map((t=>t.text));n=n.filter((t=>t)),t=t.concat(n)})),t}return"tags"===t?this.docs.map((t=>t.reduce(((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t)),{}))):"debug"===t?this.debug():this.text()}};var Dn=Gn,Bn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&vn.hasOwnProperty(t)?e=Object.assign({},vn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},In=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e};var Qn=function(t,e){let n=In(e),r=[];return t.forEach((t=>{let[e]=t,o=n[e]||[];if(o=o.filter((e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e))),0===o.length)return void r.push({passthrough:t});o=o.sort(((t,e)=>t[1]-e[1]));let i=t;o.forEach(((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)}))})),r},Zn=function(t,e){let n=[];return t.forEach(((r,o)=>{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<20;r+=1){if(e[n-r]){let o=e[n-r].findIndex((e=>e.id===t));if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex((e=>e.id===t));if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex((t=>t.id===o));return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))})),n=n.filter((t=>t.length>0)),n},Hn={one:{termList:function(t){let e=[];for(let n=0;n{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter((e=>Rn(t,e)));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach((t=>{t[1]n&&(n=t[2])})),[t[0][0],e,n]}(n);o.push(i)})),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)})),n},Xn=function(t,e){let n=In(e),r=[];return t.forEach((t=>{let e=n[t[0]]||[];e=e.filter((e=>Rn(t,e))),0!==e.length&&e.forEach((e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},tr=function(t,e){return t.map((t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t}))},er={union:function(t){t=Yn(t,this);let e=Kn(this.fullPointer,t.fullPointer);return e=tr(e,this.document),this.toView(e)}};er.and=er.union,er.intersection=function(t){t=Yn(t,this);let e=Xn(this.fullPointer,t.fullPointer);return e=tr(e,this.document),this.toView(e)},er.not=function(t){t=Yn(t,this);let e=Jn(this.fullPointer,t.fullPointer);return e=tr(e,this.document),this.toView(e)},er.difference=er.not,er.complement=function(){let t=this.all(),e=Jn(t.fullPointer,this.fullPointer);return e=tr(e,this.document),this.toView(e)},er.settle=function(){let t=this.fullPointer;return t.forEach((e=>{t=Kn(t,[e])})),t=tr(t,this.document),this.update(t)};var nr=function(t){Object.assign(t.prototype,er)},rr={methods:Hn,api:nr},or=function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t}));let s=i.map((t=>t.pointer));return i=i.map((t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t))),{view:this.update(s),found:i}}};const ir=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var sr=function(t,e){const n=e.methods.one.parseMatch;return t.forEach((t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach((t=>{e.push(ir(t)),"and"===t.operator&&t.choices&&t.choices.forEach((t=>{t.forEach((t=>{e.push(ir(t))}))}))})),e.filter((t=>t))}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach((t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach((t=>{e.push(t)})),t.choices&&t.choices.forEach((t=>{t.forEach((t=>{let n=ir(t);n&&e.push(n)}))})),n+=1)})),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter((t=>!t.optional)).length})),t},lr=function(t,e){t=sr(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=n[e]||[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=n[e]||[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>!e[t.match]&&(e[t.match]=!0,!0)))}));let r=t.filter((t=>0===t.needs.length&&0===t.wants.length));return{hooks:n,always:r}},ar=function(t,e){return t.map(((n,r)=>{let o=[];Object.keys(e).forEach((n=>{t[r].has(n)&&(o=o.concat(e[n]))}));let i={};return o=o.filter((t=>!i[t.match]&&(i[t.match]=!0,!0))),o}))},cr=function(t,e){return t.map(((t,n)=>{let r=e[n];return t=(t=(t=t.filter((t=>t.needs.every((t=>r.has(t)))))).filter((t=>void 0===t.ifNo||!0!==t.ifNo.some((t=>r.has(t)))))).filter((t=>0===t.wants.length||t.wants.filter((t=>r.has(t))).length>=t.minWant))}))},ur=function(t,e,n,r,o){let i=[];for(let n=0;n0&&(a.ptrs.forEach((t=>{t[0]=n;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),i.push(e)})),!0===o.matchOne))return[i[0]]}return i},hr=function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=ar(o,e.hooks);return i=cr(i,o),e.always.length>0&&(i=i.map((t=>t.concat(e.always)))),i=function(t,e){return t.map(((t,n)=>{let r=e[n].length;return t=t.filter((t=>r>=t.minWords)),t}))}(i,t),ur(i,t,o,n,r)},fr=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===fr(c,t.tag,r))return;if("-"===c[c.length-1].post)return}if(void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),"Noun"===t.tag)){let e=c[c.length-1];a(e.text)?s([e],"Plural",n,t.safe,"quick-plural"):s([e],"Singular",n,t.safe,"quick-singular")}void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach((e=>e.chunk=t.chunk))})))},dr={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:or,methods:{one:{buildNet:lr,bulkMatch:hr,bulkTagger:pr}}};const gr=/ /,mr=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},wr=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map((t=>t.text||"["+t.implicit+"]")).join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),1!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if("string"==typeof e)if(e=e.trim(),gr.test(e))!function(t,e,n,r){let o=e.split(gr);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),wr(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nyr(t,e,n,r)))};var br=yr,vr=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach((t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map((t=>t.trim())).filter((t=>t)),e=e.map((t=>xr({id:t}))),e}return[xr({id:t})]}(t))})),n=n.filter((t=>t));let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach((n=>{e&&e(t,n),r.push(n)}))}return n},kr=t=>"[object Array]"===Object.prototype.toString.call(t),Pr=t=>(t=t||"").trim(),_r=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||jr.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Er(t)})}));let r=function(t){let e={children:[]};return t.forEach(((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t}));let n=xr({});return t.forEach((t=>{if((t=xr(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)})),n}(t):(Or(e=t).forEach(xr),e);var e},Sr=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Or(t).forEach(((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"})),r},Ar=function(t){let e=Or(t);e.forEach((t=>{delete(t=Object.assign({},t)).children}));let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},$r={text:Sr,txt:Sr,array:Ar,flat:Ar},Tr=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Sr(t,!0)),null):$r.hasOwnProperty(e)?$r[e](t):t},Cr=t=>{Or(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},zr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=Pr(t),!zr.test(t)){let e=this.json.children.find((e=>e.id===t));return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]));if(!r)return null;t=r}return t})(this.json,t)||xr({});return new g(e)}add(t,e={}){if(kr(t))return t.forEach((t=>this.add(Pr(t),e))),this;t=Pr(t);let n=xr({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Pr(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return Or(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=Or(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))})),n={};e.forEach((t=>{t.id&&(n[t.id]=t)})),e.forEach((t=>{t._cache.parents.forEach((e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)}))})),t._cache.children=Object.keys(n)})(this.json),this}list(){return Or(this.json)}fillDown(){var t;return t=this.json,Or(t,((t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach((n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else kr(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){Cr(this.json);let t=Or(this.json),e=t.length>1?1:0;return t.forEach((t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)})),e}out(t){return Cr(this.json),Tr(this.json,t)}debug(){return Cr(this.json),Tr(this.json,"debug"),this}}const Nr=function(t){let e=_r(t);return new g(e)};Nr.prototype.plugin=function(t){t(this)};var Lr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Vr=function(t){if(Lr.hasOwnProperty(t.id))return Lr[t.id];if(Lr.hasOwnProperty(t.is))return Lr[t.is];let e=t._cache.parents.find((t=>Lr[t]));return Lr[e]};var qr=function(t){const e={};return t.forEach((t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:Vr(t)}})),Object.keys(e).forEach((t=>{let n=new Set(e[t].not);e[t].not.forEach((t=>{e[t]&&e[t].children.forEach((t=>n.add(t)))})),e[t].not=Array.from(n)})),e};const Fr=function(t){return t?"string"==typeof t?[t]:t:[]};var Gr=function(t,e){return t=function(t,e){return Object.keys(t).forEach((n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))})),t}(t,e),Object.keys(t).forEach((e=>{t[e].children=Fr(t[e].children),t[e].not=Fr(t[e].not)})),Object.keys(t).forEach((e=>{(t[e].not||[]).forEach((n=>{t[n]&&t[n].not&&t[n].not.push(e)}))})),t},Dr=function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach((e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0})),t}(t)),t=Gr(t,e);const n=function(t){const e=Object.keys(t).map((e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}}));return Nr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return qr(n)},Br={one:{setTag:br,unTag:vr,addTags:Dr}};const Ur=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Mr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),Ur(t)?t.forEach((t=>o.one.setTag(r,t,s,n,e))):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return Ur(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach(((t,e)=>{t.forEach(((t,o)=>{n.find((e=>t.tags.has(e)))&&r.push([e,o,o+1])}))}));let o=this.update(r);return this.difference(o)}};var Wr=Mr,Rr=function(t){Object.assign(t.prototype,Wr)},Ir={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const Qr=new Set(["Auxiliary","Possessive"]);var Zr=function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach((t=>{t.forEach((t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t=t.sort(((t,n)=>{if(Qr.has(t)||!e.hasOwnProperty(n))return 1;if(Qr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))},Hr={model:{one:{tagSet:{}}},compute:{tagRank:Zr},methods:Br,api:Rr,lib:Ir};const Kr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Jr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var Yr=function(t){let e=[],n=t.split(Xr);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const oo={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},io=RegExp("("+Object.keys(oo).join("|")+")","g"),so=RegExp("("+Object.values(oo).join("|")+")","g"),lo=function(t){if(!t)return!1;let e=t.match(so);return null!==e&&1===e.length};var ao=function(t){let e=[];for(let n=0;n(t[e]=!0,t)),{});var ko=function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Eo);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=vo(n),n=yo(n),n=n.filter((t=>t)),n};let Po=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),_o=new RegExp(`^[${["%","_"].join("")}]+`,"");const So=/[\p{Punctuation}\s]+$/u,Ao=/^[\p{Punctuation}\s]+/u,$o=/['’]/,To=/^[a-z]\.([a-z]\.)+/i,Co=/^'[0-9]{2}/;var zo=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Ao,(e=>{let r=e.match(Po);return r?(n=e.replace(Po,""),r):"'"===n&&Co.test(t)?(n="",e):(n=e,"")}))).replace(So,(o=>{let i=o.match(_o);return i?(r=o.replace(_o,""),i):$o.test(o)&&/[sn]['’]$/.test(e)&&!1===$o.test(n)?(r=r.replace($o,""),"'"):!0===To.test(t)?(r=o.replace(/^\./,""),"."):(r=o,"")})))&&(e=e.replace(/ *$/,(t=>(r=t||"",""))),t=e,n=""),{str:t,pre:n,post:r}},No=function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach(((t,e)=>{n[t]&&(r[e]=n[t])})),r.join("")},Lo=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Vo=/([A-Z]\.)+[A-Z]?,?$/,qo=/^[A-Z]\.,?$/,Fo=/[A-Z]{2,}('s|,)?$/,Go=/([a-z]\.)+[a-z]\.?$/;var Do=function(t){return function(t){return!0===Vo.test(t)||!0===Go.test(t)||!0===qo.test(t)||!0===Fo.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Bo=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Lo(r),r=n(r,e),r=Do(r),t.normal=r},Uo=function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map(s),n.forEach((t=>{Bo(t,e)})),n})),t};const Mo=/[ .][A-Z]\.? *$/i,Wo=/(?:\u2026|\.{2,}) *$/,Ro=/\p{L}/u,Io=/^[A-Z]\. $/;var Qo={one:{killUnicode:No,tokenize:{splitSentences:go,isSentence:function(t,e){if(!1===Ro.test(t))return!1;if(!0===Mo.test(t))return!1;if(3===t.length&&Io.test(t))return!1;if(!0===Wo.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)},splitTerms:ko,splitWhitespace:t=>{let{str:e,pre:n,post:r}=zo(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:Uo}}},Zo={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ho={},Ko={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((t=>{t[0].forEach((e=>{Ho[e]=!0,Ko[e]="Abbreviation",void 0!==t[1]&&(Ko[e]=[Ko[e],t[1]])}))}));var Jo=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((t,e)=>(t[e]=!0,t)),{});let Xo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Yo={};Object.keys(Xo).forEach((function(t){Xo[t].split("").forEach((function(e){Yo[e]=t}))}));const ti=/\//,ei=/[a-z]\.[a-z]/i,ni=/[0-9]/;var ri=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),ti.test(n)&&!ei.test(n)&&!ni.test(n)){let e=n.split(ti);e.length<=2&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t};const oi=/^\p{Letter}+-\p{Letter}+$/u;var ii=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),oi.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},si=function(t){let e=t.docs,n={};for(let t=0;tui(t,ri),machine:t=>ui(t,ii),normal:t=>ui(t,Bo),freq:si,offset:li,index:ai,wordCount:ci},methods:Qo,model:{one:{aliases:Zo,abbreviations:Ho,prefixes:Jo,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Ko,unicode:Yo}},hooks:["alias","machine","index","id"]},fi={typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}};const pi=function(){const t=this.docs;if(0===t.length)return this;let e=t[t.length-1]||[],n=e[e.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var di=function(t){t.prototype.autoFill=pi},gi=function(t,e,n){let r={},o=[],i=n.prefixes||{};return t.forEach((t=>{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]})),r};const mi={safe:!0,min:3};var wi={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},mi,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=gi(t,e,this.world());return Object.keys(o).forEach((t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]})),this}},yi={model:{one:{typeahead:{}}},api:di,lib:wi,compute:fi,hooks:["typeahead"]};return w.extend(tt),w.extend(Wn),w.extend(an),w.extend(rr),w.extend(Hr),w.plugin(St),w.extend(hi),w.plugin(x),w.extend(Wt),w.extend(yi),w.extend(Vt),w.extend(dr),w},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).nlp=e(); +var t,e;t=this,e=function(){var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach((r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)})):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n=e,r={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2]))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var i=o;const s=Object.assign({},i,n,r);s.get=s.eq;var l=s;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach((t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})})),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map((t=>t.map((t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)))));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,l);var a=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function u(t,e){if(c(e))for(const n in e)c(e[n])?(t[n]||Object.assign(t,{[n]:{}}),u(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}var h=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&u(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.exceptions[t]=e[t].pastTense),n.fromPast&&(n.fromPast.exceptions[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.exceptions[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.exceptions[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.exceptions[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.exceptions[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.exceptions[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.exceptions[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[e[t].superlative]=t))}))}(i,t.irregulars),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach((e=>r[e]=t.lib[e])),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const f=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var p=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t)return new e(r.one.tokenize.fromString(t,n));if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(f(t)){if(f(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=function(t){return t.map((t=>t.terms.map((t=>(f(t.tags)&&(t.tags=new Set(t.tags)),t)))))}(t);return new e(n)}return o};let d=Object.assign({},t);const m=function(t,e){e&&m.addWords(e);let n=p(t,a,d);return t&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(t,e){const{compute:n}=this._world;e&&m.addWords(e);let r=p(t,a,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(t){return h(t,this._world,a,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},m.version="14.6.0";var w=m,y=function(t){let e=t.map((t=>{let e=new Set;return t.forEach((t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach((t=>e.add(t)));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),E=(t,e,n)=>{if(n.forEach((t=>t.dirty=!0)),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},O=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},k=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},P=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?O(n):(O(n),O([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!j(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(t=>t.toUpperCase()));let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||j(o.text)&&o.text.length>1&&(o.text=o.text.replace(/^\p{Lu}/u,(t=>t.toLowerCase())))}(t,i,n),E(t,i,n)};let _=0;const S=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var A=function(t){let[e,n]=t.index||[0,0];_+=1,_=_>46655?0:_,e=e>46655?0:e,n=n>1294?0:n;let r=S(_.toString(36));r+=S(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const $=function(t){t.has("@hasContraction")&&"function"==typeof t.contractions&&t.grow("@hasContraction").contractions().expand()},T=t=>"[object Array]"===Object.prototype.toString.call(t),C=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]||[]:T(t)?T(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=A(t),t)))}(f),n?($(e.update([c]).firstTerm()),P(h,c,f,r)):($(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)})),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(L,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let o=this.update(n);n=n.map((t=>t.slice(0,3)));let i=(o.docs[0]||[]).map((t=>Array.from(t.tags)));r.insertAfter(t),o.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach(((t,e)=>{t.tagSafe(i[e])})),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),s},replace:function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?(this.soften(),r.replaceWith(e,n)):this}};var q=V,F=function(t,e){e.forEach((e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))}));for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const G={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t));let o=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let i=n.fullPointer,s=r.fullPointer.reverse(),l=F(this.document,s);return i=function(t,e){return t=t.map((t=>{let[n]=t;return e[n]?(e[n].forEach((e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)})),t):t})),t.forEach(((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0))).map((t=>(t[3]=null,t[4]=null,t)))}(i,e(s)),n.ptrs=i,n.document=l,n.compute("index"),o&&(n.ptrs=void 0),t?n.toView(i):(this.ptrs=[],n.none())}};G.delete=G.remove;var D=G;const B={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t})),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t})),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")}))})),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach((e=>{e.forEach((e=>{t.test(e.post)&&(e.post=" ")}))})),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this}};B.deHyphenate=B.dehyphenate,B.toQuotation=B.toQuotations;var U=B,M={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach((t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1})),t.sort(((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0})),t}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),R=new Set(["freq","frequency","topk","repeats"]),I=new Set(["alpha","alphabetical"]);var Q={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return W.has(t)&&(t="sequential"),I.has(t)&&(t="alpha"),R.has(t)?(o=M.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof M[t]?(o=o.sort(M[t]),this.update(o.map((t=>t.pointer)))):this}};const Z=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var H={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return E(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach((e=>{e[0]+=t.document.length})),t.document=Z(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=Z(this.document,t);return this.document=e,this.all()}var o;return this}},K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map((t=>t.slice(0,3))),this.ptrs=t),this}};const J=Object.assign({},{toLowerCase:function(){return this.termList().forEach((t=>{t.text=t.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((t=>{t.text=t.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))),n!==t.length-1&&(e.post="")}))})),this}},N,q,D,U,Q,H,K);var X=function(t){Object.assign(t.prototype,J)};const Y={id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t))),n[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const rt=/'/,ot=new Set(["what","how","when","where","why"]),it=new Set(["be","go","start","think","need"]),st=new Set(["been","gone"]);var lt=function(t,e){let n=t[e].normal.split(rt)[0];if(ot.has(n))return[n,"did"];if(t[e+1]){if(st.has(t[e+1].normal))return[n,"had"];if(it.has(t[e+1].normal))return[n,"would"]}return null},at=function(t,e){return"ain't"===t[e].normal||"aint"===t[e].normal?null:[t[e].normal.replace(/n't/,""),"not"]};const ct=/'/;var ut=(t,e)=>["je",t[e].normal.split(ct)[1]],ht=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ft=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,dt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,gt=/^[0-9]{3}-[0-9]{4}$/;var mt=function(t,e){let n=t[e],r=n.text.match(pt);return null!==r?!0===n.tags.has("PhoneNumber")||gt.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(dt),null!==r?[r[1],"to",r[4]]:null)};const wt=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,yt=new Set(["st","nd","rd","th","am","pm","max","°","s","e"]);var bt=function(t,e){let n=t[e].text.match(wt);if(null!==n){let t=n[2].toLowerCase().trim();return yt.has(t)?null:[n[1],t]}return null};const vt=/'/,xt=/^[0-9][^-–—]*[-–—].*?[0-9]/,jt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]]},Et={t:(t,e)=>at(t,e),d:(t,e)=>lt(t,e)},Ot={j:(t,e)=>ut(t,e),l:(t,e)=>ht(t,e),d:(t,e)=>ft(t,e)},kt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===vt.test(r[l].normal)&&([a,c]=r[l].normal.split(vt));let u=kt(i,r[l],a,c);!u&&Et.hasOwnProperty(c)&&(u=Et[c](r,l,e)),!u&&Ot.hasOwnProperty(a)&&(u=Ot[a](r,l)),u?(u=Pt(u,t),nt(n,[s,l],u),jt(n[s],t,l,u.length)):xt.test(r[l].normal)?(u=mt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),jt(n[s],t,l,u.length))):(u=bt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}}))},St={model:et,compute:{contractions:_t},hooks:["contractions"]},At=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t)));if(t)return i([l],s[t],n,!1,"1-lexicon-alias"),!0}if(!0===$t.test(a)){let t=a.replace($t,"");if(s.hasOwnProperty(t)&&t.length>3&&Tt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null},zt={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}},Lt={addWords:function(t){const e=this.world(),{methods:n,model:r}=e;if(t)if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}},Vt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Nt}},compute:zt,lib:Lt,hooks:["lexicon"]},qt=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map((t=>t.text.toLowerCase()))}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const Ft=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const Bt=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1),t;return t};var Ut=function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Bt(t.goNext,void 0),t.failTo=Bt(t.failTo,0),t.endAs=Bt(t.endAs,null),t};const Mt={buildTrie:function(t){const e=qt(t,this.world());return Ut(e)}};Mt.compile=Mt.buildTrie;var Wt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:qt(t,this.world));var r;let o=Dt(this,n,e);return o=o.settle(),o}},lib:Mt};const Rt=function(t,e){return e?(t.forEach((t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])})),t):t},It=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Rt(n,e),Object.keys(r).forEach((t=>{r[t]=Rt(r[t],e)})),{ptrs:n,byGroup:r}},Qt=t=>"[object Object]"===Object.prototype.toString.call(t),Zt=t=>t&&Qt(t)&&!0===t.isView,Ht=t=>t&&Qt(t)&&!0===t.isNet,Kt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Jt={matchOne:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t).eq(0);if(Ht(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t);if(Ht(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Kt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Zt(t))return t.fullPointer.length>0;if(Ht(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.filter((e=>e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Zt(t))return this.filter((e=>!e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Kt(t,n,this.world);let i=this._cache||[],s=this.filter(((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length}));return this._cache&&(s._cache=s.ptrs.map((t=>i[t[0]]))),s}},Xt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?1:-1))[0];e[1]>0&&o.push([e[0],0,e[1]])}));let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?-1:1))[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}})),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach(((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}})),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Yt=function(t,e){return[t[0],t[1],e[2]]},te=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},ee=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},ne={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Yt(t.match,t.after)):(i.push(t.match),i.push(t.after))})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(Yt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)}};ne.split=ne.splitAfter;var re=ne;const oe=Object.assign({},Jt,Xt,re);oe.lookBehind=oe.before,oe.lookBefore=oe.before,oe.lookAhead=oe.after,oe.lookAfter=oe.after,oe.notIf=oe.ifNo;var ie=function(t){Object.assign(t.prototype,oe)};const se=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,le=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ae=/ /g,ce=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),ue=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))};var he=function(t){let e=t.split(se),n=[];e.forEach((t=>{ce(t)?n.push(t):n=n.concat(t.split(le))})),n=ue(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ce(t)?r.push(t):r=r.concat(t.split(ae))})),r=ue(r),r};const fe=/\{([0-9]+)?(, *[0-9]*)?\}/,pe=/&&/,de=new RegExp(/^<\s*(\S+)\s*>/),ge=t=>t.charAt(0).toUpperCase()+t.substring(1),me=t=>t.charAt(t.length-1),we=t=>t.charAt(0),ye=t=>t.substring(1),be=t=>t.substring(0,t.length-1),ve=function(t){return t=ye(t),t=be(t)},xe=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===me(t)&&(n.end=!0,t=be(t)),"^"===we(t)&&(n.start=!0,t=ye(t)),("["===we(t)||"]"===me(t))&&(n.group=null,"["===we(t)&&(n.groupStart=!0),"]"===me(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===we(t))){const e=de.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===me(t)&&(n.greedy=!0,t=be(t)),"*"!==t&&"*"===me(t)&&"\\*"!==t&&(n.greedy=!0,t=be(t)),"?"===me(t)&&(n.optional=!0,t=be(t)),"!"===we(t)&&(n.negative=!0,t=ye(t)),"~"===we(t)&&"~"===me(t)&&t.length>2&&(t=ve(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===we(t)&&")"===me(t)){pe.test(t)?(n.choices=t.split(pe),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ye(n.choices[0]);let r=n.choices.length-1;n.choices[r]=be(n.choices[r]),n.choices=n.choices.map((t=>t.trim())),n.choices=n.choices.filter((t=>t)),n.choices=n.choices.map((t=>t.split(/ /g).map((t=>xe(t,e))))),t=""}if("/"===we(t)&&"/"===me(t))return t=ve(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===we(t)&&"}"===me(t)){if(t=ve(t),n.id=t,n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.num=t[2])}return n}if("<"===we(t)&&">"===me(t))return t=ve(t),n.chunk=ge(t),n.greedy=!0,n;if("%"===we(t)&&"%"===me(t))return t=ve(t),n.switch=t,n}return!0===fe.test(t)&&(t=t.replace(fe,((t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===we(t)?(n.tag=ye(t),n.tag=ge(n.tag),n):"@"===we(t)?(n.method=ye(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var je=xe;const Ee=/[a-z0-9][-–—][a-z]/i;var Oe=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&Ee.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter((t=>t)).reverse(),t.splice(e,1),o.forEach((n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)}))}}return t};const ke=function(t,e){let{all:n}=e.methods.two.transform.verb||{},r=t.root;return n?n(r,e.model):[]},Pe=function(t,e){let{all:n}=e.methods.two.transform.noun||{};return n?n(t.root,e.model):[t.root]},_e=function(t,e){let{all:n}=e.methods.two.transform.adjective||{};return n?n(t.root,e.model):[t.root]};var Se=function(t,e){return t=t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform){let n=[];t.pos?"Verb"===t.pos?n=n.concat(ke(t,e)):"Noun"===t.pos?n=n.concat(Pe(t,e)):"Adjective"===t.pos&&(n=n.concat(_e(t,e))):(n=n.concat(ke(t,e)),n=n.concat(Pe(t,e)),n=n.concat(_e(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t}))},Ae=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach((e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)})),t)))}(t=t.map((t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every((t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method}))&&(t.fastOr=new Set,t.choices.forEach((e=>{t.fastOr.add(e[0].word)})),delete t.choices)}return t}))),t},$e=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=he(t);return r=r.map((t=>je(t,e))),r=Oe(r,n),r=Se(r,n),r=Ae(r),r};const Te=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var Ce=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),Ge=(t,e)=>-1!==t.pre.indexOf(e),De={hasQuote:t=>Ne.test(t.pre)||Le.test(t.post),hasComma:t=>Fe(t,","),hasPeriod:t=>!0===Fe(t,".")&&!1===Fe(t,"..."),hasExclamation:t=>Fe(t,"!"),hasQuestionMark:t=>Fe(t,"?")||Fe(t,"¿"),hasEllipses:t=>Fe(t,"..")||Fe(t,"…")||Ge(t,"..")||Ge(t,"…"),hasSemicolon:t=>Fe(t,";"),hasColon:t=>Fe(t,":"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>Ve.test(t.post)||Ve.test(t.pre),hasDash:t=>qe.test(t.post)||qe.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};De.hasQuotation=De.hasQuote;var Be=De;let Ue=function(){};Ue=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(ze(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some((t=>t===e.word)))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof Be[e.method]&&!0===Be[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.pos&&!t.tags.has(e.pos)?null:e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Ue(t,e,n,r))):e.choices.some((e=>Ue(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};var Me=Ue;const We=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max?(t.t=t.t+n.max,!0):(!0===t.hasGroup&&(Re(t,t.t).length=r-t.t),t.t=r,!0)};const Qe=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Me(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every(((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Me(t.terms[r],e,r,t.phrase_length)}));return!0===r&&n.length>e&&(e=n.length),r}))&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup&&(Re(t,t.t).length+=r),!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null},Ke=function(t,e,n){let r=0;for(let o=t.t;or||(t.t+=r,0))},Je=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,Me(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];n&&(Me(t.terms[t.t],n,t.start_i+t.t,t.phrase_length)?t.r+=1:n.optional&&e[t.r+2]&&Me(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2))}return n.greedy?Ke(t,r,e[t.r+1]):(t.t+=1,!0)},Xe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Me(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Me(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}},Ye=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null},tn=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}},en=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;return!!(n.optional&&e[t.r+1]&&n.negative)||(n.optional&&e[t.r+1]&&Xe(t),r.implicit&&t.terms[t.t+1]&&tn(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Ye(t)?(!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Re(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0):null)},nn=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional)))break;return null}if(!0!==t.anything||!0!==t.greedy){if(void 0===t.choices||"or"!==t.operator){if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything){if(!0!==We(t,o)){if(t.negative){if(!Je(o))return null}else if(!0!==Me(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else if(!en(o))return null}else if(!en(o))return null}else{if(t.negative&&t.anything)return null;if(!en(o))return null}else if(!He(o))return null}else if(!Ze(o))return null}else if(!Ie(o))return null}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach((t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]})),{pointer:i,groups:s}},rn=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach((t=>{t.groups[e]&&n.push(t.groups[e])})):t.forEach((t=>{n.push(t.pointer),Object.keys(t.groups).forEach((e=>{r[e]=r[e]||[],r[e].push(t.groups[e])}))}))),{ptrs:n,byGroup:r}};const on=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach((n=>{t.groups[n][0]=e})),t},sn=function(t,e,n){let r=nn(t,e,0,t.length);return r?(r=on(r,n),r):null};var ln=function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter((t=>!0!==t.optional&&!0!==t.negative)).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=sn(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter((e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]}))),s=rn(s,o),s.ptrs.forEach((e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id})),s},an={api:ie,methods:{one:{termMethods:Be,parseMatch:$e,match:ln}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const cn=/^\../,un=/^#./,hn=function(t,e){let n={},r={};return Object.keys(e).forEach((o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),cn.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach((t=>{if(t.every((t=>t.implicit)))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)}))})),{starts:n,ends:r}};var fn={html:function(t){let{starts:e,ends:n}=hn(this,t),r="";return this.docs.forEach((t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(dn,""),mn.test(o)&&(o=" "),o=o.replace(gn,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(dn,""),o="-"===o?" ":o.replace(pn,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&wn.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},bn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};bn.clean=bn.normal,bn.reduced=bn.root;var vn=bn;let xn=[],jn=0;for(;jn<64;)xn[jn]=0|4294967296*Math.sin(++jn%Math.PI);function En(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(jn=s=0;jn>4]+xn[s]+~~i[jn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const On={text:!0,terms:!0};let kn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Pn=function(t,e){return Object.assign({},t,e)},_n={text:t=>yn(t,{keepPunct:!0},!1),normal:t=>yn(t,Pn(vn.normal,{keepPunct:!0}),!1),implicit:t=>yn(t,Pn(vn.implicit,{keepPunct:!0}),!1),machine:t=>yn(t,kn,!1),root:t=>yn(t,Pn(kn,{form:"root"}),!1),hash:t=>En(yn(t,{keepPunct:!0},!1)),offset:t=>{let e=_n.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map((t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e})),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some((t=>!0===t.dirty))};_n.sentences=_n.sentence,_n.clean=_n.normal,_n.reduced=_n.root;const Sn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},On,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&_n[i]&&(o[i]=_n[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};Sn.data=Sn.json;var An=Sn,$n=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach((t=>{console.groupCollapsed(t.text());let e=t.docs[0].map((t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}}));console.table(e,["text","tags"]),console.groupEnd()}))};const Tn="";var Cn={green:t=>""+t+Tn,red:t=>""+t+Tn,blue:t=>""+t+Tn,magenta:t=>""+t+Tn,cyan:t=>""+t+Tn,yellow:t=>""+t+Tn,black:t=>""+t+Tn,dim:t=>""+t+Tn,i:t=>""+t+Tn},zn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(Cn.blue("\n ──────")),e.forEach((t=>{console.log(Cn.blue("\n ┌─────────")),t.forEach((t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=Cn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=Cn.blue(" │ ")+Cn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map((t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return Cn[n](t)}))),t.join(", ")}(e,n);console.log(i)}))}))},Nn=function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(Cn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(Cn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(Cn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(Cn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")}))},Ln=function(t){if(!t.found)return;let e={};t.fullPointer.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),Object.keys(e).forEach((n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach(((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${Cn.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)}))},Vn=function(t={}){let e=this;if("string"==typeof t){let e={};e[t]=!0,t=e}return"undefined"!=typeof window&&window.document?($n(e),e):(!1!==t.tags&&(zn(e),console.log("\n")),!0===t.chunks&&(Nn(e),console.log("\n")),!0===t.highlight&&(Ln(e),console.log("\n")),e)};const qn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var Fn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach((r=>{t.match(r).fullPointer.forEach((t=>{n[t[3]]={fn:e[r],end:t[2]}}))})),n}(t,e),r="";return t.docs.forEach(((e,o)=>{for(let i=0;it.reduce(((t,e)=>t+e.pre+e.text+e.post),"").trim()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.sort(((t,e)=>t.count>e.count?-1:0))}(this.json({normal:!0}).map((t=>t.normal)));if("terms"===t){let t=[];return this.docs.forEach((e=>{let n=e.terms.map((t=>t.text));n=n.filter((t=>t)),t=t.concat(n)})),t}return"tags"===t?this.docs.map((t=>t.reduce(((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t)),{}))):"debug"===t?this.debug():this.text()}};var Dn=Gn,Bn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&vn.hasOwnProperty(t)?e=Object.assign({},vn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},e,t)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},In=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e};var Qn=function(t,e){let n=In(e),r=[];return t.forEach((t=>{let[e]=t,o=n[e]||[];if(o=o.filter((e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e))),0===o.length)return void r.push({passthrough:t});o=o.sort(((t,e)=>t[1]-e[1]));let i=t;o.forEach(((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)}))})),r},Zn=function(t,e){let n=[];return t.forEach(((r,o)=>{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<20;r+=1){if(e[n-r]){let o=e[n-r].findIndex((e=>e.id===t));if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex((e=>e.id===t));if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex((t=>t.id===o));return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))})),n=n.filter((t=>t.length>0)),n},Hn={one:{termList:function(t){let e=[];for(let n=0;n{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter((e=>Rn(t,e)));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach((t=>{t[1]n&&(n=t[2])})),[t[0][0],e,n]}(n);o.push(i)})),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)})),n},Xn=function(t,e){let n=In(e),r=[];return t.forEach((t=>{let e=n[t[0]]||[];e=e.filter((e=>Rn(t,e))),0!==e.length&&e.forEach((e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},tr=function(t,e){return t.map((t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t}))},er={union:function(t){t=Yn(t,this);let e=Kn(this.fullPointer,t.fullPointer);return e=tr(e,this.document),this.toView(e)}};er.and=er.union,er.intersection=function(t){t=Yn(t,this);let e=Xn(this.fullPointer,t.fullPointer);return e=tr(e,this.document),this.toView(e)},er.not=function(t){t=Yn(t,this);let e=Jn(this.fullPointer,t.fullPointer);return e=tr(e,this.document),this.toView(e)},er.difference=er.not,er.complement=function(){let t=this.all(),e=Jn(t.fullPointer,this.fullPointer);return e=tr(e,this.document),this.toView(e)},er.settle=function(){let t=this.fullPointer;return t.forEach((e=>{t=Kn(t,[e])})),t=tr(t,this.document),this.update(t)};var nr=function(t){Object.assign(t.prototype,er)},rr={methods:Hn,api:nr},or=function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t}));let s=i.map((t=>t.pointer));return i=i.map((t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t))),{view:this.update(s),found:i}}};const ir=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var sr=function(t,e){const n=e.methods.one.parseMatch;return t.forEach((t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach((t=>{e.push(ir(t)),"and"===t.operator&&t.choices&&t.choices.forEach((t=>{t.forEach((t=>{e.push(ir(t))}))}))})),e.filter((t=>t))}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach((t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach((t=>{e.push(t)})),t.choices&&t.choices.forEach((t=>{t.forEach((t=>{let n=ir(t);n&&e.push(n)}))})),n+=1)})),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter((t=>!t.optional)).length})),t},lr=function(t,e){t=sr(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=n[e]||[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=n[e]||[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>!e[t.match]&&(e[t.match]=!0,!0)))}));let r=t.filter((t=>0===t.needs.length&&0===t.wants.length));return{hooks:n,always:r}},ar=function(t,e){return t.map(((n,r)=>{let o=[];Object.keys(e).forEach((n=>{t[r].has(n)&&(o=o.concat(e[n]))}));let i={};return o=o.filter((t=>!i[t.match]&&(i[t.match]=!0,!0))),o}))},cr=function(t,e){return t.map(((t,n)=>{let r=e[n];return t=(t=(t=t.filter((t=>t.needs.every((t=>r.has(t)))))).filter((t=>void 0===t.ifNo||!0!==t.ifNo.some((t=>r.has(t)))))).filter((t=>0===t.wants.length||t.wants.filter((t=>r.has(t))).length>=t.minWant))}))},ur=function(t,e,n,r,o){let i=[];for(let n=0;n0&&(a.ptrs.forEach((t=>{t[0]=n;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),i.push(e)})),!0===o.matchOne))return[i[0]]}return i},hr=function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=ar(o,e.hooks);return i=cr(i,o),e.always.length>0&&(i=i.map((t=>t.concat(e.always)))),i=function(t,e){return t.map(((t,n)=>{let r=e[n].length;return t=t.filter((t=>r>=t.minWords)),t}))}(i,t),ur(i,t,o,n,r)},fr=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===fr(c,t.tag,r))return;if("-"===c[c.length-1].post)return}if(void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),"Noun"===t.tag)){let e=c[c.length-1];a(e.text)?s([e],"Plural",n,t.safe,"quick-plural"):s([e],"Singular",n,t.safe,"quick-singular")}void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach((e=>e.chunk=t.chunk))})))},dr={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:or,methods:{one:{buildNet:lr,bulkMatch:hr,bulkTagger:pr}}};const gr=/ /,mr=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},wr=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map((t=>t.text||"["+t.implicit+"]")).join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),1!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if("string"==typeof e)if(e=e.trim(),gr.test(e))!function(t,e,n,r){let o=e.split(gr);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),wr(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nyr(t,e,n,r)))};var br=yr,vr=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach((t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map((t=>t.trim())).filter((t=>t)),e=e.map((t=>xr({id:t}))),e}return[xr({id:t})]}(t))})),n=n.filter((t=>t));let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach((n=>{e&&e(t,n),r.push(n)}))}return n},kr=t=>"[object Array]"===Object.prototype.toString.call(t),Pr=t=>(t=t||"").trim(),_r=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||jr.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:Er(t)})}));let r=function(t){let e={children:[]};return t.forEach(((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t}));let n=xr({});return t.forEach((t=>{if((t=xr(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)})),n}(t):(Or(e=t).forEach(xr),e);var e},Sr=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Or(t).forEach(((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"})),r},Ar=function(t){let e=Or(t);e.forEach((t=>{delete(t=Object.assign({},t)).children}));let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},$r={text:Sr,txt:Sr,array:Ar,flat:Ar},Tr=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(Sr(t,!0)),null):$r.hasOwnProperty(e)?$r[e](t):t},Cr=t=>{Or(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},zr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=Pr(t),!zr.test(t)){let e=this.json.children.find((e=>e.id===t));return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]));if(!r)return null;t=r}return t})(this.json,t)||xr({});return new g(e)}add(t,e={}){if(kr(t))return t.forEach((t=>this.add(Pr(t),e))),this;t=Pr(t);let n=xr({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=Pr(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return Or(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=Or(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))})),n={};e.forEach((t=>{t.id&&(n[t.id]=t)})),e.forEach((t=>{t._cache.parents.forEach((e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)}))})),t._cache.children=Object.keys(n)})(this.json),this}list(){return Or(this.json)}fillDown(){var t;return t=this.json,Or(t,((t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach((n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else kr(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){Cr(this.json);let t=Or(this.json),e=t.length>1?1:0;return t.forEach((t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)})),e}out(t){return Cr(this.json),Tr(this.json,t)}debug(){return Cr(this.json),Tr(this.json,"debug"),this}}const Nr=function(t){let e=_r(t);return new g(e)};Nr.prototype.plugin=function(t){t(this)};var Lr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Vr=function(t){if(Lr.hasOwnProperty(t.id))return Lr[t.id];if(Lr.hasOwnProperty(t.is))return Lr[t.is];let e=t._cache.parents.find((t=>Lr[t]));return Lr[e]};var qr=function(t){const e={};return t.forEach((t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:Vr(t)}})),Object.keys(e).forEach((t=>{let n=new Set(e[t].not);e[t].not.forEach((t=>{e[t]&&e[t].children.forEach((t=>n.add(t)))})),e[t].not=Array.from(n)})),e};const Fr=function(t){return t?"string"==typeof t?[t]:t:[]};var Gr=function(t,e){return t=function(t,e){return Object.keys(t).forEach((n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))})),t}(t,e),Object.keys(t).forEach((e=>{t[e].children=Fr(t[e].children),t[e].not=Fr(t[e].not)})),Object.keys(t).forEach((e=>{(t[e].not||[]).forEach((n=>{t[n]&&t[n].not&&t[n].not.push(e)}))})),t},Dr=function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach((e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0})),t}(t)),t=Gr(t,e);const n=function(t){const e=Object.keys(t).map((e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}}));return Nr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return qr(n)},Br={one:{setTag:br,unTag:vr,addTags:Dr}};const Ur=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Mr={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),Ur(t)?t.forEach((t=>o.one.setTag(r,t,s,n,e))):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return Ur(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach(((t,e)=>{t.forEach(((t,o)=>{n.find((e=>t.tags.has(e)))&&r.push([e,o,o+1])}))}));let o=this.update(r);return this.difference(o)}};var Wr=Mr,Rr=function(t){Object.assign(t.prototype,Wr)},Ir={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const Qr=new Set(["Auxiliary","Possessive"]);var Zr=function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach((t=>{t.forEach((t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t=t.sort(((t,n)=>{if(Qr.has(t)||!e.hasOwnProperty(n))return 1;if(Qr.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))},Hr={model:{one:{tagSet:{}}},compute:{tagRank:Zr},methods:Br,api:Rr,lib:Ir};const Kr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Jr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var Yr=function(t){let e=[],n=t.split(Xr);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const oo={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},io=RegExp("("+Object.keys(oo).join("|")+")","g"),so=RegExp("("+Object.values(oo).join("|")+")","g"),lo=function(t){if(!t)return!1;let e=t.match(so);return null!==e&&1===e.length};var ao=function(t){let e=[];for(let n=0;n(t[e]=!0,t)),{});var ko=function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(Eo);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=vo(n),n=yo(n),n=n.filter((t=>t)),n};let Po=new RegExp(`[${["#","@","_","+","."].join("")}]+$`,""),_o=new RegExp(`^[${["%","_","°"].join("")}]+`,"");const So=/[\p{Punctuation}\s]+$/u,Ao=/^[\p{Punctuation}\s]+/u,$o=/['’]/,To=/^[a-z]\.([a-z]\.)+/i,Co=/^'[0-9]{2}/,zo=/^-[0-9]/;var No=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(Ao,(e=>{let r=e.match(Po);return r?(n=e.replace(Po,""),r):"'"===n&&Co.test(t)?(n="",e):"-"===e&&zo.test(t)?e:(n=e,"")}))).replace(So,(o=>{let i=o.match(_o);return i?(r=o.replace(_o,""),i):$o.test(o)&&/[sn]['’]$/.test(e)&&!1===$o.test(n)?(r=r.replace($o,""),"'"):!0===To.test(t)?(r=o.replace(/^\./,""),"."):(r=o,"")})))&&(e=e.replace(/ *$/,(t=>(r=t||"",""))),t=e,n=""),{str:t,pre:n,post:r}},Lo=function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach(((t,e)=>{n[t]&&(r[e]=n[t])})),r.join("")},Vo=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const qo=/([A-Z]\.)+[A-Z]?,?$/,Fo=/^[A-Z]\.,?$/,Go=/[A-Z]{2,}('s|,)?$/,Do=/([a-z]\.)+[a-z]\.?$/;var Bo=function(t){return function(t){return!0===qo.test(t)||!0===Do.test(t)||!0===Fo.test(t)||!0===Go.test(t)}(t)&&(t=t.replace(/\./g,"")),t},Uo=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Vo(r),r=n(r,e),r=Bo(r),t.normal=r},Mo=function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map(s),n.forEach((t=>{Uo(t,e)})),n})),t};const Wo=/[ .][A-Z]\.? *$/i,Ro=/(?:\u2026|\.{2,}) *$/,Io=/\p{L}/u,Qo=/^[A-Z]\. $/;var Zo={one:{killUnicode:Lo,tokenize:{splitSentences:go,isSentence:function(t,e){if(!1===Io.test(t))return!1;if(!0===Wo.test(t))return!1;if(3===t.length&&Qo.test(t))return!1;if(!0===Ro.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)},splitTerms:ko,splitWhitespace:t=>{let{str:e,pre:n,post:r}=No(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:Mo}}},Ho={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ko={},Jo={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((t=>{t[0].forEach((e=>{Ko[e]=!0,Jo[e]="Abbreviation",void 0!==t[1]&&(Jo[e]=[Jo[e],t[1]])}))}));var Xo=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((t,e)=>(t[e]=!0,t)),{});let Yo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},ti={};Object.keys(Yo).forEach((function(t){Yo[t].split("").forEach((function(e){ti[e]=t}))}));const ei=/\//,ni=/[a-z]\.[a-z]/i,ri=/[0-9]/;var oi=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),ei.test(n)&&!ni.test(n)&&!ri.test(n)){let e=n.split(ei);e.length<=2&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t};const ii=/^\p{Letter}+-\p{Letter}+$/u;var si=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),ii.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)},li=function(t){let e=t.docs,n={};for(let t=0;thi(t,oi),machine:t=>hi(t,si),normal:t=>hi(t,Uo),freq:li,offset:ai,index:ci,wordCount:ui},methods:Zo,model:{one:{aliases:Ho,abbreviations:Ko,prefixes:Xo,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Jo,unicode:ti}},hooks:["alias","machine","index","id"]},pi={typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}};const di=function(){const t=this.docs;if(0===t.length)return this;let e=t[t.length-1]||[],n=e[e.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var gi=function(t){t.prototype.autoFill=di},mi=function(t,e,n){let r={},o=[],i=n.prefixes||{};return t.forEach((t=>{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]})),r};const wi={safe:!0,min:3};var yi={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},wi,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=mi(t,e,this.world());return Object.keys(o).forEach((t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]})),this}},bi={model:{one:{typeahead:{}}},api:gi,lib:yi,compute:pi,hooks:["typeahead"]};return w.extend(tt),w.extend(Wn),w.extend(an),w.extend(rr),w.extend(Hr),w.plugin(St),w.extend(fi),w.plugin(x),w.extend(Wt),w.extend(bi),w.extend(Vt),w.extend(dr),w},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).nlp=e(); diff --git a/builds/one/compromise-one.mjs b/builds/one/compromise-one.mjs index aa6b5ce4d..6aaf459b3 100644 --- a/builds/one/compromise-one.mjs +++ b/builds/one/compromise-one.mjs @@ -1 +1 @@ -var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach((r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)})):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n=e;var r={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&(t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2])))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var i=o;const s=Object.assign({},i,n,r);s.get=s.eq;var l=s;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach((t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})})),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map((t=>t.map((t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)))));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,l);var a=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function u(t,e){if(c(e))for(const n in e)c(e[n])?(t[n]||Object.assign(t,{[n]:{}}),u(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}var h=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&u(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.exceptions[t]=e[t].pastTense),n.fromPast&&(n.fromPast.exceptions[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.exceptions[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.exceptions[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.exceptions[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.exceptions[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.exceptions[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.exceptions[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[e[t].superlative]=t))}))}(i,t.irregulars),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach((e=>r[e]=t.lib[e])),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const f=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var p=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t){return new e(r.one.tokenize.fromString(t,n))}if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(f(t)){if(f(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=function(t){return t.map((t=>t.terms.map((t=>(f(t.tags)&&(t.tags=new Set(t.tags)),t)))))}(t);return new e(n)}return o};let d=Object.assign({},t);const m=function(t,e){e&&m.addWords(e);let n=p(t,a,d);return t&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(t,e){const{compute:n}=this._world;e&&m.addWords(e);let r=p(t,a,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(t){return h(t,this._world,a,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},m.version="14.5.2";var w=m;var v=function(t){let e=t.map((t=>{let e=new Set;return t.forEach((t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach((t=>e.add(t)));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),E=(t,e,n)=>{if(n.forEach((t=>t.dirty=!0)),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},O=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},k=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},P=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?O(n):(O(n),O([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!j(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(t=>t.toUpperCase()));let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||j(o.text)&&o.text.length>1&&(o.text=(i=o.text,i.replace(/^\p{Lu}/u,(t=>t.toLowerCase()))));var i}(t,i,n),E(t,i,n)};let _=0;const S=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var A=function(t){let[e,n]=t.index||[0,0];_+=1,_=_>46655?0:_,e=e>46655?0:e,n=n>1294?0:n;let r=S(_.toString(36));r+=S(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const $=function(t){if(t.has("@hasContraction")&&"function"==typeof t.contractions){t.grow("@hasContraction").contractions().expand()}},T=t=>"[object Array]"===Object.prototype.toString.call(t),C=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]||[]:T(t)?T(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=A(t),t)))}(f),n?($(e.update([c]).firstTerm()),P(h,c,f,r)):($(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)})),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(L,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let o=this.update(n);n=n.map((t=>t.slice(0,3)));let i=(o.docs[0]||[]).map((t=>Array.from(t.tags)));if(r.insertAfter(t),o.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach(((t,e)=>{t.tagSafe(i[e])})),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),s},V.replace=function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?r.replaceWith(e,n):this};var q=V;var F=function(t,e){e.forEach((e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))}));for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const G={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(t&&(n=this,r=this.match(t)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=F(this.document,i);return o=function(t,e){return t=t.map((t=>{let[n]=t;return e[n]?(e[n].forEach((e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)})),t):t})),t.forEach(((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0))).map((t=>(t[3]=null,t[4]=null,t)))}(o,e(i)),n.ptrs=o,n.document=s,n.compute("index"),t?n.toView(o):(this.ptrs=[],n.none())}};G.delete=G.remove;var D=G;const B={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t})),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t})),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")}))})),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach((e=>{e.forEach((e=>{t.test(e.post)&&(e.post=" ")}))})),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this}};B.deHyphenate=B.dehyphenate,B.toQuotation=B.toQuotations;var U=B;var M={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach((t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1})),t.sort(((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0})),t}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),R=new Set(["freq","frequency","topk","repeats"]),I=new Set(["alpha","alphabetical"]);var Q={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return W.has(t)&&(t="sequential"),I.has(t)&&(t="alpha"),R.has(t)?(o=M.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof M[t]?(o=o.sort(M[t]),this.update(o.map((t=>t.pointer)))):this}};const Z=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var H={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return E(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach((e=>{e[0]+=t.document.length})),t.document=Z(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=Z(this.document,t);return this.document=e,this.all()}var o;return this}};var K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map((t=>t.slice(0,3))),this.ptrs=t),this}};const J=Object.assign({},{toLowerCase:function(){return this.termList().forEach((t=>{t.text=t.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((t=>{t.text=t.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))),n!==t.length-1&&(e.post="")}))})),this}},N,q,D,U,Q,H,K);var X=function(t){Object.assign(t.prototype,J)};const Y={id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t))),n[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const rt=/'/,ot=new Set(["what","how","when","where","why"]),it=new Set(["be","go","start","think","need"]),st=new Set(["been","gone"]);var lt=function(t,e){let n=t[e].normal.split(rt)[0];if(ot.has(n))return[n,"did"];if(t[e+1]){if(st.has(t[e+1].normal))return[n,"had"];if(it.has(t[e+1].normal))return[n,"would"]}return null};var at=function(t,e){if("ain't"===t[e].normal||"aint"===t[e].normal)return null;return[t[e].normal.replace(/n't/,""),"not"]};const ct=/'/;var ut=(t,e)=>["je",t[e].normal.split(ct)[1]],ht=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ft=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,dt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,mt=/^[0-9]{3}-[0-9]{4}$/;var gt=function(t,e){let n=t[e],r=n.text.match(pt);return null!==r?!0===n.tags.has("PhoneNumber")||mt.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(dt),null!==r?[r[1],"to",r[4]]:null)};const wt=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,vt=new Set(["st","nd","rd","th","am","pm","max"]);var yt=function(t,e){let n=t[e].text.match(wt);if(null!==n){let t=n[2].toLowerCase().trim();return vt.has(t)?null:[n[1],t]}return null};const bt=/'/,xt=/^[0-9][^-–—]*[-–—].*?[0-9]/,jt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]]},Et={t:(t,e)=>at(t,e),d:(t,e)=>lt(t,e)},Ot={j:(t,e)=>ut(t,e),l:(t,e)=>ht(t,e),d:(t,e)=>ft(t,e)},kt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===bt.test(r[l].normal)&&([a,c]=r[l].normal.split(bt));let u=kt(i,r[l],a,c);!u&&Et.hasOwnProperty(c)&&(u=Et[c](r,l,e)),!u&&Ot.hasOwnProperty(a)&&(u=Ot[a](r,l)),u?(u=Pt(u,t),nt(n,[s,l],u),jt(n[s],t,l,u.length)):xt.test(r[l].normal)?(u=gt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),jt(n[s],t,l,u.length))):(u=yt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}}))};var St={model:et,compute:{contractions:_t},hooks:["contractions"]};var At=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t)));if(t){return i([l],s[t],n,!1,"1-lexicon-alias"),!0}}if(!0===$t.test(a)){let t=a.replace($t,"");if(s.hasOwnProperty(t)&&t.length>3&&Tt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null};var zt={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}};var Lt={addWords:function(t){const e=this.world(),{methods:n,model:r}=e;if(t)if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}};var Vt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Nt}},compute:zt,lib:Lt,hooks:["lexicon"]};var qt=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map((t=>t.text.toLowerCase()))}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const Ft=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const Bt=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1),t;return t};var Ut=function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Bt(t.goNext,void 0),t.failTo=Bt(t.failTo,0),t.endAs=Bt(t.endAs,null),t};const Mt={buildTrie:function(t){const e=qt(t,this.world());return Ut(e)}};Mt.compile=Mt.buildTrie;var Wt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:qt(t,this.world));var r;let o=Dt(this,n,e);return o=o.settle(),o}},lib:Mt};const Rt=function(t,e){return e?(t.forEach((t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])})),t):t},It=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Rt(n,e),Object.keys(r).forEach((t=>{r[t]=Rt(r[t],e)})),{ptrs:n,byGroup:r}},Qt=t=>"[object Object]"===Object.prototype.toString.call(t),Zt=t=>t&&Qt(t)&&!0===t.isView,Ht=t=>t&&Qt(t)&&!0===t.isNet,Kt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Jt={matchOne:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t).eq(0);if(Ht(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t);if(Ht(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Kt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Zt(t)){return t.fullPointer.length>0}if(Ht(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.filter((e=>e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Zt(t))return this.filter((e=>!e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Kt(t,n,this.world);let i=this._cache||[],s=this.filter(((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length}));return this._cache&&(s._cache=s.ptrs.map((t=>i[t[0]]))),s}};var Xt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?1:-1))[0];e[1]>0&&o.push([e[0],0,e[1]])}));let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?-1:1))[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}})),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach(((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}})),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Yt=function(t,e){return[t[0],t[1],e[2]]},te=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},ee=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},ne={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Yt(t.match,t.after)):(i.push(t.match),i.push(t.after))})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(Yt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)}};ne.split=ne.splitAfter;var re=ne;const oe=Object.assign({},Jt,Xt,re);oe.lookBehind=oe.before,oe.lookBefore=oe.before,oe.lookAhead=oe.after,oe.lookAfter=oe.after,oe.notIf=oe.ifNo;var ie=function(t){Object.assign(t.prototype,oe)};const se=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,le=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ae=/ /g,ce=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),ue=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))};var he=function(t){let e=t.split(se),n=[];e.forEach((t=>{ce(t)?n.push(t):n=n.concat(t.split(le))})),n=ue(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ce(t)?r.push(t):r=r.concat(t.split(ae))})),r=ue(r),r};const fe=/\{([0-9]+)?(, *[0-9]*)?\}/,pe=/&&/,de=new RegExp(/^<\s*(\S+)\s*>/),me=t=>t.charAt(0).toUpperCase()+t.substring(1),ge=t=>t.charAt(t.length-1),we=t=>t.charAt(0),ve=t=>t.substring(1),ye=t=>t.substring(0,t.length-1),be=function(t){return t=ve(t),t=ye(t)},xe=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ge(t)&&(n.end=!0,t=ye(t)),"^"===we(t)&&(n.start=!0,t=ve(t)),("["===we(t)||"]"===ge(t))&&(n.group=null,"["===we(t)&&(n.groupStart=!0),"]"===ge(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===we(t))){const e=de.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ge(t)&&(n.greedy=!0,t=ye(t)),"*"!==t&&"*"===ge(t)&&"\\*"!==t&&(n.greedy=!0,t=ye(t)),"?"===ge(t)&&(n.optional=!0,t=ye(t)),"!"===we(t)&&(n.negative=!0,t=ve(t)),"~"===we(t)&&"~"===ge(t)&&t.length>2&&(t=be(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===we(t)&&")"===ge(t)){pe.test(t)?(n.choices=t.split(pe),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ve(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ye(n.choices[r]),n.choices=n.choices.map((t=>t.trim())),n.choices=n.choices.filter((t=>t)),n.choices=n.choices.map((t=>t.split(/ /g).map((t=>xe(t,e))))),t=""}if("/"===we(t)&&"/"===ge(t))return t=be(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===we(t)&&"}"===ge(t)){if(t=be(t),n.id=t,n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.num=t[2])}return n}if("<"===we(t)&&">"===ge(t))return t=be(t),n.chunk=me(t),n.greedy=!0,n;if("%"===we(t)&&"%"===ge(t))return t=be(t),n.switch=t,n}return!0===fe.test(t)&&(t=t.replace(fe,((t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===we(t)?(n.tag=ve(t),n.tag=me(n.tag),n):"@"===we(t)?(n.method=ve(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var je=xe;const Ee=/[a-z0-9][-–—][a-z]/i;var Oe=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&Ee.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter((t=>t)).reverse(),t.splice(e,1),o.forEach((n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)}))}}return t};const ke=function(t,e){let{all:n}=e.methods.two.transform.verb||{},r=t.root;return n?n(r,e.model):[]},Pe=function(t,e){let{all:n}=e.methods.two.transform.noun||{};return n?n(t.root,e.model):[t.root]},_e=function(t,e){let{all:n}=e.methods.two.transform.adjective||{};return n?n(t.root,e.model):[t.root]};var Se=function(t,e){return t=t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform){let n=[];t.pos?"Verb"===t.pos?n=n.concat(ke(t,e)):"Noun"===t.pos?n=n.concat(Pe(t,e)):"Adjective"===t.pos&&(n=n.concat(_e(t,e))):(n=n.concat(ke(t,e)),n=n.concat(Pe(t,e)),n=n.concat(_e(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t}))};var Ae=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach((e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)})),t)))}(t=t.map((t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every((t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method}))&&(t.fastOr=new Set,t.choices.forEach((e=>{t.fastOr.add(e[0].word)})),delete t.choices)}return t}))),t};var $e=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=he(t);return r=r.map((t=>je(t,e))),r=Oe(r,n),r=Se(r,n),r=Ae(r),r};const Te=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var Ce=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),Ge=(t,e)=>-1!==t.pre.indexOf(e),De={hasQuote:t=>Ne.test(t.pre)||Le.test(t.post),hasComma:t=>Fe(t,","),hasPeriod:t=>!0===Fe(t,".")&&!1===Fe(t,"..."),hasExclamation:t=>Fe(t,"!"),hasQuestionMark:t=>Fe(t,"?")||Fe(t,"¿"),hasEllipses:t=>Fe(t,"..")||Fe(t,"…")||Ge(t,"..")||Ge(t,"…"),hasSemicolon:t=>Fe(t,";"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>Ve.test(t.post)||Ve.test(t.pre),hasDash:t=>qe.test(t.post)||qe.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};De.hasQuotation=De.hasQuote;var Be=De;let Ue=function(){};Ue=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(ze(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some((t=>t===e.word)))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof Be[e.method]&&!0===Be[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.pos&&!t.tags.has(e.pos)?null:e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Ue(t,e,n,r))):e.choices.some((e=>Ue(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};var Me=Ue;const We=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max)return t.t=t.t+n.max,!0;if(!0===t.hasGroup){Re(t,t.t).length=r-t.t}return t.t=r,!0};const Qe=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Me(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every(((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Me(t.terms[r],e,r,t.phrase_length)}));return!0===r&&n.length>e&&(e=n.length),r}))&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup){Re(t,t.t).length+=r}if(!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null};var Ke=function(t,e,n){let r=0;for(let o=t.t;or)&&(t.t+=r,!0))};var Je=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,Me(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];if(n){if(Me(t.terms[t.t],n,t.start_i+t.t,t.phrase_length))t.r+=1;else if(n.optional&&e[t.r+2]){Me(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2)}}}return n.greedy?Ke(t,r,e[t.r+1]):(t.t+=1,!0)};var Xe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Me(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Me(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}};var Ye=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null};var tn=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}};var en=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;if(n.optional&&e[t.r+1]&&n.negative)return!0;if(n.optional&&e[t.r+1]&&Xe(t),r.implicit&&t.terms[t.t+1]&&tn(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Ye(t))return null}return!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Re(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0};var nn=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional)))break;return null}if(!0!==t.anything||!0!==t.greedy)if(void 0===t.choices||"or"!==t.operator)if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything)if(!0!==We(t,o))if(t.negative){if(!Je(o))return null}else if(!0!==Me(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else{if(!en(o))return null}else{if(!en(o))return null}else{if(t.negative&&t.anything)return null;if(!en(o))return null}else{if(!He(o))return null}else{if(!Ze(o))return null}else{if(!Ie(o))return null}}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach((t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]})),{pointer:i,groups:s}};var rn=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach((t=>{t.groups[e]&&n.push(t.groups[e])})):t.forEach((t=>{n.push(t.pointer),Object.keys(t.groups).forEach((e=>{r[e]=r[e]||[],r[e].push(t.groups[e])}))}))),{ptrs:n,byGroup:r}};const on=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach((n=>{t.groups[n][0]=e})),t},sn=function(t,e,n){let r=nn(t,e,0,t.length);return r?(r=on(r,n),r):null};var ln=function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter((t=>!0!==t.optional&&!0!==t.negative)).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=sn(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter((e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]}))),s=rn(s,o),s.ptrs.forEach((e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id})),s};var an={api:ie,methods:{one:{termMethods:Be,parseMatch:$e,match:ln}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const cn=/^\../,un=/^#./,hn=function(t,e){let n={},r={};return Object.keys(e).forEach((o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),cn.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach((t=>{if(t.every((t=>t.implicit)))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)}))})),{starts:n,ends:r}};var fn={html:function(t){let{starts:e,ends:n}=hn(this,t),r="";return this.docs.forEach((t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(dn,""),gn.test(o)&&(o=" "),o=o.replace(mn,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(dn,""),o="-"===o?" ":o.replace(pn,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&wn.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var bn=yn;let xn=[],jn=0;for(;jn<64;)xn[jn]=0|4294967296*Math.sin(++jn%Math.PI);function En(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(jn=s=0;jn>4]+xn[s]+~~i[jn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const On={text:!0,terms:!0};let kn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Pn=function(t,e){return Object.assign({},t,e)},_n={text:t=>vn(t,{keepPunct:!0},!1),normal:t=>vn(t,Pn(bn.normal,{keepPunct:!0}),!1),implicit:t=>vn(t,Pn(bn.implicit,{keepPunct:!0}),!1),machine:t=>vn(t,kn,!1),root:t=>vn(t,Pn(kn,{form:"root"}),!1),hash:t=>En(vn(t,{keepPunct:!0},!1)),offset:t=>{let e=_n.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map((t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e})),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some((t=>!0===t.dirty))};_n.sentences=_n.sentence,_n.clean=_n.normal,_n.reduced=_n.root;const Sn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},On,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&_n[i]&&(o[i]=_n[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};Sn.data=Sn.json;var An=Sn;var $n=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach((t=>{console.groupCollapsed(t.text());let e=t.docs[0].map((t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}}));console.table(e,["text","tags"]),console.groupEnd()}))};var Tn={green:t=>""+t+"",red:t=>""+t+"",blue:t=>""+t+"",magenta:t=>""+t+"",cyan:t=>""+t+"",yellow:t=>""+t+"",black:t=>""+t+"",dim:t=>""+t+"",i:t=>""+t+""};var Cn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(Tn.blue("\n ──────")),e.forEach((t=>{console.log(Tn.blue("\n ┌─────────")),t.forEach((t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=Tn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=Tn.blue(" │ ")+Tn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map((t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return Tn[n](t)}))),t.join(", ")}(e,n);console.log(i)}))}))};var zn=function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(Tn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(Tn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(Tn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(Tn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")}))};var Nn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),Object.keys(e).forEach((n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach(((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${Tn.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)}))};var Ln=function(t={}){let e=this;if("string"==typeof t){let e={};e[t]=!0,t=e}return"undefined"!=typeof window&&window.document?($n(e),e):(!1!==t.tags&&(Cn(e),console.log("\n")),!0===t.chunks&&(zn(e),console.log("\n")),!0===t.highlight&&(Nn(e),console.log("\n")),e)};const Vn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var qn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach((r=>{t.match(r).fullPointer.forEach((t=>{n[t[3]]={fn:e[r],end:t[2]}}))})),n}(t,e),r="";return t.docs.forEach(((e,o)=>{for(let i=0;it.reduce(((t,e)=>t+e.pre+e.text+e.post),"").trim()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.sort(((t,e)=>t.count>e.count?-1:0))}(this.json({normal:!0}).map((t=>t.normal)));if("terms"===t){let t=[];return this.docs.forEach((e=>{let n=e.terms.map((t=>t.text));n=n.filter((t=>t)),t=t.concat(n)})),t}return"tags"===t?this.docs.map((t=>t.reduce(((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t)),{}))):"debug"===t?this.debug():this.text()}};var Gn=Fn;var Dn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&bn.hasOwnProperty(t)?e=Object.assign({},bn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},t,e)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},Rn=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e};var In=function(t,e){let n=Rn(e),r=[];return t.forEach((t=>{let[e]=t,o=n[e]||[];if(o=o.filter((e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e))),0===o.length)return void r.push({passthrough:t});o=o.sort(((t,e)=>t[1]-e[1]));let i=t;o.forEach(((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)}))})),r};var Qn=function(t,e){let n=[];return t.forEach(((r,o)=>{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<20;r+=1){if(e[n-r]){let o=e[n-r].findIndex((e=>e.id===t));if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex((e=>e.id===t));if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex((t=>t.id===o));return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))})),n=n.filter((t=>t.length>0)),n};var Zn={one:{termList:function(t){let e=[];for(let n=0;n{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter((e=>Wn(t,e)));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach((t=>{t[1]n&&(n=t[2])})),[t[0][0],e,n]}(n);o.push(i)})),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)})),n};var Jn=function(t,e){let n=Rn(e),r=[];return t.forEach((t=>{let e=n[t[0]]||[];e=e.filter((e=>Wn(t,e))),0!==e.length&&e.forEach((e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},Yn=function(t,e){return t.map((t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t}))},tr={union:function(t){t=Xn(t,this);let e=Hn(this.fullPointer,t.fullPointer);return e=Yn(e,this.document),this.toView(e)}};tr.and=tr.union,tr.intersection=function(t){t=Xn(t,this);let e=Jn(this.fullPointer,t.fullPointer);return e=Yn(e,this.document),this.toView(e)},tr.not=function(t){t=Xn(t,this);let e=Kn(this.fullPointer,t.fullPointer);return e=Yn(e,this.document),this.toView(e)},tr.difference=tr.not,tr.complement=function(){let t=this.all(),e=Kn(t.fullPointer,this.fullPointer);return e=Yn(e,this.document),this.toView(e)},tr.settle=function(){let t=this.fullPointer;return t.forEach((e=>{t=Hn(t,[e])})),t=Yn(t,this.document),this.update(t)};var er=function(t){Object.assign(t.prototype,tr)},nr={methods:Zn,api:er};var rr=function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t}));let s=i.map((t=>t.pointer));return i=i.map((t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t))),{view:this.update(s),found:i}}};const or=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var ir=function(t,e){const n=e.methods.one.parseMatch;return t.forEach((t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach((t=>{e.push(or(t)),"and"===t.operator&&t.choices&&t.choices.forEach((t=>{t.forEach((t=>{e.push(or(t))}))}))})),e.filter((t=>t))}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach((t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach((t=>{e.push(t)})),t.choices&&t.choices.forEach((t=>{t.forEach((t=>{let n=or(t);n&&e.push(n)}))})),n+=1)})),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter((t=>!t.optional)).length})),t};var sr=function(t,e){t=ir(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=n[e]||[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=n[e]||[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>!e[t.match]&&(e[t.match]=!0,!0)))}));let r=t.filter((t=>0===t.needs.length&&0===t.wants.length));return{hooks:n,always:r}};var lr=function(t,e){return t.map(((n,r)=>{let o=[];Object.keys(e).forEach((n=>{t[r].has(n)&&(o=o.concat(e[n]))}));let i={};return o=o.filter((t=>!i[t.match]&&(i[t.match]=!0,!0))),o}))};var ar=function(t,e){return t.map(((t,n)=>{let r=e[n];return t=(t=(t=t.filter((t=>t.needs.every((t=>r.has(t)))))).filter((t=>void 0===t.ifNo||!0!==t.ifNo.some((t=>r.has(t)))))).filter((t=>{if(0===t.wants.length)return!0;return t.wants.filter((t=>r.has(t))).length>=t.minWant}))}))};var cr=function(t,e,n,r,o){let i=[];for(let n=0;n0&&(a.ptrs.forEach((t=>{t[0]=n;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),i.push(e)})),!0===o.matchOne))return[i[0]]}return i};var ur=function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=lr(o,e.hooks);return i=ar(i,o),e.always.length>0&&(i=i.map((t=>t.concat(e.always)))),i=function(t,e){return t.map(((t,n)=>{let r=e[n].length;return t=t.filter((t=>r>=t.minWords)),t}))}(i,t),cr(i,t,o,n,r)};var hr=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===hr(c,t.tag,r))return;if("-"===c[c.length-1].post)return}if(void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),"Noun"===t.tag)){let e=c[c.length-1];a(e.text)?s([e],"Plural",n,t.safe,"quick-plural"):s([e],"Singular",n,t.safe,"quick-singular")}void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach((e=>e.chunk=t.chunk))}))},pr={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:rr,methods:{one:{buildNet:sr,bulkMatch:ur,bulkTagger:fr}}};const dr=/ /,mr=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},gr=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map((t=>t.text||"["+t.implicit+"]")).join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if("string"==typeof e)if(e=e.trim(),dr.test(e))!function(t,e,n,r){let o=e.split(dr);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),gr(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nwr(t,e,n,r)))};var vr=wr;var yr=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach((t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map((t=>t.trim())).filter((t=>t)),e=e.map((t=>br({id:t}))),e}return[br({id:t})]}(t))})),n=n.filter((t=>t));let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach((n=>{e&&e(t,n),r.push(n)}))}return n},Or=t=>"[object Array]"===Object.prototype.toString.call(t),kr=t=>(t=t||"").trim(),Pr=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||xr.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:jr(t)})}));let r=function(t){let e={children:[]};return t.forEach(((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t}));let n=br({});return t.forEach((t=>{if((t=br(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)})),n}(t):(Er(e=t).forEach(br),e);var e},_r=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Er(t).forEach(((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"})),r},Sr=function(t){let e=Er(t);e.forEach((t=>{delete(t=Object.assign({},t)).children}));let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},Ar={text:_r,txt:_r,array:Sr,flat:Sr},$r=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(_r(t,!0)),null):Ar.hasOwnProperty(e)?Ar[e](t):t},Tr=t=>{Er(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},Cr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=kr(t),!Cr.test(t)){let e=this.json.children.find((e=>e.id===t));return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]));if(!r)return null;t=r}return t})(this.json,t)||br({});return new g(e)}add(t,e={}){if(Or(t))return t.forEach((t=>this.add(kr(t),e))),this;t=kr(t);let n=br({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=kr(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return Er(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=Er(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))})),n={};e.forEach((t=>{t.id&&(n[t.id]=t)})),e.forEach((t=>{t._cache.parents.forEach((e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)}))})),t._cache.children=Object.keys(n)})(this.json),this}list(){return Er(this.json)}fillDown(){var t;return t=this.json,Er(t,((t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach((n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else Or(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){Tr(this.json);let t=Er(this.json),e=t.length>1?1:0;return t.forEach((t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)})),e}out(t){return Tr(this.json),$r(this.json,t)}debug(){return Tr(this.json),$r(this.json,"debug"),this}}const zr=function(t){let e=Pr(t);return new g(e)};zr.prototype.plugin=function(t){t(this)};var Nr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Lr=function(t){if(Nr.hasOwnProperty(t.id))return Nr[t.id];if(Nr.hasOwnProperty(t.is))return Nr[t.is];let e=t._cache.parents.find((t=>Nr[t]));return Nr[e]};var Vr=function(t){const e={};return t.forEach((t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:Lr(t)}})),Object.keys(e).forEach((t=>{let n=new Set(e[t].not);e[t].not.forEach((t=>{e[t]&&e[t].children.forEach((t=>n.add(t)))})),e[t].not=Array.from(n)})),e};const qr=function(t){return t?"string"==typeof t?[t]:t:[]};var Fr=function(t,e){return t=function(t,e){return Object.keys(t).forEach((n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))})),t}(t,e),Object.keys(t).forEach((e=>{t[e].children=qr(t[e].children),t[e].not=qr(t[e].not)})),Object.keys(t).forEach((e=>{(t[e].not||[]).forEach((n=>{t[n]&&t[n].not&&t[n].not.push(e)}))})),t};var Gr=function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach((e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0})),t}(t)),t=Fr(t,e);const n=function(t){const e=Object.keys(t).map((e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}}));return zr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return Vr(n)},Dr={one:{setTag:vr,unTag:yr,addTags:Gr}};const Br=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Ur={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),Br(t)?t.forEach((t=>o.one.setTag(r,t,s,n,e))):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return Br(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach(((t,e)=>{t.forEach(((t,o)=>{n.find((e=>t.tags.has(e)))&&r.push([e,o,o+1])}))}));let o=this.update(r);return this.difference(o)}};var Mr=Ur;var Wr=function(t){Object.assign(t.prototype,Mr)};var Rr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const Ir=new Set(["Auxiliary","Possessive"]);var Qr=function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach((t=>{t.forEach((t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t=t.sort(((t,n)=>{if(Ir.has(t)||!e.hasOwnProperty(n))return 1;if(Ir.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))},Zr={model:{one:{tagSet:{}}},compute:{tagRank:Qr},methods:Dr,api:Wr,lib:Rr};const Hr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Kr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Jr=/((?:\r?\n|\r)+)/;var Xr=function(t){let e=[],n=t.split(Jr);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const ro={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},oo=RegExp("("+Object.keys(ro).join("|")+")","g"),io=RegExp("("+Object.values(ro).join("|")+")","g"),so=function(t){if(!t)return!1;let e=t.match(io);return null!==e&&1===e.length};var lo=function(t){let e=[];for(let n=0;n(t[e]=!0,t)),{});var Oo=function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(jo);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=yo(n),n=wo(n),n=n.filter((t=>t)),n};let ko=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Po=new RegExp(`^[${["%","_"].join("")}]+`,"");const _o=/[\p{Punctuation}\s]+$/u,So=/^[\p{Punctuation}\s]+/u,Ao=/['’]/,$o=/^[a-z]\.([a-z]\.)+/i,To=/^'[0-9]{2}/;var Co=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(So,(e=>{let r=e.match(ko);return r?(n=e.replace(ko,""),r):"'"===n&&To.test(t)?(n="",e):(n=e,"")}))).replace(_o,(o=>{let i=o.match(Po);return i?(r=o.replace(Po,""),i):Ao.test(o)&&/[sn]['’]$/.test(e)&&!1===Ao.test(n)?(r=r.replace(Ao,""),"'"):!0===$o.test(t)?(r=o.replace(/^\./,""),"."):(r=o,"")})))&&(e=e.replace(/ *$/,(t=>(r=t||"",""))),t=e,n=""),{str:t,pre:n,post:r}};var zo=function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach(((t,e)=>{n[t]&&(r[e]=n[t])})),r.join("")};var No=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Lo=/([A-Z]\.)+[A-Z]?,?$/,Vo=/^[A-Z]\.,?$/,qo=/[A-Z]{2,}('s|,)?$/,Fo=/([a-z]\.)+[a-z]\.?$/;var Go=function(t){return function(t){return!0===Lo.test(t)||!0===Fo.test(t)||!0===Vo.test(t)||!0===qo.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Do=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=No(r),r=n(r,e),r=Go(r),t.normal=r};var Bo=function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map(s),n.forEach((t=>{Do(t,e)})),n})),t};const Uo=/[ .][A-Z]\.? *$/i,Mo=/(?:\u2026|\.{2,}) *$/,Wo=/\p{L}/u,Ro=/^[A-Z]\. $/;var Io={one:{killUnicode:zo,tokenize:{splitSentences:po,isSentence:function(t,e){if(!1===Wo.test(t))return!1;if(!0===Uo.test(t))return!1;if(3===t.length&&Ro.test(t))return!1;if(!0===Mo.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)},splitTerms:Oo,splitWhitespace:t=>{let{str:e,pre:n,post:r}=Co(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:Bo}}};var Qo={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Zo={},Ho={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((t=>{t[0].forEach((e=>{Zo[e]=!0,Ho[e]="Abbreviation",void 0!==t[1]&&(Ho[e]=[Ho[e],t[1]])}))}));var Ko=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((t,e)=>(t[e]=!0,t)),{});let Jo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Xo={};Object.keys(Jo).forEach((function(t){Jo[t].split("").forEach((function(e){Xo[e]=t}))}));const Yo=/\//,ti=/[a-z]\.[a-z]/i,ei=/[0-9]/;var ni=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),Yo.test(n)&&!ti.test(n)&&!ei.test(n)){let e=n.split(Yo);e.length<=2&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t};const ri=/^\p{Letter}+-\p{Letter}+$/u;var oi=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),ri.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var ii=function(t){let e=t.docs,n={};for(let t=0;tci(t,ni),machine:t=>ci(t,oi),normal:t=>ci(t,Do),freq:ii,offset:si,index:li,wordCount:ai},methods:Io,model:{one:{aliases:Qo,abbreviations:Zo,prefixes:Ko,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Ho,unicode:Xo}},hooks:["alias","machine","index","id"]};var hi={typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}};const fi=function(){const t=this.docs;if(0===t.length)return this;let e=t[t.length-1]||[],n=e[e.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var pi=function(t){t.prototype.autoFill=fi};var di=function(t,e,n){let r={},o=[],i=n.prefixes||{};return t.forEach((t=>{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]})),r};const mi={safe:!0,min:3};var gi={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},mi,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=di(t,e,this.world());return Object.keys(o).forEach((t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]})),this}};var wi={model:{one:{typeahead:{}}},api:pi,lib:gi,compute:hi,hooks:["typeahead"]};w.extend(tt),w.extend(Mn),w.extend(an),w.extend(nr),w.extend(Zr),w.plugin(St),w.extend(ui),w.plugin(x),w.extend(Wt),w.extend(wi),w.extend(Vt),w.extend(pr);export{w as default}; +var t={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const e={compute:function(t){const{world:e}=this,n=e.compute;return"string"==typeof t&&n.hasOwnProperty(t)?n[t](this):(t=>"[object Array]"===Object.prototype.toString.call(t))(t)?t.forEach((r=>{e.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",t)})):"function"==typeof t?t(this):console.warn("no compute:",t),this}};var n=e;var r={forEach:function(t){return this.fullPointer.forEach(((e,n)=>{let r=this.update([e]);t(r,n)})),this},map:function(t,e){let n=this.fullPointer.map(((e,n)=>{let r=this.update([e]),o=t(r,n);return void 0===o?this.none():o}));if(0===n.length)return e||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((t=>{r=r.concat(t.fullPointer)})),this.toView(r)},filter:function(t){let e=this.fullPointer;return e=e.filter(((e,n)=>{let r=this.update([e]);return t(r,n)})),this.update(e)},find:function(t){let e=this.fullPointer.find(((e,n)=>{let r=this.update([e]);return t(r,n)}));return this.update([e])},some:function(t){return this.fullPointer.some(((e,n)=>{let r=this.update([e]);return t(r,n)}))},random:function(t=1){let e=this.fullPointer,n=Math.floor(Math.random()*e.length);return n+t>this.length&&(n=this.length-t,n=n<0?0:n),e=e.slice(n,n+t),this.update(e)}};const o={termList:function(){return this.methods.one.termList(this.docs)},terms:function(t){let e=this.match(".");return"number"==typeof t?e.eq(t):e},groups:function(t){if(t||0===t)return this.update(this._groups[t]||[]);let e={};return Object.keys(this._groups).forEach((t=>{e[t]=this.update(this._groups[t])})),e},eq:function(t){let e=this.pointer;return e||(e=this.docs.map(((t,e)=>[e]))),e[t]?this.update([e[t]]):this.none()},first:function(){return this.eq(0)},last:function(){let t=this.fullPointer.length-1;return this.eq(t)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(t,e){let n=this.pointer||this.docs.map(((t,e)=>[e]));return n=n.slice(t,e),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let t=this.fullPointer.map((t=>[t[0]]));return this.update(t).toView()},none:function(){return this.update([])},isDoc:function(t){if(!t||!t.isView)return!1;let e=this.fullPointer,n=t.fullPointer;return!e.length!==n.length&&e.every(((t,e)=>!!n[e]&&(t[0]===n[e][0]&&t[1]===n[e][1]&&t[2]===n[e][2])))},wordCount:function(){return this.docs.reduce(((t,e)=>(t+=e.filter((t=>""!==t.text)).length,t)),0)}};o.group=o.groups,o.fullSentence=o.fullSentences,o.sentence=o.fullSentences,o.lastTerm=o.lastTerms,o.firstTerm=o.firstTerms;var i=o;const s=Object.assign({},i,n,r);s.get=s.eq;var l=s;class View{constructor(e,n,r={}){[["document",e],["world",t],["_groups",r],["_cache",null],["viewType","View"]].forEach((t=>{Object.defineProperty(this,t[0],{value:t[1],writable:!0})})),this.ptrs=n}get docs(){let e=this.document;return this.ptrs&&(e=t.methods.one.getDoc(this.ptrs,this.document)),e}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:t,ptrs:e,document:n}=this,r=e||t.map(((t,e)=>[e]));return r.map((t=>{let[e,r,o,i,s]=t;return r=r||0,o=o||(n[e]||[]).length,n[e]&&n[e][r]&&(i=i||n[e][r].id,n[e][o-1]&&(s=s||n[e][o-1].id)),[e,r,o,i,s]}))}update(t){let e=new View(this.document,t);if(this._cache&&t&&t.length>0){let n=[];t.forEach(((t,e)=>{let[r,o,i]=t;(1===t.length||0===o&&this.document[r].length===i)&&(n[e]=this._cache[r])})),n.length>0&&(e._cache=n)}return e.world=this.world,e}toView(t){return new View(this.document,t||this.pointer)}fromText(t){const{methods:e}=this;let n=e.one.tokenize.fromString(t,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let t=this.document.slice(0);t=t.map((t=>t.map((t=>((t=Object.assign({},t)).tags=new Set(t.tags),t)))));let e=this.update(this.pointer);return e.document=t,e._cache=this._cache,e}}Object.assign(View.prototype,l);var a=View;const c=function(t){return t&&"object"==typeof t&&!Array.isArray(t)};function u(t,e){if(c(e))for(const n in e)c(e[n])?(t[n]||Object.assign(t,{[n]:{}}),u(t[n],e[n])):Object.assign(t,{[n]:e[n]});return t}var h=function(t,e,n,r){const{methods:o,model:i,compute:s,hooks:l}=e;t.methods&&function(t,e){for(const n in e)t[n]=t[n]||{},Object.assign(t[n],e[n])}(o,t.methods),t.model&&u(i,t.model),t.irregulars&&function(t,e){let n=t.two.models||{};Object.keys(e).forEach((t=>{e[t].pastTense&&(n.toPast&&(n.toPast.exceptions[t]=e[t].pastTense),n.fromPast&&(n.fromPast.exceptions[e[t].pastTense]=t)),e[t].presentTense&&(n.toPresent&&(n.toPresent.exceptions[t]=e[t].presentTense),n.fromPresent&&(n.fromPresent.exceptions[e[t].presentTense]=t)),e[t].gerund&&(n.toGerund&&(n.toGerund.exceptions[t]=e[t].gerund),n.fromGerund&&(n.fromGerund.exceptions[e[t].gerund]=t)),e[t].comparative&&(n.toComparative&&(n.toComparative.exceptions[t]=e[t].comparative),n.fromComparative&&(n.fromComparative.exceptions[e[t].comparative]=t)),e[t].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[t]=e[t].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[e[t].superlative]=t))}))}(i,t.irregulars),t.compute&&Object.assign(s,t.compute),l&&(e.hooks=l.concat(t.hooks||[])),t.api&&t.api(n),t.lib&&Object.keys(t.lib).forEach((e=>r[e]=t.lib[e])),t.tags&&r.addTags(t.tags),t.words&&r.addWords(t.words),t.mutate&&t.mutate(e)};const f=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var p=function(t,e,n){const{methods:r}=n;let o=new e([]);if(o.world=n,"number"==typeof t&&(t=String(t)),!t)return o;if("string"==typeof t){return new e(r.one.tokenize.fromString(t,n))}if(i=t,"[object Object]"===Object.prototype.toString.call(i)&&t.isView)return new e(t.document,t.ptrs);var i;if(f(t)){if(f(t[0])){let n=t.map((t=>t.map((t=>({text:t,normal:t,pre:"",post:" ",tags:new Set})))));return new e(n)}let n=function(t){return t.map((t=>t.terms.map((t=>(f(t.tags)&&(t.tags=new Set(t.tags)),t)))))}(t);return new e(n)}return o};let d=Object.assign({},t);const m=function(t,e){e&&m.addWords(e);let n=p(t,a,d);return t&&n.compute(d.hooks),n};Object.defineProperty(m,"_world",{value:d,writable:!0}),m.tokenize=function(t,e){const{compute:n}=this._world;e&&m.addWords(e);let r=p(t,a,d);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},m.plugin=function(t){return h(t,this._world,a,this),this},m.extend=m.plugin,m.world=function(){return this._world},m.model=function(){return this._world.model},m.methods=function(){return this._world.methods},m.hooks=function(){return this._world.hooks},m.verbose=function(t){const e="undefined"!=typeof process&&process.env?process.env:self.env||{};return e.DEBUG_TAGS="tagger"===t||!0===t||"",e.DEBUG_MATCH="match"===t||!0===t||"",e.DEBUG_CHUNKS="chunker"===t||!0===t||"",this},m.version="14.6.0";var w=m;var v=function(t){let e=t.map((t=>{let e=new Set;return t.forEach((t=>{""!==t.normal&&e.add(t.normal),t.switch&&e.add(`%${t.switch}%`),t.implicit&&e.add(t.implicit),t.machine&&e.add(t.machine),t.root&&e.add(t.root),t.alias&&t.alias.forEach((t=>e.add(t)));let n=Array.from(t.tags);for(let t=0;t/^\p{Lu}[\p{Ll}'’]/u.test(t)||/^\p{Lu}$/u.test(t),E=(t,e,n)=>{if(n.forEach((t=>t.dirty=!0)),t){let r=[e,0].concat(n);Array.prototype.splice.apply(t,r)}return t},O=function(t){let e=t[t.length-1];!e||/ $/.test(e.post)||/[-–—]/.test(e.post)||(e.post+=" ")},k=(t,e,n)=>{const r=/[-.?!,;:)–—'"]/g;let o=t[e-1];if(!o)return;let i=o.post;if(r.test(i)){let t=i.match(r).join(""),e=n[n.length-1];e.post=t+e.post,o.post=o.post.replace(r,"")}},P=function(t,e,n,r){let[o,i,s]=e;0===i||s===r[o].length?O(n):(O(n),O([t[e[1]]])),function(t,e,n){let r=t[e];if(0!==e||!j(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(t=>t.toUpperCase()));let o=t[e];o.tags.has("ProperNoun")||o.tags.has("Acronym")||j(o.text)&&o.text.length>1&&(o.text=(i=o.text,i.replace(/^\p{Lu}/u,(t=>t.toLowerCase()))));var i}(t,i,n),E(t,i,n)};let _=0;const S=t=>(t=t.length<3?"0"+t:t).length<3?"0"+t:t;var A=function(t){let[e,n]=t.index||[0,0];_+=1,_=_>46655?0:_,e=e>46655?0:e,n=n>1294?0:n;let r=S(_.toString(36));r+=S(e.toString(36));let o=n.toString(36);return o=o.length<2?"0"+o:o,r+=o,r+=parseInt(36*Math.random(),10).toString(36),t.normal+"|"+r.toUpperCase()};const $=function(t){if(t.has("@hasContraction")&&"function"==typeof t.contractions){t.grow("@hasContraction").contractions().expand()}},T=t=>"[object Array]"===Object.prototype.toString.call(t),C=function(t,e,n){const{document:r,world:o}=e;e.uncache();let i=e.fullPointer,s=e.fullPointer;e.forEach(((l,a)=>{let c=l.fullPointer[0],[u]=c,h=r[u],f=function(t,e){const{methods:n}=e;return"string"==typeof t?n.one.tokenize.fromString(t,e)[0]:"object"==typeof t&&t.isView?t.clone().docs[0]||[]:T(t)?T(t[0])?t[0]:t:[]}(t,o);0!==f.length&&(f=function(t){return t.map((t=>(t.id=A(t),t)))}(f),n?($(e.update([c]).firstTerm()),P(h,c,f,r)):($(e.update([c]).lastTerm()),function(t,e,n,r){let[o,,i]=e,s=(r[o]||[]).length;i{let n=e(t);t.replaceWith(n)})),t}(r,t);t=function(t,e){if("string"!=typeof t)return t;let n=e.groups();return t=t.replace(L,(t=>{let e=t.replace(/\$/,"");return n.hasOwnProperty(e)?n[e].text():t})),t}(t,r);let o=this.update(n);n=n.map((t=>t.slice(0,3)));let i=(o.docs[0]||[]).map((t=>Array.from(t.tags)));if(r.insertAfter(t),o.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(o);let s=r.toView(n).compute(["index","lexicon"]);return s.world.compute.preTagger&&s.compute("preTagger"),e.tags&&s.terms().forEach(((t,e)=>{t.tagSafe(i[e])})),e.case&&s.docs[0]&&s.docs[0][0]&&0===s.docs[0][0].index[1]&&(s.docs[0][0].text=s.docs[0][0].text.replace(/\w\S*/g,(t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase()))),s},V.replace=function(t,e,n){if(t&&!e)return this.replaceWith(t,n);let r=this.match(t);return r.found?(this.soften(),r.replaceWith(e,n)):this};var q=V;var F=function(t,e){e.forEach((e=>{let[n,r,o]=e,i=o-r;t[n]&&(o===t[n].length&&o>1&&function(t,e){let n=t.length-1,r=t[n],o=t[n-e];o&&r&&(o.post+=r.post,o.post=o.post.replace(/ +([.?!,;:])/,"$1"),o.post=o.post.replace(/[,;:]+([.?!])/,"$1"))}(t[n],i),t[n].splice(r,i))}));for(let e=t.length-1;e>=0;e-=1)if(0===t[e].length&&(t.splice(e,1),e===t.length&&t[e-1])){let n=t[e-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return t};const G={remove:function(t){const{indexN:e}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;t&&(n=this,r=this.match(t));let o=!n.ptrs;if(r.has("@hasContraction")&&r.contractions){r.grow("@hasContraction").contractions().expand()}let i=n.fullPointer,s=r.fullPointer.reverse(),l=F(this.document,s);return i=function(t,e){return t=t.map((t=>{let[n]=t;return e[n]?(e[n].forEach((e=>{let n=e[2]-e[1];t[1]<=e[1]&&t[2]>=e[2]&&(t[2]-=n)})),t):t})),t.forEach(((e,n)=>{if(0===e[1]&&0==e[2])for(let e=n+1;et[2]-t[1]>0))).map((t=>(t[3]=null,t[4]=null,t)))}(i,e(s)),n.ptrs=i,n.document=l,n.compute("index"),o&&(n.ptrs=void 0),t?n.toView(i):(this.ptrs=[],n.none())}};G.delete=G.remove;var D=G;const B={pre:function(t,e){return void 0===t&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===e?r.pre+=t:r.pre=t})),this)},post:function(t,e){if(void 0===t){let t=this.docs[this.docs.length-1];return t[t.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===e?r.post+=t:r.post=t})),this},trim:function(){if(!this.found)return this;let t=this.docs,e=t[0][0];e.pre=e.pre.trimStart();let n=t[t.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.pre=""),t[n+1]&&(e.post="-")}))})),this},dehyphenate:function(){const t=/[-–—]/;return this.docs.forEach((e=>{e.forEach((e=>{t.test(e.post)&&(e.post=" ")}))})),this},toQuotations:function(t,e){return t=t||'"',e=e||'"',this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this},toParentheses:function(t,e){return t=t||"(",e=e||")",this.docs.forEach((n=>{n[0].pre=t+n[0].pre;let r=n[n.length-1];r.post=e+r.post})),this}};B.deHyphenate=B.dehyphenate,B.toQuotation=B.toQuotations;var U=B;var M={alpha:(t,e)=>t.normale.normal?1:0,length:(t,e)=>{let n=t.normal.trim().length,r=e.normal.trim().length;return nr?-1:0},wordCount:(t,e)=>t.wordse.words?-1:0,sequential:(t,e)=>t[0]e[0]?-1:t[1]>e[1]?1:-1,byFreq:function(t){let e={};return t.forEach((t=>{e[t.normal]=e[t.normal]||0,e[t.normal]+=1})),t.sort(((t,n)=>{let r=e[t.normal],o=e[n.normal];return ro?-1:0})),t}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),R=new Set(["freq","frequency","topk","repeats"]),I=new Set(["alpha","alphabetical"]);var Q={unique:function(){let t=new Set;return this.filter((e=>{let n=e.text("machine");return!t.has(n)&&(t.add(n),!0)}))},reverse:function(){let t=this.pointer||this.docs.map(((t,e)=>[e]));return t=[].concat(t),t=t.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(t)},sort:function(t){let{docs:e,pointer:n}=this;if(this.uncache(),"function"==typeof t)return function(t,e){let n=t.fullPointer;return n=n.sort(((n,r)=>(n=t.update([n]),r=t.update([r]),e(n,r)))),t.ptrs=n,t}(this,t);t=t||"alpha";let r=n||e.map(((t,e)=>[e])),o=e.map(((t,e)=>({index:e,words:t.length,normal:t.map((t=>t.machine||t.normal||"")).join(" "),pointer:r[e]})));return W.has(t)&&(t="sequential"),I.has(t)&&(t="alpha"),R.has(t)?(o=M.byFreq(o),this.update(o.map((t=>t.pointer)))):"function"==typeof M[t]?(o=o.sort(M[t]),this.update(o.map((t=>t.pointer)))):this}};const Z=function(t,e){let n=t[t.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),t=t.concat(e)};var H={concat:function(t){const{methods:e,document:n,world:r}=this;if("string"==typeof t){let o=e.one.tokenize.fromString(t,r),i=this.fullPointer,s=i[i.length-1][0];return E(n,s+1,o),this.compute("index")}if("object"==typeof t&&t.isView)return function(t,e){if(t.document===e.document){let n=t.fullPointer.concat(e.fullPointer);return t.toView(n).compute("index")}return e.fullPointer.forEach((e=>{e[0]+=t.document.length})),t.document=Z(t.document,e.document),t.all()}(this,t);if(o=t,"[object Array]"===Object.prototype.toString.call(o)){let e=Z(this.document,t);return this.document=e,this.all()}var o;return this}};var K={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let t=this.ptrs;return!t||t.length<1||(t=t.map((t=>t.slice(0,3))),this.ptrs=t),this}};const J=Object.assign({},{toLowerCase:function(){return this.termList().forEach((t=>{t.text=t.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((t=>{t.text=t.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((t=>{t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((t=>{t.forEach(((e,n)=>{0!==n&&(e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(t=>t.toUpperCase()))),n!==t.length-1&&(e.post="")}))})),this}},N,q,D,U,Q,H,K);var X=function(t){Object.assign(t.prototype,J)};const Y={id:function(t){let e=t.docs;for(let t=0;t(t.implicit=t.text,t.machine=t.text,t.pre="",t.post="",t.text="",t.normal="",t.index=[r,o+e],t))),n[0]&&(n[0].pre=t[r][o].pre,n[n.length-1].post=t[r][o].post,n[0].text=t[r][o].text,n[0].normal=t[r][o].normal),t[r].splice(o,1,...n))};const rt=/'/,ot=new Set(["what","how","when","where","why"]),it=new Set(["be","go","start","think","need"]),st=new Set(["been","gone"]);var lt=function(t,e){let n=t[e].normal.split(rt)[0];if(ot.has(n))return[n,"did"];if(t[e+1]){if(st.has(t[e+1].normal))return[n,"had"];if(it.has(t[e+1].normal))return[n,"would"]}return null};var at=function(t,e){if("ain't"===t[e].normal||"aint"===t[e].normal)return null;return[t[e].normal.replace(/n't/,""),"not"]};const ct=/'/;var ut=(t,e)=>["je",t[e].normal.split(ct)[1]],ht=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},ft=(t,e)=>{let n=t[e].normal.split(ct)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pt=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,dt=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,mt=/^[0-9]{3}-[0-9]{4}$/;var gt=function(t,e){let n=t[e],r=n.text.match(pt);return null!==r?!0===n.tags.has("PhoneNumber")||mt.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(dt),null!==r?[r[1],"to",r[4]]:null)};const wt=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,vt=new Set(["st","nd","rd","th","am","pm","max","°","s","e"]);var yt=function(t,e){let n=t[e].text.match(wt);if(null!==n){let t=n[2].toLowerCase().trim();return vt.has(t)?null:[n[1],t]}return null};const bt=/'/,xt=/^[0-9][^-–—]*[-–—].*?[0-9]/,jt=function(t,e,n,r){let o=e.update();o.document=[t];let i=n+r;n>0&&(n-=1),t[i]&&(i+=1),o.ptrs=[[0,n,i]]},Et={t:(t,e)=>at(t,e),d:(t,e)=>lt(t,e)},Ot={j:(t,e)=>ut(t,e),l:(t,e)=>ht(t,e),d:(t,e)=>ft(t,e)},kt=function(t,e,n,r){for(let o=0;o{let{world:e,document:n}=t;const{model:r,methods:o}=e;let i=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,s)=>{for(let l=r.length-1;l>=0;l-=1){let a=null,c=null;!0===bt.test(r[l].normal)&&([a,c]=r[l].normal.split(bt));let u=kt(i,r[l],a,c);!u&&Et.hasOwnProperty(c)&&(u=Et[c](r,l,e)),!u&&Ot.hasOwnProperty(a)&&(u=Ot[a](r,l)),u?(u=Pt(u,t),nt(n,[s,l],u),jt(n[s],t,l,u.length)):xt.test(r[l].normal)?(u=gt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag(u,"NumberRange",e),u[2]&&u[2].tags.has("Time")&&o.one.setTag([u[0]],"Time",e,null,"time-range"),jt(n[s],t,l,u.length))):(u=yt(r,l),u&&(u=Pt(u,t),nt(n,[s,l],u),o.one.setTag([u[1]],"Unit",e,null,"contraction-unit")))}}))};var St={model:et,compute:{contractions:_t},hooks:["contractions"]};var At=function(t,e,n){const{model:r,methods:o}=n,i=o.one.setTag,s=r.one._multiCache||{},l=r.one.lexicon||{};let a=t[e],c=a.machine||a.normal;return void 0!==t[e+1]&&!0===s[c]?function(t,e,n,r,o){let i=e+4>t.length?t.length-e:4,s=t[e].machine||t[e].normal;for(let l=1;ls.hasOwnProperty(t)));if(t){return i([l],s[t],n,!1,"1-lexicon-alias"),!0}}if(!0===$t.test(a)){let t=a.replace($t,"");if(s.hasOwnProperty(t)&&t.length>3&&Tt.has(s[t]))return i([l],s[t],n,!1,"1-lexicon-prefix"),!0}return null};var zt={lexicon:function(t){const e=t.world;t.docs.forEach((t=>{for(let n=0;n{let o=t[r],i=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);i.length>1&&(n[i[0]]=!0),e[r]=e[r]||o})),delete e[""],delete e.null,delete e[" "],{lex:e,_multi:n}};var Lt={addWords:function(t){const e=this.world(),{methods:n,model:r}=e;if(t)if(Object.keys(t).forEach((e=>{"string"==typeof t[e]&&t[e].startsWith("#")&&(t[e]=t[e].replace(/^#/,""))})),n.two.expandLexicon){let{lex:o,_multi:i}=n.two.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else if(n.one.expandLexicon){let{lex:o,_multi:i}=n.one.expandLexicon(t,e);Object.assign(r.one.lexicon,o),Object.assign(r.one._multiCache,i)}else Object.assign(r.one.lexicon,t)}};var Vt={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Nt}},compute:zt,lib:Lt,hooks:["lexicon"]};var qt=function(t,e){let n=[{}],r=[null],o=[0],i=[],s=0;t.forEach((function(t){let o=0,i=function(t,e){const{methods:n,model:r}=e;return n.one.tokenize.splitTerms(t,r).map(n.one.tokenize.splitWhitespace).map((t=>t.text.toLowerCase()))}(t,e);for(let t=0;t0&&!n[s].hasOwnProperty(a);)s=o[s];if(n.hasOwnProperty(s)){let t=n[s][a];o[c]=t,r[t]&&(r[c]=r[c]||[],r[c]=r[c].concat(r[t]))}else o[c]=0}}return{goNext:n,endAs:r,failTo:o}};const Ft=function(t,e,n){let r=0,o=[];for(let i=0;i0&&(void 0===e.goNext[r]||!e.goNext[r].hasOwnProperty(s));)r=e.failTo[r]||0;if(e.goNext[r].hasOwnProperty(s)&&(r=e.goNext[r][s],e.endAs[r])){let n=e.endAs[r];for(let e=0;e0&&(r=r.concat(a))}return t.update(r)};const Bt=(t,e)=>{for(let n=t.length-1;n>=0;n-=1)if(t[n]!==e)return t=t.slice(0,n+1),t;return t};var Ut=function(t){return t.goNext=t.goNext.map((t=>{if(0!==Object.keys(t).length)return t})),t.goNext=Bt(t.goNext,void 0),t.failTo=Bt(t.failTo,0),t.endAs=Bt(t.endAs,null),t};const Mt={buildTrie:function(t){const e=qt(t,this.world());return Ut(e)}};Mt.compile=Mt.buildTrie;var Wt={api:function(t){t.prototype.lookup=function(t,e={}){if(!t)return this.none();"string"==typeof t&&(t=[t]);let n=(r=t,"[object Object]"===Object.prototype.toString.call(r)?t:qt(t,this.world));var r;let o=Dt(this,n,e);return o=o.settle(),o}},lib:Mt};const Rt=function(t,e){return e?(t.forEach((t=>{let n=t[0];e[n]&&(t[0]=e[n][0],t[1]+=e[n][1],t[2]+=e[n][1])})),t):t},It=function(t,e){let{ptrs:n,byGroup:r}=t;return n=Rt(n,e),Object.keys(r).forEach((t=>{r[t]=Rt(r[t],e)})),{ptrs:n,byGroup:r}},Qt=t=>"[object Object]"===Object.prototype.toString.call(t),Zt=t=>t&&Qt(t)&&!0===t.isView,Ht=t=>t&&Qt(t)&&!0===t.isNet,Kt=function(t,e,n){const r=n.methods.one;return"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=r.killUnicode(t,n),t=r.parseMatch(t,e,n)),t};var Jt={matchOne:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t).eq(0);if(Ht(t))return this.sweep(t,{tagger:!1,matchOne:!0}).view;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},match:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.intersection(t);if(Ht(t))return this.sweep(t,{tagger:!1}).view.settle();let o={regs:t=Kt(t,n,this.world),group:e},i=r.match(this.docs,o,this._cache),{ptrs:s,byGroup:l}=It(i,this.fullPointer),a=this.toView(s);return a._groups=l,a},has:function(t,e,n){const r=this.methods.one;if(Zt(t)){return t.fullPointer.length>0}if(Ht(t))return this.sweep(t,{tagger:!1}).view.found;let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0};return r.match(this.docs,o,this._cache).ptrs.length>0},if:function(t,e,n){const r=this.methods.one;if(Zt(t))return this.filter((e=>e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.if(e)}let o={regs:t=Kt(t,n,this.world),group:e,justOne:!0},i=this.fullPointer,s=this._cache||[];i=i.filter(((t,e)=>{let n=this.update([t]);return r.match(n.docs,o,s[e]).ptrs.length>0}));let l=this.update(i);return this._cache&&(l._cache=i.map((t=>s[t[0]]))),l},ifNo:function(t,e,n){const{methods:r}=this,o=r.one;if(Zt(t))return this.filter((e=>!e.intersection(t).found));if(Ht(t)){let e=this.sweep(t,{tagger:!1}).view.settle();return this.ifNo(e)}t=Kt(t,n,this.world);let i=this._cache||[],s=this.filter(((n,r)=>{let s={regs:t,group:e,justOne:!0};return 0===o.match(n.docs,s,i[r]).ptrs.length}));return this._cache&&(s._cache=s.ptrs.map((t=>i[t[0]]))),s}};var Xt={before:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer);Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?1:-1))[0];e[1]>0&&o.push([e[0],0,e[1]])}));let s=this.toView(o);return t?s.match(t,e,n):s},after:function(t,e,n){const{indexN:r}=this.methods.one.pointer;let o=[],i=r(this.fullPointer),s=this.document;Object.keys(i).forEach((t=>{let e=i[t].sort(((t,e)=>t[1]>e[1]?-1:1))[0],[n,,r]=e;r{let i=n.before(t,e);if(i.found){let t=i.terms();r[o][1]-=t.length,r[o][3]=t.docs[0][0].id}})),this.update(r)},growRight:function(t,e,n){"string"==typeof t&&(t=this.world.methods.one.parseMatch(t,n,this.world)),t[0].start=!0;let r=this.fullPointer;return this.forEach(((n,o)=>{let i=n.after(t,e);if(i.found){let t=i.terms();r[o][2]+=t.length,r[o][4]=null}})),this.update(r)},grow:function(t,e,n){return this.growRight(t,e,n).growLeft(t,e,n)}};const Yt=function(t,e){return[t[0],t[1],e[2]]},te=(t,e,n)=>{return"string"==typeof t||(r=t,"[object Array]"===Object.prototype.toString.call(r))?e.match(t,n):t||e.none();var r},ee=function(t,e){let[n,r,o]=t;return e.document[n]&&e.document[n][r]&&(t[3]=t[3]||e.document[n][r].id,e.document[n][o-1]&&(t[4]=t[4]||e.document[n][o-1].id)),t},ne={splitOn:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),i.push(t.match),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitBefore:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),i.push(t.before),t.match&&t.after?i.push(Yt(t.match,t.after)):(i.push(t.match),i.push(t.after))})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)},splitAfter:function(t,e){const{splitAll:n}=this.methods.one.pointer;let r=te(t,this,e).fullPointer,o=n(this.fullPointer,r),i=[];return o.forEach((t=>{i.push(t.passthrough),t.before&&t.match?i.push(Yt(t.before,t.match)):(i.push(t.before),i.push(t.match)),i.push(t.after)})),i=i.filter((t=>t)),i=i.map((t=>ee(t,this))),this.update(i)}};ne.split=ne.splitAfter;var re=ne;const oe=Object.assign({},Jt,Xt,re);oe.lookBehind=oe.before,oe.lookBefore=oe.before,oe.lookAhead=oe.after,oe.lookAfter=oe.after,oe.notIf=oe.ifNo;var ie=function(t){Object.assign(t.prototype,oe)};const se=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,le=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,ae=/ /g,ce=t=>/^[![^]*(<[^<]*>)?\//.test(t)&&/\/[?\]+*$~]*$/.test(t),ue=function(t){return t=(t=t.map((t=>t.trim()))).filter((t=>t))};var he=function(t){let e=t.split(se),n=[];e.forEach((t=>{ce(t)?n.push(t):n=n.concat(t.split(le))})),n=ue(n);let r=[];return n.forEach((t=>{(t=>/^[![^]*(<[^<]*>)?\(/.test(t)&&/\)[?\]+*$~]*$/.test(t))(t)||ce(t)?r.push(t):r=r.concat(t.split(ae))})),r=ue(r),r};const fe=/\{([0-9]+)?(, *[0-9]*)?\}/,pe=/&&/,de=new RegExp(/^<\s*(\S+)\s*>/),me=t=>t.charAt(0).toUpperCase()+t.substring(1),ge=t=>t.charAt(t.length-1),we=t=>t.charAt(0),ve=t=>t.substring(1),ye=t=>t.substring(0,t.length-1),be=function(t){return t=ve(t),t=ye(t)},xe=function(t,e){let n={};for(let r=0;r<2;r+=1){if("$"===ge(t)&&(n.end=!0,t=ye(t)),"^"===we(t)&&(n.start=!0,t=ve(t)),("["===we(t)||"]"===ge(t))&&(n.group=null,"["===we(t)&&(n.groupStart=!0),"]"===ge(t)&&(n.groupEnd=!0),t=(t=t.replace(/^\[/,"")).replace(/\]$/,""),"<"===we(t))){const e=de.exec(t);e.length>=2&&(n.group=e[1],t=t.replace(e[0],""))}if("+"===ge(t)&&(n.greedy=!0,t=ye(t)),"*"!==t&&"*"===ge(t)&&"\\*"!==t&&(n.greedy=!0,t=ye(t)),"?"===ge(t)&&(n.optional=!0,t=ye(t)),"!"===we(t)&&(n.negative=!0,t=ve(t)),"~"===we(t)&&"~"===ge(t)&&t.length>2&&(t=be(t),n.fuzzy=!0,n.min=e.fuzzy||.85,!1===/\(/.test(t)))return n.word=t,n;if("("===we(t)&&")"===ge(t)){pe.test(t)?(n.choices=t.split(pe),n.operator="and"):(n.choices=t.split("|"),n.operator="or"),n.choices[0]=ve(n.choices[0]);let r=n.choices.length-1;n.choices[r]=ye(n.choices[r]),n.choices=n.choices.map((t=>t.trim())),n.choices=n.choices.filter((t=>t)),n.choices=n.choices.map((t=>t.split(/ /g).map((t=>xe(t,e))))),t=""}if("/"===we(t)&&"/"===ge(t))return t=be(t),e.caseSensitive&&(n.use="text"),n.regex=new RegExp(t),n;if("{"===we(t)&&"}"===ge(t)){if(t=be(t),n.id=t,n.root=t,/\//.test(t)){let t=n.root.split(/\//);n.root=t[0],n.pos=t[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==t[2]&&(n.num=t[2])}return n}if("<"===we(t)&&">"===ge(t))return t=be(t),n.chunk=me(t),n.greedy=!0,n;if("%"===we(t)&&"%"===ge(t))return t=be(t),n.switch=t,n}return!0===fe.test(t)&&(t=t.replace(fe,((t,e,r)=>(void 0===r?(n.min=Number(e),n.max=Number(e)):(r=r.replace(/, */,""),void 0===e?(n.min=0,n.max=Number(r)):(n.min=Number(e),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===we(t)?(n.tag=ve(t),n.tag=me(n.tag),n):"@"===we(t)?(n.method=ve(t),n):"."===t?(n.anything=!0,n):"*"===t?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(t&&(t=(t=t.replace("\\*","*")).replace("\\.","."),e.caseSensitive?n.use="text":t=t.toLowerCase(),n.word=t),n)};var je=xe;const Ee=/[a-z0-9][-–—][a-z]/i;var Oe=function(t,e){let n=e.model.one.prefixes;for(let e=t.length-1;e>=0;e-=1){let r=t[e];if(r.word&&Ee.test(r.word)){let o=r.word.split(/[-–—]/g);if(n.hasOwnProperty(o[0]))continue;o=o.filter((t=>t)).reverse(),t.splice(e,1),o.forEach((n=>{let o=Object.assign({},r);o.word=n,t.splice(e,0,o)}))}}return t};const ke=function(t,e){let{all:n}=e.methods.two.transform.verb||{},r=t.root;return n?n(r,e.model):[]},Pe=function(t,e){let{all:n}=e.methods.two.transform.noun||{};return n?n(t.root,e.model):[t.root]},_e=function(t,e){let{all:n}=e.methods.two.transform.adjective||{};return n?n(t.root,e.model):[t.root]};var Se=function(t,e){return t=t.map((t=>{if(t.root)if(e.methods.two&&e.methods.two.transform){let n=[];t.pos?"Verb"===t.pos?n=n.concat(ke(t,e)):"Noun"===t.pos?n=n.concat(Pe(t,e)):"Adjective"===t.pos&&(n=n.concat(_e(t,e))):(n=n.concat(ke(t,e)),n=n.concat(Pe(t,e)),n=n.concat(_e(t,e))),n=n.filter((t=>t)),n.length>0&&(t.operator="or",t.fastOr=new Set(n))}else t.machine=t.root,delete t.id,delete t.root;return t}))};var Ae=function(t){return t=function(t){let e=0,n=null;for(let r=0;r(t.fuzzy&&t.choices&&t.choices.forEach((e=>{1===e.length&&e[0].word&&(e[0].fuzzy=!0,e[0].min=t.min)})),t)))}(t=t.map((t=>{if(void 0!==t.choices){if("or"!==t.operator)return t;if(!0===t.fuzzy)return t;!0===t.choices.every((t=>{if(1!==t.length)return!1;let e=t[0];return!0!==e.fuzzy&&!e.start&&!e.end&&void 0!==e.word&&!0!==e.negative&&!0!==e.optional&&!0!==e.method}))&&(t.fastOr=new Set,t.choices.forEach((e=>{t.fastOr.add(e[0].word)})),delete t.choices)}return t}))),t};var $e=function(t,e,n){if(null==t||""===t)return[];e=e||{},"number"==typeof t&&(t=String(t));let r=he(t);return r=r.map((t=>je(t,e))),r=Oe(r,n),r=Se(r,n),r=Ae(r),r};const Te=function(t,e){for(let n of e)if(t.has(n))return!0;return!1};var Ce=function(t,e){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(o||100))return o||100;let i,s,l,a,c,u,h=[];for(let t=0;t4)return n;l=e[i-1],a=s===l?0:1,c=h[o-1][i]+1,(u=h[o][i-1]+1)1&&i>1&&s===e[i-2]&&t[o-2]===l&&(u=h[o-2][i-2]+a)-1!==t.post.indexOf(e),Ge=(t,e)=>-1!==t.pre.indexOf(e),De={hasQuote:t=>Ne.test(t.pre)||Le.test(t.post),hasComma:t=>Fe(t,","),hasPeriod:t=>!0===Fe(t,".")&&!1===Fe(t,"..."),hasExclamation:t=>Fe(t,"!"),hasQuestionMark:t=>Fe(t,"?")||Fe(t,"¿"),hasEllipses:t=>Fe(t,"..")||Fe(t,"…")||Ge(t,"..")||Ge(t,"…"),hasSemicolon:t=>Fe(t,";"),hasColon:t=>Fe(t,":"),hasSlash:t=>/\//.test(t.text),hasHyphen:t=>Ve.test(t.post)||Ve.test(t.pre),hasDash:t=>qe.test(t.post)||qe.test(t.pre),hasContraction:t=>Boolean(t.implicit),isAcronym:t=>t.tags.has("Acronym"),isKnown:t=>t.tags.size>0,isTitleCase:t=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(t.text),isUpperCase:t=>/^\p{Lu}+$/u.test(t.text)};De.hasQuotation=De.hasQuote;var Be=De;let Ue=function(){};Ue=function(t,e,n,r){let o=function(t,e,n,r){if(!0===e.anything)return!0;if(!0===e.start&&0!==n)return!1;if(!0===e.end&&n!==r-1)return!1;if(void 0!==e.word){if(e.use)return e.word===t[e.use];if(null!==t.machine&&t.machine===e.word)return!0;if(void 0!==t.alias&&t.alias.hasOwnProperty(e.word))return!0;if(!0===e.fuzzy){if(e.word===t.root)return!0;if(ze(e.word,t.normal)>=e.min)return!0}return!(!t.alias||!t.alias.some((t=>t===e.word)))||e.word===t.text||e.word===t.normal}if(void 0!==e.tag)return!0===t.tags.has(e.tag);if(void 0!==e.method)return"function"==typeof Be[e.method]&&!0===Be[e.method](t);if(void 0!==e.pre)return t.pre&&t.pre.includes(e.pre);if(void 0!==e.post)return t.post&&t.post.includes(e.post);if(void 0!==e.regex){let n=t.normal;return e.use&&(n=t[e.use]),e.regex.test(n)}return void 0!==e.chunk?t.chunk===e.chunk:void 0!==e.switch?t.switch===e.switch:void 0!==e.machine?t.normal===e.machine||t.machine===e.machine||t.root===e.machine:void 0!==e.sense?t.sense===e.sense:void 0!==e.fastOr?e.pos&&!t.tags.has(e.pos)?null:e.fastOr.has(t.implicit)||e.fastOr.has(t.normal)||e.fastOr.has(t.text)||e.fastOr.has(t.machine):void 0!==e.choices&&("and"===e.operator?e.choices.every((e=>Ue(t,e,n,r))):e.choices.some((e=>Ue(t,e,n,r))))}(t,e,n,r);return!0===e.negative?!o:o};var Me=Ue;const We=function(t,e){if(!0===t.end&&!0===t.greedy&&e.start_i+e.tn.max)return t.t=t.t+n.max,!0;if(!0===t.hasGroup){Re(t,t.t).length=r-t.t}return t.t=r,!0};const Qe=function(t,e=0){let n=t.regs[t.r],r=!1;for(let i=0;i{let o=0,i=t.t+r+e+o;if(void 0===t.terms[i])return!1;let s=Me(t.terms[i],n,i+t.start_i,t.phrase_length);if(!0===s&&!0===n.greedy)for(let e=1;e{let r=n.every(((e,n)=>{let r=t.t+n;return void 0!==t.terms[r]&&Me(t.terms[r],e,r,t.phrase_length)}));return!0===r&&n.length>e&&(e=n.length),r}))&&e}(t);if(r){if(!0===n.negative)return null;if(!0===t.hasGroup){Re(t,t.t).length+=r}if(!0===n.end){let e=t.phrase_length-1;if(t.t+t.start_i!==e)return null}return t.t+=r,!0}return!!n.optional||null};var Ke=function(t,e,n){let r=0;for(let o=t.t;or)&&(t.t+=r,!0))};var Je=function(t){const{regs:e}=t;let n=e[t.r],r=Object.assign({},n);if(r.negative=!1,Me(t.terms[t.t],r,t.start_i+t.t,t.phrase_length))return!1;if(n.optional){let n=e[t.r+1];if(n){if(Me(t.terms[t.t],n,t.start_i+t.t,t.phrase_length))t.r+=1;else if(n.optional&&e[t.r+2]){Me(t.terms[t.t],e[t.r+2],t.start_i+t.t,t.phrase_length)&&(t.r+=2)}}}return n.greedy?Ke(t,r,e[t.r+1]):(t.t+=1,!0)};var Xe=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=Me(r,e[t.r+1],t.start_i+t.t,t.phrase_length);if(n.negative||o){let n=t.terms[t.t+1];n&&Me(n,e[t.r+1],t.start_i+t.t,t.phrase_length)||(t.r+=1)}};var Ye=function(t){const{regs:e,phrase_length:n}=t;let r=e[t.r];return t.t=function(t,e){let n=Object.assign({},t.regs[t.r],{start:!1,end:!1}),r=t.t;for(;t.tt.t?null:!0!==r.end||t.start_i+t.t===n||null};var tn=function(t){let e=t.terms[t.t],n=t.regs[t.r];if(e.implicit&&t.terms[t.t+1]){if(!t.terms[t.t+1].implicit)return;n.word===e.normal&&(t.t+=1),"hasContraction"===n.method&&(t.t+=1)}};var en=function(t){const{regs:e}=t;let n=e[t.r],r=t.terms[t.t],o=t.t;if(n.optional&&e[t.r+1]&&n.negative)return!0;if(n.optional&&e[t.r+1]&&Xe(t),r.implicit&&t.terms[t.t+1]&&tn(t),t.t+=1,!0===n.end&&t.t!==t.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Ye(t))return null}return!0===t.hasGroup&&function(t,e){let n=t.regs[t.r];const r=Re(t,e);t.t>1&&n.greedy?r.length+=t.t-e:r.length++}(t,o),!0};var nn=function(t,e,n,r){if(0===t.length||0===e.length)return null;let o={t:0,terms:t,r:0,regs:e,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;o.r!t.optional)))break;return null}if(!0!==t.anything||!0!==t.greedy)if(void 0===t.choices||"or"!==t.operator)if(void 0===t.choices||"and"!==t.operator)if(!0!==t.anything)if(!0!==We(t,o))if(t.negative){if(!Je(o))return null}else if(!0!==Me(o.terms[o.t],t,o.start_i+o.t,o.phrase_length)){if(!0!==t.optional)return null}else{if(!en(o))return null}else{if(!en(o))return null}else{if(t.negative&&t.anything)return null;if(!en(o))return null}else{if(!He(o))return null}else{if(!Ze(o))return null}else{if(!Ie(o))return null}}let i=[null,n,o.t+n];if(i[1]===i[2])return null;let s={};return Object.keys(o.groups).forEach((t=>{let e=o.groups[t],r=n+e.start;s[t]=[null,r,r+e.length]})),{pointer:i,groups:s}};var rn=function(t,e){let n=[],r={};return 0===t.length||("number"==typeof e&&(e=String(e)),e?t.forEach((t=>{t.groups[e]&&n.push(t.groups[e])})):t.forEach((t=>{n.push(t.pointer),Object.keys(t.groups).forEach((e=>{r[e]=r[e]||[],r[e].push(t.groups[e])}))}))),{ptrs:n,byGroup:r}};const on=function(t,e){return t.pointer[0]=e,Object.keys(t.groups).forEach((n=>{t.groups[n][0]=e})),t},sn=function(t,e,n){let r=nn(t,e,0,t.length);return r?(r=on(r,n),r):null};var ln=function(t,e,n){n=n||[];let{regs:r,group:o,justOne:i}=e,s=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const l=r.filter((t=>!0!==t.optional&&!0!==t.negative)).length;t:for(let e=0;et&&(t=Math.abs(n-1))}}else{let t=sn(o,r,e);t&&s.push(t)}}return!0===r[r.length-1].end&&(s=s.filter((e=>{let n=e.pointer[0];return t[n].length===e.pointer[2]}))),s=rn(s,o),s.ptrs.forEach((e=>{let[n,r,o]=e;e[3]=t[n][r].id,e[4]=t[n][o-1].id})),s};var an={api:ie,methods:{one:{termMethods:Be,parseMatch:$e,match:ln}},lib:{parseMatch:function(t,e){const n=this.world();let r=n.methods.one.killUnicode;return r&&(t=r(t,n)),n.methods.one.parseMatch(t,e,n)}}};const cn=/^\../,un=/^#./,hn=function(t,e){let n={},r={};return Object.keys(e).forEach((o=>{let i=e[o],s=function(t){let e="",n="";return t=t.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),cn.test(t)?e=``),e+=">",{start:e,end:n}}(o);"string"==typeof i&&(i=t.match(i)),i.docs.forEach((t=>{if(t.every((t=>t.implicit)))return;let e=t[0].id;n[e]=n[e]||[],n[e].push(s.start);let o=t[t.length-1].id;r[o]=r[o]||[],r[o].push(s.end)}))})),{starts:n,ends:r}};var fn={html:function(t){let{starts:e,ends:n}=hn(this,t),r="";return this.docs.forEach((t=>{for(let o=0;o{let n=t.pre||"",o=t.post||"";"some"===e.punctuation&&(n=n.replace(dn,""),gn.test(o)&&(o=" "),o=o.replace(mn,""),o=o.replace(/\?!+/,"?"),o=o.replace(/!+/,"!"),o=o.replace(/\?+/,"?"),o=o.replace(/\.{2,}/,""),t.tags.has("Abbreviation")&&(o=o.replace(/\./,""))),"some"===e.whitespace&&(n=n.replace(/\s/,""),o=o.replace(/\s+/," ")),e.keepPunct||(n=n.replace(dn,""),o="-"===o?" ":o.replace(pn,""));let i=t[e.form||"text"]||t.normal||"";"implicit"===e.form&&(i=t.implicit||t.text),"root"===e.form&&t.implicit&&(i=t.root||t.implicit||t.normal),"machine"!==e.form&&"implicit"!==e.form&&"root"!==e.form||!t.implicit||o&&wn.test(o)||(o+=" "),r+=n+i+o})),!1===n&&(r=r.trim()),!0===e.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var bn=yn;let xn=[],jn=0;for(;jn<64;)xn[jn]=0|4294967296*Math.sin(++jn%Math.PI);function En(t){let e,n,r,o=[e=1732584193,n=4023233417,~e,~n],i=[],s=decodeURI(encodeURI(t))+"€",l=s.length;for(t=--l/4+2|15,i[--t]=8*l;~l;)i[l>>2]|=s.charCodeAt(l)<<8*l--;for(jn=s=0;jn>4]+xn[s]+~~i[jn|15&[s,5*s+1,3*s+5,7*s][l]])<<(l=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*l+s++%4])|r>>>-l),e,n])e=0|l[1],n=l[2];for(s=4;s;)o[--s]+=l[s]}for(t="";s<32;)t+=(o[s>>3]>>4*(1^s++)&15).toString(16);return t}const On={text:!0,terms:!0};let kn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Pn=function(t,e){return Object.assign({},t,e)},_n={text:t=>vn(t,{keepPunct:!0},!1),normal:t=>vn(t,Pn(bn.normal,{keepPunct:!0}),!1),implicit:t=>vn(t,Pn(bn.implicit,{keepPunct:!0}),!1),machine:t=>vn(t,kn,!1),root:t=>vn(t,Pn(kn,{form:"root"}),!1),hash:t=>En(vn(t,{keepPunct:!0},!1)),offset:t=>{let e=_n.text(t).length;return{index:t[0].offset.index,start:t[0].offset.start,length:e}},terms:t=>t.map((t=>{let e=Object.assign({},t);return e.tags=Array.from(t.tags),e})),confidence:(t,e,n)=>e.eq(n).confidence(),syllables:(t,e,n)=>e.eq(n).syllables(),sentence:(t,e,n)=>e.eq(n).fullSentence().text(),dirty:t=>t.some((t=>!0===t.dirty))};_n.sentences=_n.sentence,_n.clean=_n.normal,_n.reduced=_n.root;const Sn={json:function(t){let e=(n=this,"string"==typeof(r=(r=t)||{})&&(r={}),(r=Object.assign({},On,r)).offset&&n.compute("offset"),n.docs.map(((t,e)=>{let o={};return Object.keys(r).forEach((i=>{r[i]&&_n[i]&&(o[i]=_n[i](t,n,e))})),o})));var n,r;return"number"==typeof t?e[t]:e}};Sn.data=Sn.json;var An=Sn;var $n=function(t){console.log("%c -=-=- ","background-color:#6699cc;"),t.forEach((t=>{console.groupCollapsed(t.text());let e=t.docs[0].map((t=>{let e=t.text||"-";return t.implicit&&(e="["+t.implicit+"]"),{text:e,tags:"["+Array.from(t.tags).join(", ")+"]"}}));console.table(e,["text","tags"]),console.groupEnd()}))};var Tn={green:t=>""+t+"",red:t=>""+t+"",blue:t=>""+t+"",magenta:t=>""+t+"",cyan:t=>""+t+"",yellow:t=>""+t+"",black:t=>""+t+"",dim:t=>""+t+"",i:t=>""+t+""};var Cn=function(t){let{docs:e,model:n}=t;0===e.length&&console.log(Tn.blue("\n ──────")),e.forEach((t=>{console.log(Tn.blue("\n ┌─────────")),t.forEach((t=>{let e=[...t.tags||[]],r=t.text||"-";t.sense&&(r="{"+t.sense+"}"),t.implicit&&(r="["+t.implicit+"]"),r=Tn.yellow(r);let o="'"+r+"'";o=o.padEnd(18);let i=Tn.blue(" │ ")+Tn.i(o)+" - "+function(t,e){return e.one.tagSet&&(t=t.map((t=>{if(!e.one.tagSet.hasOwnProperty(t))return t;const n=e.one.tagSet[t].color||"blue";return Tn[n](t)}))),t.join(", ")}(e,n);console.log(i)}))}))};var zn=function(t){let{docs:e}=t;console.log(""),e.forEach((t=>{let e=[];t.forEach((t=>{"Noun"===t.chunk?e.push(Tn.blue(t.implicit||t.normal)):"Verb"===t.chunk?e.push(Tn.green(t.implicit||t.normal)):"Adjective"===t.chunk?e.push(Tn.yellow(t.implicit||t.normal)):"Pivot"===t.chunk?e.push(Tn.red(t.implicit||t.normal)):e.push(t.implicit||t.normal)})),console.log(e.join(" "),"\n")}))};var Nn=function(t){if(!t.found)return;let e={};t.fullPointer.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),Object.keys(e).forEach((n=>{let r=t.update([[Number(n)]]).text();t.update(e[n]).json({offset:!0}).forEach(((t,e)=>{r=function(t,e,n){let r=((t,e,n)=>{let r=9*n,o=e.start+r,i=o+e.length;return[t.substring(0,o),t.substring(o,i),t.substring(i,t.length)]})(t,e,n);return`${r[0]}${Tn.blue(r[1])}${r[2]}`}(r,t.offset,e)})),console.log(r)}))};var Ln=function(t={}){let e=this;if("string"==typeof t){let e={};e[t]=!0,t=e}return"undefined"!=typeof window&&window.document?($n(e),e):(!1!==t.tags&&(Cn(e),console.log("\n")),!0===t.chunks&&(zn(e),console.log("\n")),!0===t.highlight&&(Nn(e),console.log("\n")),e)};const Vn=function(t){let e=t.pre||"",n=t.post||"";return e+t.text+n};var qn=function(t,e){let n=function(t,e){let n={};return Object.keys(e).forEach((r=>{t.match(r).fullPointer.forEach((t=>{n[t[3]]={fn:e[r],end:t[2]}}))})),n}(t,e),r="";return t.docs.forEach(((e,o)=>{for(let i=0;it.reduce(((t,e)=>t+e.pre+e.text+e.post),"").trim()));return t.filter((t=>t))}if("freq"===t||"frequency"===t||"topk"===t)return function(t){let e={};t.forEach((t=>{e[t]=e[t]||0,e[t]+=1}));let n=Object.keys(e).map((t=>({normal:t,count:e[t]})));return n.sort(((t,e)=>t.count>e.count?-1:0))}(this.json({normal:!0}).map((t=>t.normal)));if("terms"===t){let t=[];return this.docs.forEach((e=>{let n=e.terms.map((t=>t.text));n=n.filter((t=>t)),t=t.concat(n)})),t}return"tags"===t?this.docs.map((t=>t.reduce(((t,e)=>(t[e.implicit||e.normal]=Array.from(e.tags),t)),{}))):"debug"===t?this.debug():this.text()}};var Gn=Fn;var Dn={text:function(t){let e={keepSpace:!0,keepPunct:!0};var n;if(t&&"string"==typeof t&&bn.hasOwnProperty(t)?e=Object.assign({},bn[t]):t&&(n=t,"[object Object]"===Object.prototype.toString.call(n))&&(e=Object.assign({},e,t)),this.pointer){e.keepSpace=!1;let t=this.pointer[0];t&&t[1]?e.keepPunct=!1:e.keepPunct=!0}else e.keepPunct=!0;return function(t,e){let n="";if(!t||!t[0]||!t[0][0])return n;for(let r=0;ro||o<=n&&i>n},Rn=function(t){let e={};return t.forEach((t=>{e[t[0]]=e[t[0]]||[],e[t[0]].push(t)})),e};var In=function(t,e){let n=Rn(e),r=[];return t.forEach((t=>{let[e]=t,o=n[e]||[];if(o=o.filter((e=>function(t,e){return t[1]<=e[1]&&e[2]<=t[2]}(t,e))),0===o.length)return void r.push({passthrough:t});o=o.sort(((t,e)=>t[1]-e[1]));let i=t;o.forEach(((t,e)=>{let n=function(t,e){let[n,r]=t,o=e[1],i=e[2],s={};if(ri&&(s.after=[n,i,t[2]]),s}(i,t);o[e+1]?(r.push({before:n.before,match:n.match}),n.after&&(i=n.after)):r.push(n)}))})),r};var Qn=function(t,e){let n=[];return t.forEach(((r,o)=>{if(!r)return;let[i,s,l,a,c]=r,u=e[i]||[];if(void 0===s&&(s=0),void 0===l&&(l=u.length),!a||u[s]&&u[s].id===a)u=u.slice(s,l);else{let n=function(t,e,n){for(let r=0;r<20;r+=1){if(e[n-r]){let o=e[n-r].findIndex((e=>e.id===t));if(-1!==o)return[n-r,o]}if(e[n+r]){let o=e[n+r].findIndex((e=>e.id===t));if(-1!==o)return[n+r,o]}}return null}(a,e,i);if(null!==n){let r=l-s;u=e[n[0]].slice(n[1],n[1]+r);let i=u[0]?u[0].id:null;t[o]=[n[0],n[1],n[1]+r,i]}}0!==u.length&&s!==l&&(c&&u[u.length-1].id!==c&&(u=function(t,e){let[n,r,,,o]=t,i=e[n],s=i.findIndex((t=>t.id===o));return-1===s?(t[2]=e[n].length,t[4]=i.length?i[i.length-1].id:null):t[2]=s,e[n].slice(r,t[2]+1)}(r,e)),n.push(u))})),n=n.filter((t=>t.length>0)),n};var Zn={one:{termList:function(t){let e=[];for(let n=0;n{let[e]=t;if(1===r[e].length)return void o.push(t);let n=r[e].filter((e=>Wn(t,e)));n.push(t);let i=function(t){let e=t[0][1],n=t[0][2];return t.forEach((t=>{t[1]n&&(n=t[2])})),[t[0][0],e,n]}(n);o.push(i)})),o=function(t){let e={};for(let n=0;n{t.passthrough&&n.push(t.passthrough),t.before&&n.push(t.before),t.after&&n.push(t.after)})),n};var Jn=function(t,e){let n=Rn(e),r=[];return t.forEach((t=>{let e=n[t[0]]||[];e=e.filter((e=>Wn(t,e))),0!==e.length&&e.forEach((e=>{let n=function(t,e){let n=t[1]e[2]?e[2]:t[2];return n{return"string"==typeof t||(n=t,"[object Array]"===Object.prototype.toString.call(n))?e.match(t):t||e.none();var n},Yn=function(t,e){return t.map((t=>{let[n,r]=t;return e[n]&&e[n][r]&&(t[3]=e[n][r].id),t}))},tr={union:function(t){t=Xn(t,this);let e=Hn(this.fullPointer,t.fullPointer);return e=Yn(e,this.document),this.toView(e)}};tr.and=tr.union,tr.intersection=function(t){t=Xn(t,this);let e=Jn(this.fullPointer,t.fullPointer);return e=Yn(e,this.document),this.toView(e)},tr.not=function(t){t=Xn(t,this);let e=Kn(this.fullPointer,t.fullPointer);return e=Yn(e,this.document),this.toView(e)},tr.difference=tr.not,tr.complement=function(){let t=this.all(),e=Kn(t.fullPointer,this.fullPointer);return e=Yn(e,this.document),this.toView(e)},tr.settle=function(){let t=this.fullPointer;return t.forEach((e=>{t=Hn(t,[e])})),t=Yn(t,this.document),this.update(t)};var er=function(t){Object.assign(t.prototype,tr)},nr={methods:Zn,api:er};var rr=function(t){t.prototype.sweep=function(t,e={}){const{world:n,docs:r}=this,{methods:o}=n;let i=o.one.bulkMatch(r,t,this.methods,e);!1!==e.tagger&&o.one.bulkTagger(i,r,this.world),i=i.map((t=>{let e=t.pointer,n=r[e[0]][e[1]],o=e[2]-e[1];return n.index&&(t.pointer=[n.index[0],n.index[1],e[1]+o]),t}));let s=i.map((t=>t.pointer));return i=i.map((t=>(t.view=this.update([t.pointer]),delete t.regs,delete t.needs,delete t.pointer,delete t._expanded,t))),{view:this.update(s),found:i}}};const or=function(t){return!0===t.optional||!0===t.negative?null:t.tag?"#"+t.tag:t.word?t.word:t.switch?`%${t.switch}%`:null};var ir=function(t,e){const n=e.methods.one.parseMatch;return t.forEach((t=>{t.regs=n(t.match,{},e),"string"==typeof t.ifNo&&(t.ifNo=[t.ifNo]),t.needs=function(t){let e=[];return t.forEach((t=>{e.push(or(t)),"and"===t.operator&&t.choices&&t.choices.forEach((t=>{t.forEach((t=>{e.push(or(t))}))}))})),e.filter((t=>t))}(t.regs);let{wants:r,count:o}=function(t){let e=[],n=0;return t.forEach((t=>{"or"!==t.operator||t.optional||t.negative||(t.fastOr&&Array.from(t.fastOr).forEach((t=>{e.push(t)})),t.choices&&t.choices.forEach((t=>{t.forEach((t=>{let n=or(t);n&&e.push(n)}))})),n+=1)})),{wants:e,count:n}}(t.regs);t.wants=r,t.minWant=o,t.minWords=t.regs.filter((t=>!t.optional)).length})),t};var sr=function(t,e){t=ir(t,e);let n={};t.forEach((t=>{t.needs.forEach((e=>{n[e]=n[e]||[],n[e].push(t)})),t.wants.forEach((e=>{n[e]=n[e]||[],n[e].push(t)}))})),Object.keys(n).forEach((t=>{let e={};n[t]=n[t].filter((t=>!e[t.match]&&(e[t.match]=!0,!0)))}));let r=t.filter((t=>0===t.needs.length&&0===t.wants.length));return{hooks:n,always:r}};var lr=function(t,e){return t.map(((n,r)=>{let o=[];Object.keys(e).forEach((n=>{t[r].has(n)&&(o=o.concat(e[n]))}));let i={};return o=o.filter((t=>!i[t.match]&&(i[t.match]=!0,!0))),o}))};var ar=function(t,e){return t.map(((t,n)=>{let r=e[n];return t=(t=(t=t.filter((t=>t.needs.every((t=>r.has(t)))))).filter((t=>void 0===t.ifNo||!0!==t.ifNo.some((t=>r.has(t)))))).filter((t=>{if(0===t.wants.length)return!0;return t.wants.filter((t=>r.has(t))).length>=t.minWant}))}))};var cr=function(t,e,n,r,o){let i=[];for(let n=0;n0&&(a.ptrs.forEach((t=>{t[0]=n;let e=Object.assign({},l,{pointer:t});void 0!==l.unTag&&(e.unTag=l.unTag),i.push(e)})),!0===o.matchOne))return[i[0]]}return i};var ur=function(t,e,n,r={}){let o=n.one.cacheDoc(t),i=lr(o,e.hooks);return i=ar(i,o),e.always.length>0&&(i=i.map((t=>t.concat(e.always)))),i=function(t,e){return t.map(((t,n)=>{let r=e[n].length;return t=t.filter((t=>r>=t.minWords)),t}))}(i,t),cr(i,t,o,n,r)};var hr=function(t,e,n){let r=n.one.tagSet;if(!r.hasOwnProperty(e))return!0;let o=r[e].not||[];for(let e=0;e{if(!t.tag&&!t.chunk&&!t.unTag)return;let o=t.reason||t.match,c=i([t.pointer],e)[0];if(!0===t.safe){if(!1===hr(c,t.tag,r))return;if("-"===c[c.length-1].post)return}if(void 0!==t.tag&&(s(c,t.tag,n,t.safe,`[post] '${o}'`),"Noun"===t.tag)){let e=c[c.length-1];a(e.text)?s([e],"Plural",n,t.safe,"quick-plural"):s([e],"Singular",n,t.safe,"quick-singular")}void 0!==t.unTag&&l(c,t.unTag,n,t.safe,o),t.chunk&&c.forEach((e=>e.chunk=t.chunk))}))},pr={lib:{buildNet:function(t){let e=this.methods().one.buildNet(t,this.world());return e.isNet=!0,e}},api:rr,methods:{one:{buildNet:sr,bulkMatch:ur,bulkTagger:fr}}};const dr=/ /,mr=function(t,e){"Noun"===e&&(t.chunk=e),"Verb"===e&&(t.chunk=e)},gr=function(t,e,n,r){if(!0===t.tags.has(e))return null;if("."===e)return null;let o=n[e];if(o){if(o.not&&o.not.length>0)for(let e=0;e0)for(let e=0;e{let r=t.map((t=>t.text||"["+t.implicit+"]")).join(" ");var o;"string"!=typeof e&&e.length>2&&(e=e.slice(0,2).join(", #")+" +"),e="string"!=typeof e?e.join(", #"):e,console.log(` ${(o=r,""+o+"").padEnd(24)} → #${e.padEnd(22)} ${(t=>""+t+"")(n)}`)})(t,e,o),!0!=(l=e,"[object Array]"===Object.prototype.toString.call(l)))if("string"==typeof e)if(e=e.trim(),dr.test(e))!function(t,e,n,r){let o=e.split(dr);t.forEach(((t,e)=>{let i=o[e];i&&(i=i.replace(/^#/,""),gr(t,i,n,r))}))}(t,e,i,r);else{e=e.replace(/^#/,"");for(let n=0;nwr(t,e,n,r)))};var vr=wr;var yr=function(t,e,n){e=e.trim().replace(/^#/,"");for(let r=0;r0)for(let t=0;t/),n=[];e.forEach((t=>{n=n.concat(function(t){if(!(t=t.trim()))return null;if(/^\[/.test(t)&&/\]$/.test(t)){let e=(t=(t=t.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return e=e.map((t=>t.trim())).filter((t=>t)),e=e.map((t=>br({id:t}))),e}return[br({id:t})]}(t))})),n=n.filter((t=>t));let r=n[0];for(let t=1;t{let n=[],r=[t];for(;r.length>0;){let t=r.pop();n.push(t),t.children&&t.children.forEach((n=>{e&&e(t,n),r.push(n)}))}return n},Or=t=>"[object Array]"===Object.prototype.toString.call(t),kr=t=>(t=t||"").trim(),Pr=function(t=[]){return"string"==typeof t?function(t){let e=t.split(/\r?\n/),n=[];e.forEach((t=>{if(!t.trim()||xr.test(t))return;let e=(t=>{const e=/^( {2}|\t)/;let n=0;for(;e.test(t);)t=t.replace(e,""),n+=1;return n})(t);n.push({indent:e,node:jr(t)})}));let r=function(t){let e={children:[]};return t.forEach(((n,r)=>{0===n.indent?e.children=e.children.concat(n.node):t[r-1]&&function(t,e){let n=t[e].indent;for(;e>=0;e-=1)if(t[e].indent{e[t.id]=t}));let n=br({});return t.forEach((t=>{if((t=br(t)).parent)if(e.hasOwnProperty(t.parent)){let n=e[t.parent];delete t.parent,n.children.push(t)}else console.warn(`[Grad] - missing node '${t.parent}'`);else n.children.push(t)})),n}(t):(Er(e=t).forEach(br),e);var e},_r=function(t,e){let n="-> ";e&&(n=(t=>""+t+"")("→ "));let r="";return Er(t).forEach(((t,o)=>{let i=t.id||"";if(e&&(i=(t=>""+t+"")(i)),0===o&&!t.id)return;let s=t._cache.parents.length;r+=" ".repeat(s)+n+i+"\n"})),r},Sr=function(t){let e=Er(t);e.forEach((t=>{delete(t=Object.assign({},t)).children}));let n=e[0];return n&&!n.id&&0===Object.keys(n.props).length&&e.shift(),e},Ar={text:_r,txt:_r,array:Sr,flat:Sr},$r=function(t,e){return"nested"===e||"json"===e?t:"debug"===e?(console.log(_r(t,!0)),null):Ar.hasOwnProperty(e)?Ar[e](t):t},Tr=t=>{Er(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],e._cache.parents=t._cache.parents.concat([t.id]))}))},Cr=/\//;class g{constructor(t={}){Object.defineProperty(this,"json",{enumerable:!1,value:t,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(t={}){let e=this.json.props||{};return"string"==typeof t&&(e[t]=!0),this.json.props=Object.assign(e,t),this}get(t){if(t=kr(t),!Cr.test(t)){let e=this.json.children.find((e=>e.id===t));return new g(e)}let e=((t,e)=>{let n=(t=>"string"!=typeof t?t:(t=t.replace(/^\//,"")).split(/\//))(e=e||"");for(let e=0;et.id===n[e]));if(!r)return null;t=r}return t})(this.json,t)||br({});return new g(e)}add(t,e={}){if(Or(t))return t.forEach((t=>this.add(kr(t),e))),this;t=kr(t);let n=br({id:t,props:e});return this.json.children.push(n),new g(n)}remove(t){return t=kr(t),this.json.children=this.json.children.filter((e=>e.id!==t)),this}nodes(){return Er(this.json).map((t=>(delete(t=Object.assign({},t)).children,t)))}cache(){return(t=>{let e=Er(t,((t,e)=>{t.id&&(t._cache.parents=t._cache.parents||[],t._cache.children=t._cache.children||[],e._cache.parents=t._cache.parents.concat([t.id]))})),n={};e.forEach((t=>{t.id&&(n[t.id]=t)})),e.forEach((t=>{t._cache.parents.forEach((e=>{n.hasOwnProperty(e)&&n[e]._cache.children.push(t.id)}))})),t._cache.children=Object.keys(n)})(this.json),this}list(){return Er(this.json)}fillDown(){var t;return t=this.json,Er(t,((t,e)=>{e.props=((t,e)=>(Object.keys(e).forEach((n=>{if(e[n]instanceof Set){let r=t[n]||new Set;t[n]=new Set([...r,...e[n]])}else if((t=>t&&"object"==typeof t&&!Array.isArray(t))(e[n])){let r=t[n]||{};t[n]=Object.assign({},e[n],r)}else Or(e[n])?t[n]=e[n].concat(t[n]||[]):void 0===t[n]&&(t[n]=e[n])})),t))(e.props,t.props)})),this}depth(){Tr(this.json);let t=Er(this.json),e=t.length>1?1:0;return t.forEach((t=>{if(0===t._cache.parents.length)return;let n=t._cache.parents.length+1;n>e&&(e=n)})),e}out(t){return Tr(this.json),$r(this.json,t)}debug(){return Tr(this.json),$r(this.json,"debug"),this}}const zr=function(t){let e=Pr(t);return new g(e)};zr.prototype.plugin=function(t){t(this)};var Nr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Lr=function(t){if(Nr.hasOwnProperty(t.id))return Nr[t.id];if(Nr.hasOwnProperty(t.is))return Nr[t.is];let e=t._cache.parents.find((t=>Nr[t]));return Nr[e]};var Vr=function(t){const e={};return t.forEach((t=>{let{not:n,also:r,is:o,novel:i}=t.props,s=t._cache.parents;r&&(s=s.concat(r)),e[t.id]={is:o,not:n,novel:i,also:r,parents:s,children:t._cache.children,color:Lr(t)}})),Object.keys(e).forEach((t=>{let n=new Set(e[t].not);e[t].not.forEach((t=>{e[t]&&e[t].children.forEach((t=>n.add(t)))})),e[t].not=Array.from(n)})),e};const qr=function(t){return t?"string"==typeof t?[t]:t:[]};var Fr=function(t,e){return t=function(t,e){return Object.keys(t).forEach((n=>{t[n].isA&&(t[n].is=t[n].isA),t[n].notA&&(t[n].not=t[n].notA),t[n].is&&"string"==typeof t[n].is&&(e.hasOwnProperty(t[n].is)||t.hasOwnProperty(t[n].is)||(t[t[n].is]={})),t[n].not&&"string"==typeof t[n].not&&!t.hasOwnProperty(t[n].not)&&(e.hasOwnProperty(t[n].not)||t.hasOwnProperty(t[n].not)||(t[t[n].not]={}))})),t}(t,e),Object.keys(t).forEach((e=>{t[e].children=qr(t[e].children),t[e].not=qr(t[e].not)})),Object.keys(t).forEach((e=>{(t[e].not||[]).forEach((n=>{t[n]&&t[n].not&&t[n].not.push(e)}))})),t};var Gr=function(t,e){Object.keys(e).length>0&&(t=function(t){return Object.keys(t).forEach((e=>{t[e]=Object.assign({},t[e]),t[e].novel=!0})),t}(t)),t=Fr(t,e);const n=function(t){const e=Object.keys(t).map((e=>{let n=t[e];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:e,parent:n.is,props:r,children:[]}}));return zr(e).cache().fillDown().out("array")}(Object.assign({},e,t));return Vr(n)},Dr={one:{setTag:vr,unTag:yr,addTags:Gr}};const Br=function(t){return"[object Array]"===Object.prototype.toString.call(t)},Ur={tag:function(t,e="",n){if(!this.found||!t)return this;let r=this.termList();if(0===r.length)return this;const{methods:o,verbose:i,world:s}=this;return!0===i&&console.log(" + ",t,e||""),Br(t)?t.forEach((t=>o.one.setTag(r,t,s,n,e))):o.one.setTag(r,t,s,n,e),this.uncache(),this},tagSafe:function(t,e=""){return this.tag(t,e,!0)},unTag:function(t,e){if(!this.found||!t)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:o,model:i}=this;!0===o&&console.log(" - ",t,e||"");let s=i.one.tagSet;return Br(t)?t.forEach((t=>r.one.unTag(n,t,s))):r.one.unTag(n,t,s),this.uncache(),this},canBe:function(t){let e=this.model.one.tagSet;if(!e.hasOwnProperty(t))return this;let n=e[t].not||[],r=[];this.document.forEach(((t,e)=>{t.forEach(((t,o)=>{n.find((e=>t.tags.has(e)))&&r.push([e,o,o+1])}))}));let o=this.update(r);return this.difference(o)}};var Mr=Ur;var Wr=function(t){Object.assign(t.prototype,Mr)};var Rr={addTags:function(t){const{model:e,methods:n}=this.world(),r=e.one.tagSet;let o=(0,n.one.addTags)(t,r);return e.one.tagSet=o,this}};const Ir=new Set(["Auxiliary","Possessive"]);var Qr=function(t){const{document:e,world:n}=t,r=n.model.one.tagSet;e.forEach((t=>{t.forEach((t=>{let e=Array.from(t.tags);t.tagRank=function(t,e){return t=t.sort(((t,n)=>{if(Ir.has(t)||!e.hasOwnProperty(n))return 1;if(Ir.has(n)||!e.hasOwnProperty(t))return-1;let r=e[t].children||[],o=r.length;return r=e[n].children||[],o-r.length})),t}(e,r)}))}))},Zr={model:{one:{tagSet:{}}},compute:{tagRank:Qr},methods:Dr,api:Wr,lib:Rr};const Hr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Kr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Jr=/((?:\r?\n|\r)+)/;var Xr=function(t){let e=[],n=t.split(Jr);for(let t=0;t0&&(o.push(i),t[e]="")}return o};const ro={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},oo=RegExp("("+Object.keys(ro).join("|")+")","g"),io=RegExp("("+Object.values(ro).join("|")+")","g"),so=function(t){if(!t)return!1;let e=t.match(io);return null!==e&&1===e.length};var lo=function(t){let e=[];for(let n=0;n(t[e]=!0,t)),{});var Oo=function(t,e){let n=[],r=[];if("number"==typeof(t=t||"")&&(t=String(t)),function(t){return"[object Array]"===Object.prototype.toString.call(t)}(t))return t;const o=t.split(jo);for(let t=0;t0?(n[n.length-1]+=i,n.push(e)):n.push(i+e),i=""):i+=e}return i&&(0===n.length&&(n[0]=""),n[n.length-1]+=i),n=yo(n),n=wo(n),n=n.filter((t=>t)),n};let ko=new RegExp(`[${["#","@","_","+","."].join("")}]+$`,""),Po=new RegExp(`^[${["%","_","°"].join("")}]+`,"");const _o=/[\p{Punctuation}\s]+$/u,So=/^[\p{Punctuation}\s]+/u,Ao=/['’]/,$o=/^[a-z]\.([a-z]\.)+/i,To=/^'[0-9]{2}/,Co=/^-[0-9]/;var zo=function(t){let e=t,n="",r="";return""===(t=(t=t.replace(So,(e=>{let r=e.match(ko);return r?(n=e.replace(ko,""),r):"'"===n&&To.test(t)?(n="",e):"-"===e&&Co.test(t)?e:(n=e,"")}))).replace(_o,(o=>{let i=o.match(Po);return i?(r=o.replace(Po,""),i):Ao.test(o)&&/[sn]['’]$/.test(e)&&!1===Ao.test(n)?(r=r.replace(Ao,""),"'"):!0===$o.test(t)?(r=o.replace(/^\./,""),"."):(r=o,"")})))&&(e=e.replace(/ *$/,(t=>(r=t||"",""))),t=e,n=""),{str:t,pre:n,post:r}};var No=function(t,e){const n=e.model.one.unicode||{};let r=(t=t||"").split("");return r.forEach(((t,e)=>{n[t]&&(r[e]=n[t])})),r.join("")};var Lo=function(t){let e=t=(t=(t=t||"").toLowerCase()).trim();return t=(t=(t=t.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(t)&&(t=(t=(t=t.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(t=(t=t.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(t=e),t=t.replace(/([0-9]),([0-9])/g,"$1$2")};const Vo=/([A-Z]\.)+[A-Z]?,?$/,qo=/^[A-Z]\.,?$/,Fo=/[A-Z]{2,}('s|,)?$/,Go=/([a-z]\.)+[a-z]\.?$/;var Do=function(t){return function(t){return!0===Vo.test(t)||!0===Go.test(t)||!0===qo.test(t)||!0===Fo.test(t)}(t)&&(t=t.replace(/\./g,"")),t};var Bo=function(t,e){const n=e.methods.one.killUnicode;let r=t.text||"";r=Lo(r),r=n(r,e),r=Do(r),t.normal=r};var Uo=function(t,e){const{methods:n,model:r}=e,{splitSentences:o,splitTerms:i,splitWhitespace:s}=n.one.tokenize;return t=o(t=t||"",e).map((t=>{let n=i(t,r);return n=n.map(s),n.forEach((t=>{Bo(t,e)})),n})),t};const Mo=/[ .][A-Z]\.? *$/i,Wo=/(?:\u2026|\.{2,}) *$/,Ro=/\p{L}/u,Io=/^[A-Z]\. $/;var Qo={one:{killUnicode:No,tokenize:{splitSentences:po,isSentence:function(t,e){if(!1===Ro.test(t))return!1;if(!0===Mo.test(t))return!1;if(3===t.length&&Io.test(t))return!1;if(!0===Wo.test(t))return!1;let n=t.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==e.hasOwnProperty(r)},splitTerms:Oo,splitWhitespace:t=>{let{str:e,pre:n,post:r}=zo(t);return{text:e,pre:n,post:r,tags:new Set}},fromString:Uo}}};var Zo={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ho={},Ko={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((t=>{t[0].forEach((e=>{Ho[e]=!0,Ko[e]="Abbreviation",void 0!==t[1]&&(Ko[e]=[Ko[e],t[1]])}))}));var Jo=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((t,e)=>(t[e]=!0,t)),{});let Xo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Yo={};Object.keys(Xo).forEach((function(t){Xo[t].split("").forEach((function(e){Yo[e]=t}))}));const ti=/\//,ei=/[a-z]\.[a-z]/i,ni=/[0-9]/;var ri=function(t,e){let n=t.normal||t.text||t.machine;const r=e.model.one.aliases;if(r.hasOwnProperty(n)&&(t.alias=t.alias||[],t.alias.push(r[n])),ti.test(n)&&!ei.test(n)&&!ni.test(n)){let e=n.split(ti);e.length<=2&&e.forEach((e=>{""!==(e=e.trim())&&(t.alias=t.alias||[],t.alias.push(e))}))}return t};const oi=/^\p{Letter}+-\p{Letter}+$/u;var ii=function(t){let e=t.implicit||t.normal||t.text;e=e.replace(/['’]s$/,""),e=e.replace(/s['’]$/,"s"),e=e.replace(/([aeiou][ktrp])in'$/,"$1ing"),oi.test(e)&&(e=e.replace(/-/g,"")),e=e.replace(/^[#@]/,""),e!==t.normal&&(t.machine=e)};var si=function(t){let e=t.docs,n={};for(let t=0;tui(t,ri),machine:t=>ui(t,ii),normal:t=>ui(t,Bo),freq:si,offset:li,index:ai,wordCount:ci},methods:Qo,model:{one:{aliases:Zo,abbreviations:Ho,prefixes:Jo,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Ko,unicode:Yo}},hooks:["alias","machine","index","id"]};var fi={typeahead:function(t){const e=t.model.one.typeahead,n=t.docs;if(0===n.length||0===Object.keys(e).length)return;let r=n[n.length-1]||[],o=r[r.length-1];if(!o.post&&e.hasOwnProperty(o.normal)){let n=e[o.normal];o.implicit=n,o.machine=n,o.typeahead=!0,t.compute.preTagger&&t.last().unTag("*").compute(["lexicon","preTagger"])}}};const pi=function(){const t=this.docs;if(0===t.length)return this;let e=t[t.length-1]||[],n=e[e.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var di=function(t){t.prototype.autoFill=pi};var mi=function(t,e,n){let r={},o=[],i=n.prefixes||{};return t.forEach((t=>{let s=(t=t.toLowerCase().trim()).length;e.max&&s>e.max&&(s=e.max);for(let l=e.min;l{delete r[t]})),r};const gi={safe:!0,min:3};var wi={typeahead:function(t=[],e={}){let n=this.model();var r;e=Object.assign({},gi,e),r=t,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,t),t=Object.keys(t));let o=mi(t,e,this.world());return Object.keys(o).forEach((t=>{n.one.typeahead.hasOwnProperty(t)?delete n.one.typeahead[t]:n.one.typeahead[t]=o[t]})),this}};var vi={model:{one:{typeahead:{}}},api:di,lib:wi,compute:fi,hooks:["typeahead"]};w.extend(tt),w.extend(Mn),w.extend(an),w.extend(nr),w.extend(Zr),w.plugin(St),w.extend(hi),w.plugin(x),w.extend(Wt),w.extend(vi),w.extend(Vt),w.extend(pr);export{w as default}; diff --git a/builds/three/compromise-three.cjs b/builds/three/compromise-three.cjs index 2a5241dd5..bc088e214 100644 --- a/builds/three/compromise-three.cjs +++ b/builds/three/compromise-three.cjs @@ -1 +1 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var p=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let m=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=p(e,l,m);return e&&n.compute(m.hooks),n};Object.defineProperty(f,"_world",{value:m,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=p(e,l,m);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},j=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},x=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?j(n):(j(n),j([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!k(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||k(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var G=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},D=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=G(e),e)))}(d),n?(T(t.update([u]).firstTerm()),N(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this}};var $=z,F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let a=n.fullPointer,o=r.fullPointer.reverse(),i=F(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const W={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};W.deHyphenate=W.dehyphenate,W.toQuotation=W.toQuotations;var M=W,J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var _={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}},Q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,H,M,U,_,Q);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const pe=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(pe);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ke=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},je={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},xe=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=xe(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&je.hasOwnProperty(l)&&(c=je[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),ke(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ke(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]},Ge=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Oe,lib:Be,hooks:["lexicon"]},$e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const We=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=We(e.goNext,void 0),e.failTo=We(e.failTo,0),e.endAs=We(e.endAs,null),e};const Je={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};Je.compile=Je.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Je};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Qe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Qe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Qe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,pt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){pt.test(e)?(n.choices=e.split(pt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var kt=Pt;const At=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const xt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var It=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(xt(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(xt(e,t)),n=n.concat(Nt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Gt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>kt(e,t))),r=jt(r,n),r=It(r,n),r=Gt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Vt.test(e.pre)||Bt.test(e.post),hasComma:e=>Ft(e,","),hasPeriod:e=>!0===Ft(e,".")&&!1===Ft(e,"..."),hasExclamation:e=>Ft(e,"!"),hasQuestionMark:e=>Ft(e,"?")||Ft(e,"¿"),hasEllipses:e=>Ft(e,"..")||Ft(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>Ft(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Wt=Ht;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Wt[t.method]&&!0===Wt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Jt=Mt;const Lt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(qt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Jt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Jt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(qt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Qt=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Jt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Jt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Jt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Qt(e,r,t[e.r+1]):(e.t+=1,!0)},Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Jt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Jt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Xt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Lt(e,a)){if(e.negative){if(!Zt(a))return null}else if(!0!==Jt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!tn(a))return null}else if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else if(!_t(a))return null}else if(!Rt(a))return null}else if(!Kt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},ln={api:ot,methods:{one:{termMethods:Wt,parseMatch:Tt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(a)&&(a=" "),a=a.replace(gn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(pn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let Pn=[],kn=0;for(;kn<64;)Pn[kn]=0|4294967296*Math.sin(++kn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(kn=i=0;kn>4]+Pn[i]+~~o[kn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const jn={text:!0,terms:!0};let xn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},En={text:e=>bn(e,{keepPunct:!0},!1),normal:e=>bn(e,Nn(wn.normal,{keepPunct:!0}),!1),implicit:e=>bn(e,Nn(wn.implicit,{keepPunct:!0}),!1),machine:e=>bn(e,xn,!1),root:e=>bn(e,Nn(xn,{form:"root"}),!1),hash:e=>An(bn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const In={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},jn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};In.data=In.json;var Gn=In,Tn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Dn="";var Cn={green:e=>""+e+Dn,red:e=>""+e+Dn,blue:e=>""+e+Dn,magenta:e=>""+e+Dn,cyan:e=>""+e+Dn,yellow:e=>""+e+Dn,black:e=>""+e+Dn,dim:e=>""+e+Dn,i:e=>""+e+Dn},On=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Cn.blue("\n ──────")),t.forEach((e=>{console.log(Cn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Cn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Cn.blue(" │ ")+Cn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Cn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Vn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Cn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Tn(t),t):(!1!==e.tags&&(On(t),console.log("\n")),!0===e.chunks&&(Vn(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const $n=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Fn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Hn=Sn,Wn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Kn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},Rn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},_n={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>qn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Yn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>qn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},er=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},tr={union:function(e){e=Xn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)}};tr.and=tr.union,tr.intersection=function(e){e=Xn(e,this);let t=Yn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.not=function(e){e=Xn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.difference=tr.not,tr.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=er(t,this.document),this.toView(t)},tr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Qn(e,[t])})),e=er(e,this.document),this.update(e)};var nr=function(e){Object.assign(e.prototype,tr)},rr={methods:_n,api:nr},ar=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const or=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ir=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(or(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(or(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=or(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},sr=function(e,t){e=ir(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},lr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},ur=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},cr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},hr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=lr(a,t.hooks);return o=ur(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),cr(o,e,a,n,r)},dr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===dr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ar,methods:{one:{buildNet:sr,bulkMatch:hr,bulkTagger:pr}}};const gr=/ /,fr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},vr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),gr.test(t))!function(e,t,n,r){let a=t.split(gr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),vr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var yr=br,wr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>Pr({id:e}))),t}return[Pr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},xr=e=>"[object Array]"===Object.prototype.toString.call(e),Nr=e=>(e=e||"").trim(),Er=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||kr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ar(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=Pr({});return e.forEach((e=>{if((e=Pr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(jr(t=e).forEach(Pr),t);var t},Ir=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return jr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Gr=function(e){let t=jr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Tr={text:Ir,txt:Ir,array:Gr,flat:Gr},Dr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ir(e,!0)),null):Tr.hasOwnProperty(t)?Tr[t](e):e},Cr=e=>{jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Or=/\//;let Vr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Nr(e),!Or.test(e)){let t=this.json.children.find((t=>t.id===e));return new Vr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||Pr({});return new Vr(t)}add(e,t={}){if(xr(e))return e.forEach((e=>this.add(Nr(e),t))),this;e=Nr(e);let n=Pr({id:e,props:t});return this.json.children.push(n),new Vr(n)}remove(e){return e=Nr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return jr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return jr(this.json)}fillDown(){var e;return e=this.json,jr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else xr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Cr(this.json);let e=jr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Cr(this.json),Dr(this.json,e)}debug(){return Cr(this.json),Dr(this.json,"debug"),this}};const Br=function(e){let t=Er(e);return new Vr(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const $r=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Fr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:$r(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sr=function(e){return e?"string"==typeof e?[e]:e:[]};var Hr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sr(e[t].children),e[t].not=Sr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Wr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Hr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Fr(n)},Mr={one:{setTag:yr,unTag:wr,addTags:Wr}};const Jr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Lr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Jr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Jr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var qr=Lr,Kr=function(e){Object.assign(e.prototype,qr)},Ur={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Rr=new Set(["Auxiliary","Possessive"]);var _r=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Rr.has(e)||!t.hasOwnProperty(n))return 1;if(Rr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Qr={model:{one:{tagSet:{}}},compute:{tagRank:_r},methods:Mr,api:Kr,lib:Ur};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Yr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var ea=function(e){let t=[],n=e.split(Xr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const oa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ia=RegExp("("+Object.keys(oa).join("|")+")","g"),sa=RegExp("("+Object.values(oa).join("|")+")","g"),la=function(e){if(!e)return!1;let t=e.match(sa);return null!==t&&1===t.length};var ua=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var xa=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Aa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wa(n),n=ba(n),n=n.filter((e=>e)),n};let Na=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Ea=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ia=/[\p{Punctuation}\s]+$/u,Ga=/^[\p{Punctuation}\s]+/u,Ta=/['’]/,Da=/^[a-z]\.([a-z]\.)+/i,Ca=/^'[0-9]{2}/;var Oa=function(e){let t=e,n="",r="";return e=e.replace(Ga,(t=>{let r=t.match(Na);return r?(n=t.replace(Na,""),r):"'"===n&&Ca.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ia,(a=>{let o=a.match(Ea);return o?(r=a.replace(Ea,""),o):Ta.test(a)&&/[sn]['’]$/.test(t)&&!1===Ta.test(n)?(r=r.replace(Ta,""),"'"):!0===Da.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}},Va=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},Ba=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const za=/([A-Z]\.)+[A-Z]?,?$/,$a=/^[A-Z]\.,?$/,Fa=/[A-Z]{2,}('s|,)?$/,Sa=/([a-z]\.)+[a-z]\.?$/;var Ha=function(e){return function(e){return!0===za.test(e)||!0===Sa.test(e)||!0===$a.test(e)||!0===Fa.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Wa=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ba(r),r=n(r,t),r=Ha(r),e.normal=r},Ma=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Wa(e,t)})),n})),e};const Ja=/[ .][A-Z]\.? *$/i,La=/(?:\u2026|\.{2,}) *$/,qa=/\p{L}/u,Ka=/^[A-Z]\. $/;var Ua=function(e,t){if(!1===qa.test(e))return!1;if(!0===Ja.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===La.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ra={one:{killUnicode:Va,tokenize:{splitSentences:ga,isSentence:Ua,splitTerms:xa,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Oa(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Ma}}},_a={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},Za={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qa[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])}))}));var Ya=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Xa={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(Xa).forEach((function(e){Xa[e].split("").forEach((function(t){eo[t]=e}))}));const to=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),to.test(n)&&!no.test(n)&&!ro.test(n)){let t=n.split(to);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const oo=/^\p{Letter}+-\p{Letter}+$/u;var io=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),oo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},so=function(e){let t=e.docs,n={};for(let e=0;eho(e,ao),machine:e=>ho(e,io),normal:e=>ho(e,Wa),freq:so,offset:lo,index:uo,wordCount:co},methods:Ra,model:{one:{aliases:_a,abbreviations:Qa,prefixes:Ya,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Za,unicode:eo}},hooks:["alias","machine","index","id"]},mo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var fo=function(e){e.prototype.autoFill=go},vo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const bo={safe:!0,min:3};var yo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},bo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=vo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},wo={model:{one:{typeahead:{}}},api:fo,lib:yo,compute:mo,hooks:["typeahead"]};v.extend(ee),v.extend(Ln),v.extend(ln),v.extend(rr),v.extend(Qr),v.plugin(Ie),v.extend(po),v.plugin(P),v.extend(Le),v.extend(wo),v.extend(ze),v.extend(mr);var Po={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ko={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ao=36,jo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",xo=jo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==xo[e])return xo[e];let t=0,n=1,r=Ao,a=1;for(;n=0;n--,a*=Ao){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Eo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Go(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=To(ko[e]);Vo.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Oo(t,$o);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Bo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Bo[e]="Emoticon")),delete Bo[""],delete Bo.null,delete Bo[" "];const Fo="Adjective";var So={beforeTags:{Determiner:Fo,Possessive:Fo},afterTags:{Adjective:Fo},beforeWords:{seem:Fo,seemed:Fo,seems:Fo,feel:Fo,feels:Fo,felt:Fo,appear:Fo,appears:Fo,appeared:Fo,also:Fo,over:Fo,under:Fo,too:Fo,it:Fo,but:Fo,still:Fo,really:Fo,quite:Fo,well:Fo,very:Fo,deeply:Fo,profoundly:Fo,extremely:Fo,so:Fo,badly:Fo,mostly:Fo,totally:Fo,awfully:Fo,rather:Fo,nothing:Fo,something:Fo,anything:Fo,not:Fo,me:Fo},afterWords:{too:Fo,also:Fo,or:Fo}};const Ho="Gerund";var Wo={beforeTags:{Adverb:Ho,Preposition:Ho,Conjunction:Ho},afterTags:{Adverb:Ho,Possessive:Ho,Person:Ho,Pronoun:Ho,Determiner:Ho,Copula:Ho,Preposition:Ho,Conjunction:Ho,Comparative:Ho},beforeWords:{been:Ho,keep:Ho,continue:Ho,stop:Ho,am:Ho,be:Ho,me:Ho,began:Ho,start:Ho,starts:Ho,started:Ho,stops:Ho,stopped:Ho,help:Ho,helps:Ho,avoid:Ho,avoids:Ho,love:Ho,loves:Ho,loved:Ho,hate:Ho,hates:Ho,hated:Ho},afterWords:{you:Ho,me:Ho,her:Ho,him:Ho,them:Ho,their:Ho,it:Ho,this:Ho,there:Ho,on:Ho,about:Ho,for:Ho}},Mo={beforeTags:Object.assign({},So.beforeTags,Wo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},So.afterTags,Wo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},So.beforeWords,Wo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},So.afterWords,Wo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Jo="Singular";var Lo={beforeTags:{Determiner:Jo,Possessive:Jo,Acronym:Jo,Noun:Jo,Adjective:Jo,PresentTense:Jo,Gerund:Jo,PastTense:Jo,Infinitive:Jo,Date:Jo},afterTags:{Value:Jo,Modal:Jo,Copula:Jo,PresentTense:Jo,PastTense:Jo,Demonym:Jo},beforeWords:{the:Jo,with:Jo,without:Jo,of:Jo,for:Jo,any:Jo,all:Jo,on:Jo,cut:Jo,cuts:Jo,save:Jo,saved:Jo,saves:Jo,make:Jo,makes:Jo,made:Jo,minus:Jo,plus:Jo,than:Jo,another:Jo,versus:Jo,neither:Jo,favorite:Jo,best:Jo,daily:Jo,weekly:Jo,linear:Jo,binary:Jo,mobile:Jo,lexical:Jo,technical:Jo,computer:Jo,scientific:Jo,formal:Jo},afterWords:{of:Jo,system:Jo,aid:Jo,method:Jo,utility:Jo,tool:Jo,reform:Jo,therapy:Jo,philosophy:Jo,room:Jo,authority:Jo,says:Jo,said:Jo,wants:Jo,wanted:Jo}};const qo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ko={beforeTags:Object.assign({},So.beforeTags,Lo.beforeTags,qo.beforeTags),afterTags:Object.assign({},So.afterTags,Lo.afterTags),beforeWords:Object.assign({},So.beforeWords,Lo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Lo.afterWords)};const Uo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ro={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},_o={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Qo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Zo={beforeTags:Object.assign({},So.beforeTags,Uo),afterTags:Object.assign({},So.afterTags,Ro),beforeWords:Object.assign({},So.beforeWords,_o),afterWords:Object.assign({},So.afterWords,Qo)};const Yo="Infinitive";var Xo={beforeTags:{Modal:Yo,Adverb:Yo,Negative:Yo,Plural:Yo},afterTags:{Determiner:Yo,Adverb:Yo,Possessive:Yo,Preposition:Yo},beforeWords:{i:Yo,we:Yo,you:Yo,they:Yo,to:Yo,please:Yo,will:Yo,have:Yo,had:Yo,would:Yo,could:Yo,should:Yo,do:Yo,did:Yo,does:Yo,can:Yo,must:Yo,us:Yo,me:Yo,he:Yo,she:Yo,it:Yo,being:Yo},afterWords:{the:Yo,me:Yo,you:Yo,him:Yo,her:Yo,them:Yo,it:Yo,a:Yo,an:Yo,up:Yo,down:Yo,by:Yo,out:Yo,off:Yo,under:Yo,when:Yo,all:Yo,to:Yo,because:Yo,although:Yo,before:Yo,how:Yo,otherwise:Yo,together:Yo,though:Yo,yet:Yo}};const ei={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ti={beforeTags:Object.assign({},So.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},So.afterTags,Xo.afterTags,ei.afterTags),beforeWords:Object.assign({},So.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Xo.afterWords,{to:void 0})};const ni={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ri={},ai={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},oi={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ii={beforeTags:Object.assign({},Wo.beforeTags,Lo.beforeTags,ni),afterTags:Object.assign({},Wo.afterTags,Lo.afterTags,ri),beforeWords:Object.assign({},Wo.beforeWords,Lo.beforeWords,ai),afterWords:Object.assign({},Wo.afterWords,Lo.afterWords,oi)},si={beforeTags:Object.assign({},Xo.beforeTags,Lo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xo.afterTags,Lo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xo.beforeWords,Lo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xo.afterWords,Lo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const li="Person";var ui={beforeTags:{Honorific:li,Person:li,Preposition:li},afterTags:{Person:li,ProperNoun:li,Verb:li},ownTags:{ProperNoun:li},beforeWords:{hi:li,hey:li,yo:li,dear:li,hello:li},afterWords:{said:li,says:li,told:li,tells:li,feels:li,felt:li,seems:li,thinks:li,thought:li,spends:li,spendt:li,plays:li,played:li,sing:li,sang:li,learn:li,learned:li,wants:li,wanted:li}};const ci="Month",hi={beforeTags:{Date:ci,Value:ci},afterTags:{Date:ci,Value:ci},beforeWords:{by:ci,in:ci,on:ci,during:ci,after:ci,before:ci,between:ci,until:ci,til:ci,sometime:ci,of:ci,this:ci,next:ci,last:ci,previous:ci,following:ci},afterWords:{sometime:ci,in:ci,of:ci,until:ci,the:ci}};var di={beforeTags:Object.assign({},ui.beforeTags,hi.beforeTags),afterTags:Object.assign({},ui.afterTags,hi.afterTags),beforeWords:Object.assign({},ui.beforeWords,hi.beforeWords),afterWords:Object.assign({},ui.afterWords,hi.afterWords)};const pi={Place:"Place"},mi={Place:"Place",Abbreviation:"Place"},gi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},fi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let vi="Unit";const bi="Honorific";let yi={first:bi,general:bi,royal:bi,vice:bi,rear:bi,major:bi};const wi={"Adj|Gerund":Mo,"Adj|Noun":Ko,"Adj|Past":Zo,"Adj|Present":ti,"Noun|Verb":si,"Noun|Gerund":ii,"Person|Noun":{beforeTags:Object.assign({},Lo.beforeTags,ui.beforeTags),afterTags:Object.assign({},Lo.afterTags,ui.afterTags),beforeWords:Object.assign({},Lo.beforeWords,ui.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Lo.afterWords,ui.afterWords)},"Person|Date":di,"Person|Verb":{beforeTags:Object.assign({},ui.beforeTags,Xo.beforeTags),afterTags:Object.assign({},ui.afterTags,Xo.afterTags),beforeWords:Object.assign({},ui.beforeWords,Xo.beforeWords),afterWords:Object.assign({},ui.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},pi,ui.beforeTags),afterTags:Object.assign({},mi,ui.afterTags),beforeWords:Object.assign({},gi,ui.beforeWords),afterWords:Object.assign({},fi,ui.afterWords)},"Unit|Noun":{beforeTags:{Value:vi},afterTags:{},beforeWords:{per:vi,every:vi,each:vi,square:vi,cubic:vi,sq:vi,metric:vi},afterWords:{per:vi,squared:vi,cubed:vi,long:vi}},"Honorific|Noun":{beforeTags:{Honorific:bi,ProperNoun:bi,Ordinal:bi},afterTags:{Person:bi,ProperNoun:bi},beforeWords:Object.assign({},yi,{honorable:bi,honourable:bi,worship:bi,excellency:bi,majesty:bi,right:bi}),afterWords:yi}},Pi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};wi["Plural|Verb"]={beforeWords:Pi(wi["Noun|Verb"].beforeWords,{}),afterWords:Pi(wi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:Pi(wi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:Pi(wi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ki=wi;const Ai="Adjective",ji="Infinitive",xi="PresentTense",Ni="Singular",Ei="PastTense",Ii="Adverb",Gi="Plural",Ti="Actor",Di="Verb",Ci="Noun",Oi="LastName",Vi="Modal",Bi="Participle";var zi=[null,null,{ea:Ni,ia:Ci,ic:Ai,ly:Ii,"'n":Di,"'t":Di},{oed:Ei,ued:Ei,xed:Ei," so":Ii,"'ll":Vi,"'re":"Copula",azy:Ai,eer:Ci,end:Di,ped:Ei,ffy:Ai,ify:ji,ing:"Gerund",ize:ji,ibe:ji,lar:Ai,mum:Ai,nes:xi,nny:Ai,ous:Ai,que:Ai,rol:Ni,sis:Ni,ogy:Ni,oid:Ni,ian:Ni,zes:xi,eld:Ei,ken:Bi,ven:Bi,ten:Bi,ect:ji,ict:ji,ign:ji,ful:Ai,bal:Ai},{amed:Ei,aped:Ei,ched:Ei,lked:Ei,rked:Ei,reed:Ei,nded:Ei,mned:Ai,cted:Ei,dged:Ei,ield:Ni,akis:Oi,cede:ji,chuk:Oi,czyk:Oi,ects:xi,ends:Di,enko:Oi,ette:Ni,wner:Ni,fies:xi,fore:Ii,gate:ji,gone:Ai,ices:Gi,ints:Gi,ruct:ji,ines:Gi,ions:Gi,less:Ai,llen:Ai,made:Ai,nsen:Oi,oses:xi,ould:Vi,some:Ai,sson:Oi,tion:Ni,tage:Ci,ique:Ni,tive:Ai,tors:Ci,vice:Ni,lier:Ni,fier:Ni,wned:Ei,gent:Ni,tist:Ni,pist:Ni,rist:Ni,mist:Ni,yist:Ni,vist:Ni,lite:Ni,site:Ni,rite:Ni,mite:Ni,bite:Ni,mate:Ni,date:Ni,ndal:Ni,vent:Ni,uist:Ni,gist:Ni,note:Ni,cide:Ni,wide:Ai,vide:ji,ract:ji,duce:ji,pose:ji,eive:ji,lyze:ji,lyse:ji,iant:Ai,nary:Ai},{elist:Ni,holic:Ni,phite:Ni,tized:Ei,urned:Ei,eased:Ei,ances:Gi,bound:Ai,ettes:Gi,fully:Ii,ishes:xi,ities:Gi,marek:Oi,nssen:Oi,ology:Ci,osome:Ni,tment:Ni,ports:Gi,rough:Ai,tches:xi,tieth:"Ordinal",tures:Gi,wards:Ii,where:Ii,archy:Ci,pathy:Ci,opoly:Ci,embly:Ci,phate:Ci,ndent:Ni,scent:Ni,onist:Ni,anist:Ni,alist:Ni,olist:Ni,icist:Ni,ounce:ji,iable:Ai,borne:Ai,gnant:Ai,inant:Ai,igent:Ai,atory:Ai,rient:Ni,dient:Ni},{auskas:Oi,parent:Ni,cedent:Ni,ionary:Ni,cklist:Ni,keeper:Ti,logist:Ti,teenth:"Value"},{opoulos:Oi,borough:"Place",sdottir:Oi}];const $i="Adjective",Fi="Noun",Si="Verb";var Hi=[null,null,{},{neo:Fi,bio:Fi,"de-":Si,"re-":Si,"un-":Si},{anti:Fi,auto:Fi,faux:$i,hexa:Fi,kilo:Fi,mono:Fi,nano:Fi,octa:Fi,poly:Fi,semi:$i,tele:Fi,"pro-":$i,"mis-":Si,"dis-":Si,"pre-":$i},{anglo:Fi,centi:Fi,ethno:Fi,ferro:Fi,grand:Fi,hepta:Fi,hydro:Fi,intro:Fi,macro:Fi,micro:Fi,milli:Fi,nitro:Fi,penta:Fi,quasi:$i,radio:Fi,tetra:Fi,"omni-":$i,"post-":$i},{pseudo:$i,"extra-":$i,"hyper-":$i,"inter-":$i,"intra-":$i,"deca-":$i},{electro:Fi}];const Wi="Adjective",Mi="Infinitive",Ji="PresentTense",Li="Singular",qi="PastTense",Ki="Adverb",Ui="Expression",Ri="Actor",_i="Verb",Qi="Noun",Zi="LastName";var Yi={a:[[/.[aeiou]na$/,Qi,"tuna"],[/.[oau][wvl]ska$/,Zi],[/.[^aeiou]ica$/,Li,"harmonica"],[/^([hyj]a+)+$/,Ui,"haha"]],c:[[/.[^aeiou]ic$/,Wi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,qi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,qi,"rammed"],[/.[aeiou][sg]hed$/,qi,"gushed"],[/.[aeiou]red$/,qi,"hired"],[/.[aeiou]r?ried$/,qi,"hurried"],[/[^aeiou]ard$/,Li,"steward"],[/[aeiou][^aeiou]id$/,Wi,""],[/.[vrl]id$/,Wi,"livid"],[/..led$/,qi,"hurled"],[/.[iao]sed$/,qi,""],[/[aeiou]n?[cs]ed$/,qi,""],[/[aeiou][rl]?[mnf]ed$/,qi,""],[/[aeiou][ns]?c?ked$/,qi,"bunked"],[/[aeiou]gned$/,qi],[/[aeiou][nl]?ged$/,qi],[/.[tdbwxyz]ed$/,qi],[/[^aeiou][aeiou][tvx]ed$/,qi],[/.[cdflmnprstv]ied$/,qi,"emptied"]],e:[[/.[lnr]ize$/,Mi,"antagonize"],[/.[^aeiou]ise$/,Mi,"antagonise"],[/.[aeiou]te$/,Mi,"bite"],[/.[^aeiou][ai]ble$/,Wi,"fixable"],[/.[^aeiou]eable$/,Wi,"maleable"],[/.[ts]ive$/,Wi,"festive"],[/[a-z]-like$/,Wi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Wi,"cornish"],[/.v[iy]ch$/,Zi,"..ovich"],[/^ug?h+$/,Ui,"ughh"],[/^uh[ -]?oh$/,Ui,"uhoh"],[/[a-z]-ish$/,Wi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Zi,"polish-male"]],k:[[/^(k){2}$/,Ui,"kkkk"]],l:[[/.[gl]ial$/,Wi,"familial"],[/.[^aeiou]ful$/,Wi,"fitful"],[/.[nrtumcd]al$/,Wi,"natal"],[/.[^aeiou][ei]al$/,Wi,"familial"]],m:[[/.[^aeiou]ium$/,Li,"magnesium"],[/[^aeiou]ism$/,Li,"schism"],[/^[hu]m+$/,Ui,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Wi,"republican"],[/[^aeiou]ician$/,Ri,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Ui,"noooo"],[/^(yo)+$/,Ui,"yoo"],[/^wo{2,}[pt]?$/,Ui,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Li],[/[^i]fer$/,Mi],[/.[^aeiou][ao]pher$/,Ri],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Wi],[/[aeiou].*ist$/,Wi],[/^[a-z]et$/,_i]],s:[[/.[^aeiou]ises$/,Ji],[/.[rln]ates$/,Ji],[/.[^z]ens$/,_i],[/.[lstrn]us$/,Li],[/.[aeiou]sks$/,Ji],[/.[aeiou]kes$/,Ji],[/[aeiou][^aeiou]is$/,Li],[/[a-z]'s$/,Qi],[/^yes+$/,Ui]],v:[[/.[^aeiou][ai][kln]ov$/,Zi]],y:[[/.[cts]hy$/,Wi],[/.[st]ty$/,Wi],[/.[tnl]ary$/,Wi],[/.[oe]ry$/,Li],[/[rdntkbhs]ly$/,Ki],[/.(gg|bb|zz)ly$/,Wi],[/...lly$/,Ki],[/.[gk]y$/,Wi],[/[bszmp]{2}y$/,Wi],[/.[ai]my$/,Wi],[/[ea]{2}zy$/,Wi],[/.[^aeiou]ity$/,Li]]};const Xi="Verb",es="Noun";var ts={leftTags:[["Adjective",es],["Possessive",es],["Determiner",es],["Adverb",Xi],["Pronoun",Xi],["Value",es],["Ordinal",es],["Modal",Xi],["Superlative",es],["Demonym",es],["Honorific","Person"]],leftWords:[["i",Xi],["first",es],["it",Xi],["there",Xi],["not",Xi],["because",es],["if",es],["but",es],["who",Xi],["this",es],["his",es],["when",es],["you",Xi],["very","Adjective"],["old",es],["never",Xi],["before",es],["a","Singular"],["the",es],["been",Xi]],rightTags:[["Copula",es],["PastTense",es],["Conjunction",es],["Modal",es]],rightWords:[["there",Xi],["me",Xi],["man","Adjective"],["only",Xi],["him",Xi],["it",Xi],["were",es],["took",es],["himself",Xi],["went",es],["who",es],["jr","Person"]]},ns={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},rs={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},as={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},os={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},is={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const ss=/^.([0-9]+)/;var ls=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(ss);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(ss,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},cs=/^([0-9]+)/,hs=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(cs);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(cs,"")]}(n[0],n[1])}))};var ds=function(e={}){return(e=Object.assign({},e)).rules=hs(e.rules),e.rules=us(e.rules),e.rev&&(e.rev=hs(e.rev),e.rev=us(e.rev)),e.exceptions=hs(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},ps=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const ms=ds({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),gs=ds(os),fs=ds(rs),vs=ds(as),bs=ps(ms),ys=ps(gs),ws=ps(fs),Ps=ps(vs),ks=ds(ns),As=ds(is);var js={fromPast:ms,fromPresent:gs,fromGerund:fs,fromParticiple:vs,toPast:bs,toPresent:ys,toGerund:ws,toParticiple:Ps,toComparative:ks,toSuperlative:As,fromComparative:ps(ks),fromSuperlative:ps(As)},xs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ns=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Es=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Gs[t].forEach((n=>e[n]=t)),e)),{});var Ts=Gs,Ds=function(e){let t=e.substring(e.length-3);if(!0===Ts.hasOwnProperty(t))return Ts[t];let n=e.substring(e.length-2);return!0===Ts.hasOwnProperty(n)?Ts[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Cs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Os=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ds(e)),Cs.hasOwnProperty(e))c=Cs[e];else if("Participle"===n)c=ls(l,i);else if("PastTense"===n)c=ls(l,r);else if("PresentTense"===n)c=ls(l,a);else{if("Gerund"!==n)return e;c=ls(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Vs=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ls(i,n),PresentTense:ls(i,r),Gerund:ls(i,a),FutureTense:"will "+e},u=ls(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Bs={toInfinitive:Os,conjugate:Vs,all:function(e,t){let n=Vs(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},zs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const $s=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Fs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ss=function(e){if(Fs.hasOwnProperty(e))return Fs[e];let t=zs(e,$s);return t||e+"ly"};const Hs=function(e,t){const n=t.two.models.toSuperlative;return ls(e,n)},Ws=function(e,t){const n=t.two.models.toComparative;return ls(e,n)},Ms="ically",Js=new Set(["analyt"+Ms,"chem"+Ms,"class"+Ms,"clin"+Ms,"crit"+Ms,"ecolog"+Ms,"electr"+Ms,"empir"+Ms,"frant"+Ms,"grammat"+Ms,"ident"+Ms,"ideolog"+Ms,"log"+Ms,"mag"+Ms,"mathemat"+Ms,"mechan"+Ms,"med"+Ms,"method"+Ms,"method"+Ms,"mus"+Ms,"phys"+Ms,"phys"+Ms,"polit"+Ms,"pract"+Ms,"rad"+Ms,"satir"+Ms,"statist"+Ms,"techn"+Ms,"technolog"+Ms,"theoret"+Ms,"typ"+Ms,"vert"+Ms,"whims"+Ms]),Ls=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],qs=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ks={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Us=function(e){return e.endsWith("ly")?Js.has(e)?e.replace(/ically/,"ical"):qs.has(e)?null:Ks.hasOwnProperty(e)?Ks[e]:zs(e,Ls)||e:null};const Rs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],_s={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Qs=new Set(["terrible","annoying"]);var Zs={toSuperlative:Hs,toComparative:Ws,toAdverb:Ss,toNoun:function(e){if(_s.hasOwnProperty(e))return _s[e];if(Qs.has(e))return null;let t=zs(e,Rs);return t||e+"ness"},fromAdverb:Us,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ls(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ls(e,n)},all:function(e,t){let n=[e];return n.push(Hs(e,t)),n.push(Ws(e,t)),n.push(Ss(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Ys={noun:Is,verb:Bs,adjective:Zs},Xs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},el=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Xs.hasOwnProperty(i)&&Xs[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},tl=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!al.find((t=>e.endsWith(t)))},il={two:{quickSplit:tl,expandLexicon:el,transform:Ys,looksPlural:ol}},sl=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const ll=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var ul=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=ll(n,"Infinitive","PastTense"),Object.assign(s,l),l=ll(r,"Infinitive","Verb"),Object.assign(s,l),l=ll(a,"Infinitive","Gerund"),Object.assign(s,l),l=ll(o,"Adjective","Superlative"),Object.assign(s,l),l=ll(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let cl={two:{models:js}};const hl={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},dl=function(e,t){const n={model:t,methods:il};let{lex:r,_multi:a}=il.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},pl=function(e,t,n){let r=Vs(e,cl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},ml=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=hl[o],"Noun|Verb"!==o&&"Person|Verb"!==o||pl(a,r,!1),"Adj|Present"===o&&(pl(a,r,!0),function(e,t,n){let r=Hs(e,n);t[r]=t[r]||"Superlative";let a=Ws(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Os(a,cl,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Os(a,cl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=dl(n,t)};var gl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=dl(e.one.lexicon,e)).one.lexicon,e),e=ml(e.two.switches,e),e=ul(e),e=sl(e)};let fl={one:{_multiCache:{},lexicon:Bo},two:{irregularPlurals:Po,models:js,suffixPatterns:zi,prefixPatterns:Hi,endsWith:Yi,neighbours:ts,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:zo,clues:ki,uncountable:{},orgWords:xs}};fl=gl(fl);var vl=fl;const bl=/^(under|over|mis|re|un|dis|semi)-?/;var yl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(bl.test(a.normal)){let e=a.normal.replace(bl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},wl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const Pl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var kl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(ol(e.normal)?wl(e,"Plural","3-plural-guess"):wl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ds(e.normal);t&&wl(e,t,"3-verb-tense-guess")}}(r)};const Al=/^\p{Lu}[\p{Ll}'’]/u,jl=/[0-9]/,xl=["Date","Month","WeekDay","Unit"],Nl=/^[IVXLCDM]{2,}$/,El=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Il={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Gl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===Al.test(o)&&!1===jl.test(o)?xl.find((e=>r.tags.has(e)))?null:(kl(e,t,n),r.tags.has("Noun")||r.tags.clear(),wl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Nl.test(o)&&El.test(o)&&!Il[r.normal]?(wl(r,"RomanNumeral","2-xvii"),!0):null};const Tl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var Dl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Tl(r.normal,n.two.suffixPatterns);if(null!==e)return wl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Tl(r.implicit,n.two.suffixPatterns),null!==e))return wl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Cl=/['‘’‛‵′`´]/,Ol=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return wl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const zl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),$l=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!zl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Fl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},Sl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Hl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if($l(a)||$l(o))return wl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Fl(a)||Fl(o))return wl(n,"Year","2-tagYear-close");if(Sl(e[t-2])||Sl(e[t+2]))return wl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return wl(n,"Year","2-tagYear-noun")}}}return null};const Wl=/^[A-Z]('s|,)?$/,Ml=/^[A-Z-]+$/,Jl=/([A-Z]\.)+[A-Z]?,?$/,Ll=/[A-Z]{2,}('s|,)?$/,ql=/([a-z]\.)+[a-z]\.?$/,Kl={I:!0,A:!0};var Ul=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Ml.test(n)||n.length>5||Kl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Jl.test(n)&&!0!==ql.test(n)&&!0!==Wl.test(n)&&!0!==Ll.test(n))}(r,n)?(r.tags.clear(),wl(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Kl.hasOwnProperty(r.text)&&Wl.test(r.text)?(r.tags.clear(),wl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(wl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Ml.test(r.text)&&r.text.length<=6?(wl(r,"Acronym","3-titlecase-acronym"),!0):null};const Rl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},_l=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ql=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Rl(e[t-1],a),l=l||Rl(e[t+1],o),l=l||_l(e[t-1],r),l=l||_l(e[t+1],i),l)return wl(s,l,"3-[neighbour]"),kl(e,t,n),e[t].confidence=.2,!0}return null};const Zl=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Yl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Zl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Zl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Xl=function(e,t,n){0===e[t].tags.size&&(wl(e[t],"Noun","3-[fallback]"),kl(e,t,n),e[t].confidence=.1)};const eu=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,tu=(e,t,n)=>0!==t||e[1]?null:n,nu={"Adj|Gerund":(e,t)=>eu(e,t),"Adj|Noun":(e,t)=>eu(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>eu(e,t),"Adj|Present":(e,t)=>eu(e,t),"Noun|Gerund":(e,t)=>eu(e,t),"Noun|Verb":(e,t)=>eu(e,t)||tu(e,t,"Infinitive"),"Plural|Verb":(e,t)=>eu(e,t)||tu(e,t,"PresentTense"),"Person|Noun":(e,t)=>eu(e,t),"Person|Verb":(e,t)=>0!==t?eu(e,t):null};var ru=nu;const au="undefined"!=typeof process&&process.env?process.env:self.env||{},ou=/^(under|over|mis|re|un|dis|semi)-?/,iu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&au.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},su=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&au.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var lu=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(ou.test(l)&&!o[l]&&(l=l.replace(ou,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=iu(e[t+1],n.afterWords);return o=o||iu(e[t-1],n.beforeWords),o=o||su(e[t-1],n.beforeTags,a),o=o||su(e[t+1],n.afterTags,a),o}(e,t,i[o],r);ru[o]&&(u=ru[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),kl(e,t,r)):au.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},uu=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(wl(o,"Verb","3-[prefix]"),wl(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(wl(o,"Adjective","3-[prefix]"),wl(o,"Prefix","3-[prefix]")))};const cu={tagSwitch:yl,checkSuffix:Dl,checkRegex:Vl,checkCase:Gl,checkPrefix:Bl,checkHyphen:uu,checkYear:Hl},hu={checkAcronym:Ul,neighbours:Ql,orgWords:Yl,nounFallback:Xl,switches:lu},du=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var fu=function(e){const t=e.world,n=Object.keys(gu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=Iu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Eu},Tu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Du=/'/;var Cu=function(e,t){let n=e[t].normal.split(Du)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Ou=/'/;var Vu=function(e,t){let n=e[t].normal.split(Ou)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Bu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const zu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},$u={in:!0,by:!0,for:!0};var Fu=(e,t)=>{let n=e[t];if(zu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===$u[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Su=/'/,Hu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Wu={d:(e,t)=>Vu(e,t),t:(e,t)=>Bu(e,t),s:(e,t,n)=>Fu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Cu(e,t)},Mu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Ju={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Su.test(r[o].normal)&&([,i]=r[o].normal.split(Su));let s=null;Wu.hasOwnProperty(i)&&(s=Wu[i](r,o,t)),s&&(s=Mu(s,e),Tu(n,[a,o],s),Hu(n[a],e,o,s.length))}}))}},Lu={compute:Ju,api:Gu,hooks:["contractionTwo"]};const qu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Ku=["i","we","they"];let Uu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${qu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${qu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${qu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ku,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Ru=null;var _u={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Ru=Ru||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Ru),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Qu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:_u,model:{two:{matches:Uu}},hooks:["postTagger"]};var Zu=Qu,Yu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},Xu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Yu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},ec={lib:{lazy:Xu}},tc=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},nc=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?tc(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},rc={api:function(e){e.prototype.swap=nc}};v.plugin(ju),v.plugin(Lu),v.plugin(Zu),v.plugin(ec),v.plugin(rc);var ac=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter((e=>e.wordCount()>5&&e.match("#Verb+").length>=2));if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n},oc=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r},ic=function(e){e.prototype.chunks=oc,e.prototype.clauses=ac};const sc={this:"Noun",then:"Pivot"};var lc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},fc={chunks:function(e){const{document:t,world:n}=e;lc(t),uc(t),dc(e,t,n),mc(t),gc(t)}},vc={compute:fc,api:ic,hooks:["chunks"]};const bc=/'s$/;var yc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(bc,""),e.normal=e.normal.replace(bc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const wc=/\(/,Pc=/\)/,kc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(wc,"");let t=e[e.length-1];t.post=t.post.replace(Pc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const jc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},xc=RegExp("("+Object.keys(jc).join("|")+")"),Nc=RegExp("("+Object.values(jc).join("|")+")"),Ec=function(e,t){const n=e[t].pre.match(xc)[0]||"";if(!n||!jc[n])return null;const r=jc[n];for(;t{e[0].pre=e[0].pre.replace(xc,"");let t=e[e.length-1];t.post=t.post.replace(Nc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Gc=/\./g;var Tc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Gc,""),e.normal=e.normal.replace(Gc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Gc,""),e.normal=e.normal.replace(Gc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},Dc=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Cc=(e,t)=>"number"==typeof t?e.eq(t):e,Oc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Vc=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Oc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let o=Oc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return Cc(this,e).map((e=>{let n=Oc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Cc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Cc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Cc(t,e),new Adjectives(t.document,t.pointer)}};const Bc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},zc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let $c=[["emojis","emoji"],["atmentions","atMentions"]];var Fc=function(e){zc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Bc,$c.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},Sc={api:function(e){Fc(e),yc(e),Ac(e),Ic(e),Vc(e),Dc(e),Tc(e)}};const Hc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Wc={case:e=>{Hc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Hc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{Hc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{Hc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Mc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Jc="unicode|punctuation|whitespace|acronyms",Lc="|case|contractions|parentheses|quotations|emoji|honorifics",qc={light:Mc(Jc),medium:Mc(Jc+Lc),heavy:Mc(Jc+Lc+"|possessives|adverbs|nouns|verbs")};var Kc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=qc[e]),Object.keys(e).forEach((t=>{Wc.hasOwnProperty(t)&&Wc[t](this,e[t])})),this}}},Uc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Rc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var _c=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Zc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Qc(e,t),isSubordinate:_c(e),root:t}};const Yc=e=>e.text(),Xc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),eh=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var th=function(e){let t=Zc(e);return{root:Yc(t.root),number:eh(t.number),determiner:Yc(t.determiner),adjectives:Xc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const nh={tags:!0};var rh=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,nh).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",nh),e};const ah={tags:!0};var oh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,ah).tag("Singular","toPlural"),e};const ih=(e,t)=>"number"==typeof t?e.eq(t):e;var sh=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return ih(this,e).map(Zc)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=th(t)),n}),[])}isPlural(e){let t=this.filter((e=>Zc(e).isPlural));return ih(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Zc(e).adjectives;n.found&&(t=t.concat(n))})),ih(t,e)}toPlural(e){return ih(this,e).map((e=>rh(e,Zc(e))))}toSingular(e){return ih(this,e).map((e=>{let t=Zc(e);return oh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Uc(this);return t=ih(t,e),new Nouns(this.document,t.pointer)}},lh={api:sh},uh=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},ch=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(hh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(hh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(hh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},ph=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const gh=/^([0-9,. ]+)\/([0-9,. ]+)$/,fh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},vh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var bh=function(e){if(!0===fh.hasOwnProperty(e))return fh[e];if("a"===e||"an"===e)return 1;const t=ch(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=wh(n),r=wh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:wh(n);let a=r.text("reduced");return yh.test(a)&&(a=a.replace(yh,""),r=r.replaceWith(a)),r=Ph.hasOwnProperty(a)?Ph[a]:wh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:wh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},Ah=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const jh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],xh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Nh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],Eh=function(e){let t=[];if(e>100)return t;for(let n=0;n=jh[n][1]&&(e-=jh[n][1],t.push(jh[n][0]));return xh[e]&&t.push(xh[e]),t};var Ih=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=Ah(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Nh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(Eh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=Ah(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Gh=function(e){return e.numerator&&e.denominator?`${Ih({num:e.numerator})} out of ${Ih({num:e.denominator})}`:""};const Th={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Dh=e=>{let t=Ih(e).split(" "),n=t[t.length-1];return Th.hasOwnProperty(n)?t[t.length-1]=Th[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Ch=function(e){if(!e.numerator||!e.denominator)return"";let t=Ih({num:e.numerator}),n=Dh({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Oh=(e,t)=>"number"==typeof t?e.eq(t):e;var Vh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Oh(this,e).map(kh)}get(e){return Oh(this,e).map(kh)}json(e){return Oh(this,e).map((t=>{let n=t.toView().json(e)[0],r=kh(t);return n.fraction=r,n}),[])}toDecimal(e){return Oh(this,e).forEach((e=>{let{decimal:t}=kh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return Oh(this,e).forEach((e=>{let t=kh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return Oh(this,e).forEach((e=>{let t=kh(e),n=Ch(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return Oh(this,e).forEach((e=>{let t=kh(e),n=Gh(t);e.replaceWith(n)})),this}toPercentage(e){return Oh(this,e).forEach((e=>{let{decimal:t}=kh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=uh(this);return t=Oh(t,e),new Fractions(this.document,t.pointer)}};const Bh="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var zh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Bh+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Bh+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Bh+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Bh+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Bh})`),r=e.has("("+Bh+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Bh+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Bh+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},$h=function(e){if("string"==typeof e)return{num:bh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=kh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=bh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Fh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=Ah(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Sh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Hh={"%":"percent","°":"degrees"};var Wh=function(e){let t={suffix:"",prefix:e.prefix};return Sh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Sh[e.prefix],t.prefix=""),Hh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Hh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},Mh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Wh(e);return t+Dh(e)+n}if("Ordinal"===t)return e.prefix+Fh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Wh(e);return t+Ih(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Jh=(e,t)=>"number"==typeof t?e.eq(t):e;var Lh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Jh(this,e).map($h)}get(e){return Jh(this,e).map($h).map((e=>e.num))}json(e){return Jh(this,e).map((t=>{let n=t.toView().json(e)[0],r=$h(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=$h(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Mh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=$h(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Mh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=$h(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Mh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=$h(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Mh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=$h(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Mh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>$h(t).num===e))}greaterThan(e){return this.filter((t=>$h(t).num>e))}lessThan(e){return this.filter((t=>$h(t).num{let r=$h(n).num;return r>e&&r{let n=$h(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Mh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=$h(e).num);let t=this.map((t=>{let n=$h(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Mh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=zh(this);return t=Jh(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=zh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=Jh(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=zh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=Jh(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},qh={api:function(e){Vh(e),Lh(e)}};const Kh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Uh=function(e={}){return!1!==(e=Object.assign({},Kh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},Rh={api:function(e){e.prototype.redact=Uh}};var _h=Rh,Qh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},Zh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))},Yh=function(e){let t=e.clauses(),n=Zh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}},Xh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},ed=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},td=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},nd=function(e){return e.verbs().toInfinitive(),e};const rd=(e,t)=>"number"==typeof t?e.eq(t):e;var ad=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Yh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n}),[])}toPastTense(e){return rd(this,e).map((e=>(Yh(e),Xh(e))))}toPresentTense(e){return rd(this,e).map((e=>(Yh(e),ed(e))))}toFutureTense(e){return rd(this,e).map((e=>(Yh(e),e=td(e))))}toInfinitive(e){return rd(this,e).map((e=>(Yh(e),nd(e))))}toNegative(e){return rd(this,e).map((e=>(Yh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return rd(this,e).map((e=>(Yh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return rd(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return rd(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=rd(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Qh(this);return rd(t,e)}};Object.assign(e.prototype,t)},od={api:ad},id=function(e){return e.match("#Honorific+? #Person+")},sd=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const ld="male",ud="female",cd={mr:ld,mrs:ud,miss:ud,madam:ud,king:ld,queen:ud,duke:ld,duchess:ud,baron:ld,baroness:ud,count:ld,countess:ud,prince:ld,princess:ud,sire:ld,dame:ud,lady:ud,ayatullah:ld,congressman:ld,congresswoman:ud,"first lady":ud,mx:null};var hd=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return ud;if(n.has("#MaleName"))return ld;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),cd.hasOwnProperty(e))return cd[e];if(/^her /.test(e))return ud;if(/^his /.test(e))return ld}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return ld;if(n&&!t)return ud}return null};const dd=(e,t)=>"number"==typeof t?e.eq(t):e;var pd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return dd(this,e).map(sd)}json(e){return dd(this,e).map((t=>{let n=t.toView().json(e)[0],r=sd(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:hd(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=id(this);return t=dd(t,e),new People(this.document,t.pointer)}},md=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},gd=function(e){e.prototype.places=function(t){let n=md(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},fd=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const vd=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var bd=function(e){e.prototype.topics=vd},yd={api:function(e){pd(e),gd(e),fd(e),bd(e)}},wd=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t},Pd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},kd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const Ad=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},jd=function(e){return e.match("#Negative")},xd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var Nd=function(e){let t=e.clone();t.contractions().expand();const n=Pd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:kd(t,n),auxiliary:Ad(t,n),negative:jd(t),phrasal:xd(n)}};const Ed={tense:"PresentTense"},Id={conditional:!0},Gd={tense:"FutureTense"},Td={progressive:!0},Dd={tense:"PastTense"},Cd={complete:!0,progressive:!1},Od={passive:!0},Vd=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Bd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[Ed]],["^wanted to #Infinitive$",[Dd]],["^will want to #Infinitive$",[Gd]]],"gerund-phrase":[["^#PastTense #Gerund$",[Dd]],["^#PresentTense #Gerund$",[Ed]],["^#Infinitive #Gerund$",[Ed]],["^will #Infinitive #Gerund$",[Gd]],["^have #PastTense #Gerund$",[Dd]],["^will have #PastTense #Gerund$",[Dd]]],"simple-present":[["^#PresentTense$",[Ed]],["^#Infinitive$",[Ed]]],"simple-past":[["^#PastTense$",[Dd]]],"simple-future":[["^will #Adverb? #Infinitive",[Gd]]],"present-progressive":[["^(is|are|am) #Gerund$",[Ed,Td]]],"past-progressive":[["^(was|were) #Gerund$",[Dd,Td]]],"future-progressive":[["^will be #Gerund$",[Gd,Td]]],"present-perfect":[["^(has|have) #PastTense$",[Dd,Cd]]],"past-perfect":[["^had #PastTense$",[Dd,Cd]],["^had #PastTense to #Infinitive",[Dd,Cd]]],"future-perfect":[["^will have #PastTense$",[Gd,Cd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Dd,Td]]],"past-perfect-progressive":[["^had been #Gerund$",[Dd,Td]]],"future-perfect-progressive":[["^will have been #Gerund$",[Gd,Td]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[Dd,Od]],["^(was|were) being (#PastTense|#Participle)",[Dd,Od]],["^(had|have) been (#PastTense|#Participle)",[Dd,Od]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[Ed,Od]],["^(is|are|am) being (#PastTense|#Participle)",[Ed,Od]],["^has been (#PastTense|#Participle)",[Ed,Od]]],"passive-future":[["will have been (#PastTense|#Participle)",[Gd,Od,Id]],["will be being? (#PastTense|#Participle)",[Gd,Od,Id]]],"present-conditional":[["would be #PastTense",[Ed,Id]]],"past-conditional":[["would have been #PastTense",[Dd,Id]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Gd]]],"auxiliary-past":[["^did #Infinitive$",[Dd,{plural:!1}]],["^used to #Infinitive$",[Dd,Cd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[Ed,Cd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Dd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let zd=[];Object.keys(Bd).map((e=>{Bd[e].forEach((t=>{zd.push({name:e,match:t[0],data:Vd(t[1])})}))}));var $d=zd,Fd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t<$d.length;t+=1){let r=$d[t];if(!0===e.has(r.match)){n.form=r.name,Object.assign(n,r.data);break}}return n.form||e.has("^#Verb$")&&(n.form="infinitive"),n.tense||(n.tense=t.root.has("#PastTense")?"PastTense":"PresentTense"),n.copula=t.root.has("#Copula"),n};const Sd=function(e){return!(e.length<=1)&&(e.parse()[0]||{}).isSubordinate},Hd=function(e,t){return!!t.has("(are|were|does)")||!!e.has("(those|they|we)")||!(!e.found||!e.isPlural)&&e.isPlural().found};var Wd=function(e){let t=function(e){let t=e.before();t=function(e){let t=e.clauses();return t=t.filter(((e,t)=>!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),Sd(r)&&(n.remove(r),r=n.last()),Sd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Hd(t,e)}};const Md=e=>e,Jd=(e,t)=>{let n=Wd(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Ld=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Wd(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},qd=function(e,t){let n=Wd(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Kd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Ud=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Kd(e)),r&&e.replace(t.root,r),e},Rd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),_d=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Qd=function(e){return e&&e.isView?e.text("normal"):""},Zd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Kd(e))};var Yd=function(e){let t=Nd(e);e=e.clone().toView();const n=Fd(e,t);return{root:t.root.text(),preAdverbs:_d(t.adverbs.pre),postAdverbs:_d(t.adverbs.post),auxiliary:Qd(t.auxiliary),negative:t.negative.found,prefix:Qd(t.prefix),infinitive:Zd(t.root),grammar:n}};const Xd={tags:!0};var ep=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Kd(r)),i&&e.replace(r,i,Xd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=qd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const tp={tags:!0},np={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Kd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Wd(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,tp),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=np.simple(e,t),e=np.noAux(e,t))},hasHad:e=>(e.replace("has","had",tp),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Kd(a)),n(o,e.model).Participle}},rp={infinitive:np.simple,"simple-present":np.simple,"simple-past":Md,"simple-future":np.both,"present-progressive":e=>(e.replace("are","were",tp),e.replace("(is|are|am)","was",tp),e),"past-progressive":Md,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":np.hasHad,"past-perfect":Md,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Rd(e)),e.remove("have"),e),"present-perfect-progressive":np.hasHad,"past-perfect-progressive":Md,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",tp),e),"passive-past":e=>(e.replace("have","had",tp),e),"passive-present":e=>(e.replace("(is|are)","was",tp),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",tp),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Md,"auxiliary-future":e=>(e.replace("(is|are|am)","was",tp),e),"auxiliary-past":Md,"auxiliary-present":e=>(e.replace("(do|does)","did",tp),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",tp):(np.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Md,"want-infinitive":e=>(e.replace("(want|wants)","wanted",tp),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),np.simple(e,t),Rd(e),e)};var ap=function(e,t,n){return rp.hasOwnProperty(n)?((e=rp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const op={tags:!0},ip=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Kd(a)),!1===Jd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Ld(e)),o&&(e=e.replace(a,o,op)).not("#Particle").tag("PresentTense"),e},sp=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Kd(a)),!1===Jd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,op)).not("#Particle").tag("Gerund"),e},lp={infinitive:ip,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return ip(e,t);{let t=Wd(e).subject;if(Jd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,op)}return e},"simple-past":ip,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Ld(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else ip(e,t),e=e.remove("will");return e},"present-progressive":Md,"past-progressive":(e,t)=>{let n=Ld(e);return e.replace("(were|was)",n,op)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(ip(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Wd(e).subject;return Jd(e)||n.has("i")?((e=Ud(e,t)).remove("had"),e):(e.replace("had","has",op),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Md,"past-perfect-progressive":e=>e.replace("had","has",op),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Ld(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,op),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Md,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Md,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(sp(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=qd(e);return e.replace(t.auxiliary,n),e}return sp(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Md,"modal-infinitive":Md,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Kd(r)),a&&(e=e.replace(t.root,a,op))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),ip(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Jd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,op),e.remove("will"),e}};var up=function(e,t,n){return lp.hasOwnProperty(n)?((e=lp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const cp={tags:!0},hp=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Kd(r)),o&&(e=e.replace(r,o,cp)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},dp=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Kd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,cp),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},pp={infinitive:hp,"simple-present":hp,"simple-past":hp,"simple-future":Md,"present-progressive":dp,"past-progressive":dp,"future-progressive":Md,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Md,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Md,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Md,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Md,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Md,"modal-past":Md,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),hp(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var mp=function(e,t,n){return e.has("will")||e.has("going to")?e:pp.hasOwnProperty(n)?((e=pp[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const gp={tags:!0};var fp=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Kd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Ld(e)} ${s}`,e.replace(a,s,gp)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const vp={tags:!0},bp=function(e,t){let n=qd(e);return e.prepend(n+" not"),e},yp=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},wp=e=>e.has("(is|was|am|are|will|were|be)"),Pp={"simple-present":(e,t)=>!0===wp(e)?yp(e):(e=Ud(e,t),e=bp(e)),"simple-past":(e,t)=>!0===wp(e)?yp(e):((e=Ud(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===wp(e)?yp(e):bp(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",vp),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=bp(e)).replace("wants","want",vp)};var kp=function(e,t,n){if(e.has("#Negative"))return e;if(Pp.hasOwnProperty(n))return e=Pp[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===wp(e)?yp(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const Ap=(e,t)=>"number"==typeof t?e.eq(t):e;var jp=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return Ap(this,e).map(Nd)}json(e,t){let n=Ap(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Yd(t),n}),[]);return n}subjects(e){return Ap(this,e).map((e=>(Nd(e),Wd(e).subject)))}adverbs(e){return Ap(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return Ap(this,e).filter((e=>!0!==Wd(e).plural))}isPlural(e){return Ap(this,e).filter((e=>!0===Wd(e).plural))}isImperative(e){return Ap(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return ep(e,t,n.form)}))}toPresentTense(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return up(e,t,n.form)}))}toPastTense(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return ap(e,t,n.form)}))}toFutureTense(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return mp(e,t,n.form)}))}toGerund(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return fp(e,t,n.form)}))}conjugate(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:ep(e.clone(),t,n.form).text("normal"),PastTense:ap(e.clone(),t,n.form).text("normal"),PresentTense:up(e.clone(),t,n.form).text("normal"),FutureTense:mp(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return Ap(this,e).map((e=>{let t=Nd(e),n=Fd(e,t);return kp(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=wd(this);return t=Ap(t,e),new Verbs(this.document,t.pointer)}},xp={api:jp};return v.plugin(vc),v.plugin(Sc),v.plugin(Kc),v.plugin(lh),v.plugin(qh),v.plugin(_h),v.plugin(od),v.plugin(yd),v.plugin(xp),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.6.0";var v=f,b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},j=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},x=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?j(n):(j(n),j([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var T=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const C=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},D=e=>"[object Array]"===Object.prototype.toString.call(e),O=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=T(e),e)))}(d),n?(C(t.update([u]).firstTerm()),N(h,u,d,r)):(C(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this}};var $=z,H=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const F={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=H(this.document,i);return o=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};F.delete=F.remove;var S=F;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var M=J,W={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=W.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof W[e]?(a=a.sort(W[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var Q={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}},_={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,S,M,U,Q,_);var X=function(e){Object.assign(e.prototype,Z)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const me=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,pe=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(me);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(pe),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max","°","s","e"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},je={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},xe=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=xe(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&je.hasOwnProperty(l)&&(c=je[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]},Te=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Ce.test(l)){let e=l.replace(Ce,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Ge={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Ge,lib:Be,hooks:["lexicon"]},$e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const He=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const We={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};We.compile=We.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=Se(this,n,t);return a=a.settle(),a}},lib:We};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,_e=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=_e(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=_e(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=_e(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Xe={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Ye=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Ye(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Ye(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Xe,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,mt=/&&/,pt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},kt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=pt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){mt.test(e)?(n.choices=e.split(mt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const xt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var It=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(xt(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(xt(e,t)),n=n.concat(Nt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Tt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>Pt(e,t))),r=jt(r,n),r=It(r,n),r=Tt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ot=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),Ft=(e,t)=>-1!==e.pre.indexOf(t),St={hasQuote:e=>Vt.test(e.pre)||Bt.test(e.post),hasComma:e=>Ht(e,","),hasPeriod:e=>!0===Ht(e,".")&&!1===Ht(e,"..."),hasExclamation:e=>Ht(e,"!"),hasQuestionMark:e=>Ht(e,"?")||Ht(e,"¿"),hasEllipses:e=>Ht(e,"..")||Ht(e,"…")||Ft(e,"..")||Ft(e,"…"),hasSemicolon:e=>Ht(e,";"),hasColon:e=>Ht(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};St.hasQuotation=St.hasQuote;var Jt=St;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Gt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Jt[t.method]&&!0===Jt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Wt=Mt;const Lt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(qt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Wt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Wt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(qt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},_t=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Wt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Wt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Wt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?_t(e,r,t[e.r+1]):(e.t+=1,!0)},Xt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Wt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Wt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Yt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Xt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Yt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Lt(e,a)){if(e.negative){if(!Zt(a))return null}else if(!0!==Wt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!tn(a))return null}else if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else if(!Qt(a))return null}else if(!Rt(a))return null}else if(!Kt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},ln={api:ot,methods:{one:{termMethods:Jt,parseMatch:Ct,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(pn,""),fn.test(a)&&(a=" "),a=a.replace(gn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(pn,""),a="-"===a?" ":a.replace(mn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let kn=[],Pn=0;for(;Pn<64;)kn[Pn]=0|4294967296*Math.sin(++Pn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Pn=i=0;Pn>4]+kn[i]+~~o[Pn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const jn={text:!0,terms:!0};let xn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},En={text:e=>bn(e,{keepPunct:!0},!1),normal:e=>bn(e,Nn(wn.normal,{keepPunct:!0}),!1),implicit:e=>bn(e,Nn(wn.implicit,{keepPunct:!0}),!1),machine:e=>bn(e,xn,!1),root:e=>bn(e,Nn(xn,{form:"root"}),!1),hash:e=>An(bn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const In={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},jn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};In.data=In.json;var Tn=In,Cn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Dn="";var On={green:e=>""+e+Dn,red:e=>""+e+Dn,blue:e=>""+e+Dn,magenta:e=>""+e+Dn,cyan:e=>""+e+Dn,yellow:e=>""+e+Dn,black:e=>""+e+Dn,dim:e=>""+e+Dn,i:e=>""+e+Dn},Gn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(On.blue("\n ──────")),t.forEach((e=>{console.log(On.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=On.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=On.blue(" │ ")+On.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return On[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Vn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(On.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(On.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(On.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(On.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${On.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Cn(t),t):(!1!==e.tags&&(Gn(t),console.log("\n")),!0===e.chunks&&(Vn(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const $n=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Hn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Sn=Fn,Jn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},t,e)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Kn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},Rn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},Qn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>qn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Xn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>qn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},er=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},tr={union:function(e){e=Yn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)}};tr.and=tr.union,tr.intersection=function(e){e=Yn(e,this);let t=Xn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.not=function(e){e=Yn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.difference=tr.not,tr.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=er(t,this.document),this.toView(t)},tr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=_n(e,[t])})),e=er(e,this.document),this.update(e)};var nr=function(e){Object.assign(e.prototype,tr)},rr={methods:Qn,api:nr},ar=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const or=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ir=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(or(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(or(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=or(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},sr=function(e,t){e=ir(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},lr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},ur=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},cr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},hr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=lr(a,t.hooks);return o=ur(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),cr(o,e,a,n,r)},dr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===dr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},pr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ar,methods:{one:{buildNet:sr,bulkMatch:hr,bulkTagger:mr}}};const gr=/ /,fr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},vr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),gr.test(t))!function(e,t,n,r){let a=t.split(gr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),vr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var yr=br,wr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>kr({id:e}))),t}return[kr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},xr=e=>"[object Array]"===Object.prototype.toString.call(e),Nr=e=>(e=e||"").trim(),Er=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Pr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ar(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=kr({});return e.forEach((e=>{if((e=kr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(jr(t=e).forEach(kr),t);var t},Ir=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return jr(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Tr=function(e){let t=jr(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Cr={text:Ir,txt:Ir,array:Tr,flat:Tr},Dr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ir(e,!0)),null):Cr.hasOwnProperty(t)?Cr[t](e):e},Or=e=>{jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Gr=/\//;let Vr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Nr(e),!Gr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Vr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||kr({});return new Vr(t)}add(e,t={}){if(xr(e))return e.forEach((e=>this.add(Nr(e),t))),this;e=Nr(e);let n=kr({id:e,props:t});return this.json.children.push(n),new Vr(n)}remove(e){return e=Nr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return jr(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=jr(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return jr(this.json)}fillDown(){var e;return e=this.json,jr(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else xr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Or(this.json);let e=jr(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Or(this.json),Dr(this.json,e)}debug(){return Or(this.json),Dr(this.json,"debug"),this}};const Br=function(e){let t=Er(e);return new Vr(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const $r=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Hr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:$r(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Fr=function(e){return e?"string"==typeof e?[e]:e:[]};var Sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Fr(e[t].children),e[t].not=Fr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Jr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Sr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Hr(n)},Mr={one:{setTag:yr,unTag:wr,addTags:Jr}};const Wr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Lr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Wr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Wr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var qr=Lr,Kr=function(e){Object.assign(e.prototype,qr)},Ur={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Rr=new Set(["Auxiliary","Possessive"]);var Qr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Rr.has(e)||!t.hasOwnProperty(n))return 1;if(Rr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},_r={model:{one:{tagSet:{}}},compute:{tagRank:Qr},methods:Mr,api:Kr,lib:Ur};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Xr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Yr=/((?:\r?\n|\r)+)/;var ea=function(e){let t=[],n=e.split(Yr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const oa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ia=RegExp("("+Object.keys(oa).join("|")+")","g"),sa=RegExp("("+Object.values(oa).join("|")+")","g"),la=function(e){if(!e)return!1;let t=e.match(sa);return null!==t&&1===t.length};var ua=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var xa=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Aa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wa(n),n=ba(n),n=n.filter((e=>e)),n};let Na=new RegExp(`[${["#","@","_","+","."].join("")}]+$`,""),Ea=new RegExp(`^[${["%","_","°"].join("")}]+`,"");const Ia=/[\p{Punctuation}\s]+$/u,Ta=/^[\p{Punctuation}\s]+/u,Ca=/['’]/,Da=/^[a-z]\.([a-z]\.)+/i,Oa=/^'[0-9]{2}/,Ga=/^-[0-9]/;var Va=function(e){let t=e,n="",r="";return e=e.replace(Ta,(t=>{let r=t.match(Na);return r?(n=t.replace(Na,""),r):"'"===n&&Oa.test(e)?(n="",t):"-"===t&&Ga.test(e)?t:(n=t,"")})),e=e.replace(Ia,(a=>{let o=a.match(Ea);return o?(r=a.replace(Ea,""),o):Ca.test(a)&&/[sn]['’]$/.test(t)&&!1===Ca.test(n)?(r=r.replace(Ca,""),"'"):!0===Da.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}},Ba=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},za=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const $a=/([A-Z]\.)+[A-Z]?,?$/,Ha=/^[A-Z]\.,?$/,Fa=/[A-Z]{2,}('s|,)?$/,Sa=/([a-z]\.)+[a-z]\.?$/;var Ja=function(e){return function(e){return!0===$a.test(e)||!0===Sa.test(e)||!0===Ha.test(e)||!0===Fa.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Ma=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=za(r),r=n(r,t),r=Ja(r),e.normal=r},Wa=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Ma(e,t)})),n})),e};const La=/[ .][A-Z]\.? *$/i,qa=/(?:\u2026|\.{2,}) *$/,Ka=/\p{L}/u,Ua=/^[A-Z]\. $/;var Ra=function(e,t){if(!1===Ka.test(e))return!1;if(!0===La.test(e))return!1;if(3===e.length&&Ua.test(e))return!1;if(!0===qa.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Qa={one:{killUnicode:Ba,tokenize:{splitSentences:ga,isSentence:Ra,splitTerms:xa,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Va(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Wa}}},_a={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Za={},Xa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Za[t]=!0,Xa[t]="Abbreviation",void 0!==e[1]&&(Xa[t]=[Xa[t],e[1]])}))}));var Ya=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let eo={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},to={};Object.keys(eo).forEach((function(e){eo[e].split("").forEach((function(t){to[t]=e}))}));const no=/\//,ro=/[a-z]\.[a-z]/i,ao=/[0-9]/;var oo=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),no.test(n)&&!ro.test(n)&&!ao.test(n)){let t=n.split(no);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const io=/^\p{Letter}+-\p{Letter}+$/u;var so=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),io.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},lo=function(e){let t=e.docs,n={};for(let e=0;emo(e,oo),machine:e=>mo(e,so),normal:e=>mo(e,Ma),freq:lo,offset:uo,index:co,wordCount:ho},methods:Qa,model:{one:{aliases:_a,abbreviations:Za,prefixes:Ya,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Xa,unicode:to}},hooks:["alias","machine","index","id"]},go={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const fo=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var vo=function(e){e.prototype.autoFill=fo},bo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const yo={safe:!0,min:3};var wo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},yo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=bo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},ko={model:{one:{typeahead:{}}},api:vo,lib:wo,compute:go,hooks:["typeahead"]};v.extend(ee),v.extend(Ln),v.extend(ln),v.extend(rr),v.extend(_r),v.plugin(Ie),v.extend(po),v.plugin(k),v.extend(Le),v.extend(ko),v.extend(ze),v.extend(pr);var Po={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Ao={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦unless",Conjunction:"true¦aXbTcuz,evenRhowPiHjust00lest,noEoCp8supposing,t5wh0yet;at,e2il1o0;evOse;e,st;nevMre0thM; if,vL;h0o;erefOo0;!uU;lus,rovide0; 1d0;! 0;th9;r0therwiJ;! not; mattBr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mFcaCorder t0;h0o;at;! 0;only,t0w0;hen;!ev0;er;! 0;if,t8;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;here nLsk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBeAi8o2u0;h,mph,rra0zzB;h,y;ly1o0;r5y8;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh,ye;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;e1ich,o0y;!m;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6J;G:6C;a8Lb74c66d61e60f4Yg4Hh3Wiron0j3Sk3Nl34m2Qn2Oo2Mp23quietEr1Os0HtXuVvacuum 1wKyammerAzH;ero Dip IonH;e0k0;by,up;aOeJhIiHor7Writ38;mp0n35pe0r8s8;eel Dip 8Q;aJiHn2T;gh Hrd0;in,up;n Dr H;d2in,oF;it 6Hk8lk Irm 0Zsh Ht7Av5F;aw3d2o5up;aw3in,o85;rgeAsH;e 1herG;aWeUhSiOoNrJuHypM;ckGrn H;d2in,oFup;aIiHot0y 2P;ckleEp 8B;ckEdH;e 0O;neEp 30s4Z;ck JdIe Hghte5Yme0p o0Jre0;aw3ba4d2in,up;e 6Iy 1;by,oC;ink Hrow 6V;ba4ov6up;aHe 6Gll5G;m 1r 53;ckAke Ilk H;ov6shit,u5H;aHba4d2in,oFup;ba4ft6p5Mw3;a0Mc0Le0Fh0Bi08l04m03n02o01pWquar4XtNuLwH;earJiH;ngItch H;aw3ba4o7P; by;ck Hit 1m 1ss0;in,o7Cup;aNe11iMoKrIuH;c37d2P;aigh23iH;ke 6Xn3L;p Hrm25;by,in,oC;n32r 1tc44;c31mp0nd Hr7Gve9y 1;ba4d2up;ar2ZeKiJlIrHurA;ingAuc8;a3Rit 5S;l18n 1;e6All0;ber 1rt0und like;ap 56ow D;ash 5Xoke0;eep IiHow 7;c1Mp 1;in,oH;ff,v6;de13gn IngHt 5Sz8; al5Nle0;in,o5up;aJoHu5B;ot Hut0w 6V;aw3ba4f3SoC;c2HdeGk5Qve9;e Lll1Hnd Krv8tH; Htl4W;d2f5Cin,o5upH;!on;aw3ba4d2in,o2Nup;o6Eto;al5Jout0rap5J;il9v8;aUeRiQoMuH;b 5Cle0n Hstl8;aJba4d2inIoHt3Lu0Y;ut,v6;!to;c2HrBw3;ll Jot IuH;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Jp9;aHel9inGnt0;c5Sd H;o3Bup;c1Ut0;aVeUiSlQoOrLsyc2RuH;ll Jt H;aHba4d2in,oFt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess IiKoH;p 1;ah1Zon;iHp 5Xr4DurEwer 5X;nt0;ay4TuH;gGmp 7;ck Hg0leAn 7p4Q;oFup;el 50ncilG;c4Iir 2Xn0ss JtIy H;ba4oC; d2c2E;aw3ba4in,oF;pHw4D;e4Ct D;arrowEerd0oH;d9teE;aReOiNoJuH;ddl8lH;l 3X;c13nkeyJp 7uth9ve H;aHd2in,o5up;l42w3; wi3Z;ss0x 1;asur8lIss H;a1Oup;t 7;ke In 7rHs1Xx0;k 7ry9;do,o4Wup;aXeSiNoHuck0;aLc3Vg KoHse0;k Hse3T;aft6ba4d2forw2Sin4Jov6uH;nd6p;in,oF;d 7;e 05ghtKnJsIvH;e 3F;ten 4Z;e 1k 1; 1e3K;ave Jt IvelH; o4I;d2go,in,o5up;in,oH;pen,ut;c8p 1sh HtchAugh9y26;in44o5;eIick9nock H;d2o4Bup;eHyG;l 2Zp H;aw3ba4d2fZin,oFto,up;aJoIuH;ic8mpG;ke3CtE;c3Lzz 1;aWeRiOoLuH;nIrrHsh 7;y 1;kerEt H;arBd2;lHneGrse35;d He 1;ba4d2fast,o04up;de It H;ba4on,up;aw3o5;aHlp0;d Jl 2Hr Ht 1;fHof;rom;in,oWu1K;cKm 1nIve Hz2C;it,to;d Hg 2NkerK;d2in,o5;k 1;aUeOive Nloss 28oJrIunH; f0O;in3Oow 2I; Hof 27;aIb1Fit,oHrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oFrise,up,w3;ar 7ek0t H;aIb1Ad2in,oHrBup;ff,n,ut,v6;cIhHl25rBt,w3;ead;ross;d aInH;g 1;bo5;a0Be04iVlRoNrJuH;ck He2A;arBup;eIighten HownAy 1;aw3oC;eHshe1W; 1z8;lJol H;aHwi1P;bo5rB;d 7low 1;aIeHip0;sh0;g 7ke0mHrHttenE;e 30;gOlMnKrIsHzzle0;h 2Y;e Hm 1;aw3ba4up;d0isH;h 1;e Hl 1I;aw3fMin,o5;ht ba4ure0;eMnIsH;s 1;cJd H;fHoC;or;e D;dZl 1;cLll Hrm0t15;ap08bJd2in,oItH;hrough;ff,ut,v6;a4ehi29;e H;d2oCup;a0Ndge0nd 0Ry8;oKrH;aIess 7op H;aw3bXin,o1W;gAwA; 0Kubl10;a01hYleaXoKrHut 18;ackAeep Hoss D;by,d2in,oHup;n,ut;me KoIuntH; o1Y;k 7l H;d2oC;aNbMforKin,oJtIuH;nd6;ogeth6;n,ut,v6;th,wH;ard;a4y;pHrBw3;art;n 7;eHipG;ck Der H;on,up;lPncel0rLsJtch IveG; in;o1Gup;h Dt H;doubt,oC;ry IvH;e 04;aw3oF;ff,n,ut;l ImE; d2;aHba4d2o17up;rBw3;a0Ne0Fl08oZrMuH;bblJckl00il06lk 7ndl00rHst WtIy 17zz9;n 0BsH;t D;e H;ov6;anSeaQiIush H;oCup;ghMng H;aJba4d2fHin,o5up;orH;th;bo5lHrBw3;ong;teH;n 1;k H;d2in,o5up;ch0;arOg 7iMn8oKssJttlIunce Hx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aMeed0oHurt0;cJw H;aw3ba4d2o5up;ck;k H;in,oY;ck0nk0st9; oMaKef 1nd H;d2ov6up;er;up;r0t H;d2in,oRup;ff,nH;to;ck Nil0nJrgIsH;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oHup;ff,ut;ay;cQdMsk Juction9; oC;ff;arBo5;ouH;nd;d H;d2oHup;ff,n;own;t H;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4x;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ea6Dit2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Km1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Com2C;f0i4Wt0Dy9;! arou4F;arn4GeAo9;cabula41l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aHeGhi8iEoDrBuAv9;! show;m2Jn5rntIto15;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etD;am,mp3A;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n28st4Q;ab2Q;bAnri1Bper bowl,r9;f0roga2;st3Etot1;aCepBipe3Ro1CrAudent9;! lo1L;ang0i8;fa1Gmo1G;ff0t31;loi42meo17;elet14i9;er,ll,rm3M;ack,or49;ab0Vcurity gu2E;e4ho9;l30ol;la33ndwi0J;av0XeChetor5iAo9;de4om;te,v9;erb0O;bCcBf9publ5r0Pspi2;er9orm0;e4r1;it1ord label;a2u42;estion mark,ot29;aMeKhJiHlFort1rAu9yram1D;ddi8ppy,rpo0K;eCie3Io9;bl3Vs9;pe6t9;a2itu2;diction,mi0Froga7ss relea0F;a9ebisci2;q28te,y0;cn5e9g;!r;armaci39otocoH;dest1ncil,r9t1;cen3Hsp3I;nAr2Ste9;!nt;el2Sop3;bj3EcApia2rde1thers,ve9wn0;n,rview;cu9e0G;pi0;aAit25ot9umb0;a26hi8;n2Arra7;aFeEiDoAu9é0H;m0Tr1;mAnopo3pRrni8sq1Qt9u14;h0i36;!my;li0Xn0A;d5nu,t1;mm1nAte9yf3;ri1;!d11;aurea2iBu9;ddi2n9;ch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦-,aMbJcIdHexcept,fFinEmid,notwithstandiSoCpTqua,sBt7u4v2w0;/o,hereOith0;! whEin,oS;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that,uch D;f0n1ut;!f;!to;or,r0;om;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2T;1:20;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt8v6w2;a4i3oo2;d,l;ldlife,ne;rm7t25;ernacul1Ui2;neg1Tol0Otae;eAh8oothpas1Nr3un2yranny;a,gst1V;aff29ea18o3ue nor2;th;oZu2;ble2se1Ft;!shoot1X;er2und1V;e,mod2B;a,nnis;aBcene0IeAh9il8ki7o6p5t3u2weepstak1;g1Hnshi11;ati01e2;am,el;ace23eci1;ap,cc1N;n,ttl1;k,v1L;eep,ingl1;na14ri1;d0Nfe1Vl2nd,t0B;m1Kt;a5e3ic2;e,ke0V;c2laxa0Ssearch;ogni0Rrea0R;bi1in;aVe6hys0last1Ko4re2;amble,mis1s2ten1K;en1Jsu0C;l2rk;it0yB;a1Otr06;bstetr0vercrowd16xyg0Z;a2ews;il polWtional securi1G;a9e7o4u2;m2s1A;ps;n2o19;ey,o2;gamy;a2chan0rchandi16tallurgy;sl1t;chine2themat0; learn0Ury;aught0Se5i4ogi3u2;ck,g0W;c,st0;ce,ghtn0Qngui19teraRv0P;ath0OisuRss;ara08indergart0Hnowled0T;azz,ewelC;ce,gnor7mp4n2;formaYter2;net,sta04;a2ort4;ti2;en0Y;an0X;a5eHisto4o2;ckey,mework,ne2rserad6spitali0Q;s0Py;ry;ir,libXppiFs2;h2te;ish;ene5l4o3r2um,ymna0R;aCeed;lf,re;utYyce0C; 2t0;edit03po2;ol;aLicElour,o4urni2;tu2;re;od,rgive2uriXwl;ne2;ss;conom0duca8lectr7n5quip6th0very3xper2;ti03;body,o2thT;ne;joy2tertain2;ment;ici01on0;tiQ;e8i5o3raugh2ynasZ;ts;pe,wnstai2;rs;abet1s2;honTrepu2;te;b2miP;ut;aAelci9h6iv0l4o2urrency;al,ld w2nfusiFral,ttFusco8;ar;ass0oth1;es;aos,e3ick2;en;eGw7;us;d,rI;a7eef,i5lood,read,u2;nt3tt2;er;ing;lliarDs2;on;g2ss;ga2;ge;cDdviCeroAir9m5ni4ppeal court,rithmet3spi2thlet0;rin;ic;se;en4n2;es2;ty;ds;craft;b0d2naut0;ynam0;ce;id,ou2;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:95;1:80;2:7X;3:8W;4:8Q;5:6E;6:81;7:86;8:8R;9:8D;A:5W;a7Mb77c6Pd67e5Qf58g50h4Pi3Rjuni44k3Pl3Fm33n2To2Ep1Wquart63r1Ls0Rt0JuMvIwBye1J;ast54eFholeEiDoB;man5oBrthwhi6u0F;d7Hzy;despr8Fs6E;!sa6;ather13eBll o5Jste2Q;!k5;aDeCiBola5D;b95ce versa,gi2Q;ng4Vrsa5B;ca0lu54;lt06nHpDrCsBttermo8X;ef75u4;b67ge0; Db2ApCsBti7Y;ca6et,ide dO;er,i4L;f3Tto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4E;e6Zi2FoDpCuB;pervis1spect2;e0ok6X;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6O;mploy1nd2xpect1;eBue;cid1rB;!a6RcovAly2sDwB;aBei7C;tAy;iz1to43;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Gra;aGeDhough59ip 1PoCrB;anspa6Yi3;gethAle83rp9;ena6FmpCrB;r3Ftia6P;e8o6N;leBst3Q;nt1;a03c01eZhYiWkiVmug,nobb3ZoPpMqueam3ZtGuBymb70;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb50;eq73tanda7P;atu69eFi0UrByl3T;aBin4D;ightBy; fBfB;or5X;adfa7Hri6;arCeBirit1lend9ot on;c2Ye34;k5se; caGlub6mbAphisticFrEuCvB;erei5Iiet;ndBth0X;pro6F;d9ry;at1;ll1;g1WnB;ce57g6;am30eA;at1co1Hem5lf3AnBre7;so5V;ath2holBient2K;ar5;cr1me,tisfac5M;aJeEheumato9iCoB;bu6Xtt58y4;ghtBv4;-w2f54;bYcEdu6OlDnown1sBtard1;is3DoB;lu3na0;e1Buc3B;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6NrCuB;bl5Vnjabi;eGiEoB;!b2QfCmi3BpBv4Vxi1Z;er,ort60;a7u63;maBor,sti7va3;!ry;ci60exist2mBpa9;a1Oi63;c9id;ac28rBti3;fe67ma32ti32v5V;i28rCsB;s5Qt;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni58seas,t,wB;ei57rou57;ll;do0Wer;d2Ug1M; bBbBgo2li7;oa60;fashion1school;!ay; gua5XbBli7;eat;eCsB;ce7er0Co0R;dia0se;aJeIiHoBuanc1;nDrthBt1V;!eB;rn;chaCdescri5Lprof29sB;top;la0;ght5;arby,cessa4Bighbor5xt;k1usiat2;aIeHinGoCuB;d14ltip6;deDl13nBot,st;ochroBth5;me;rn,st;dblRi;nac2re;cDgenta,in,j03keshift,mmCnBscu4E;da3Uy;ali2Ioth;ab37ho;aJeGiEoCuB;mber2sh;ngBut19;stand2term;ghtwei44teraB;l,te;ft-w2gBssAth4;al,eBi0B;nda3P;ngu9ps1st;aput,ind5nB;ow2;gno4Xll03mVnDpso 25rB;a3releB;va0; QaPcoMdJe2AfIhibi3CiWnHoGsDtBvalu0V;a4KeB;n48rdep1U;a7igColBuboD;ub6ve0;nifica0;rdi41;a3er;eriCluenOreq3X;eCiEoB;or;fini3p1Ltermi3W;mpCnside8rB;re48;le3;ccu8deq3Xppr36;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe40;ti4;aCeBi0T;d2Yn3M;tu22;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3I;me ma2BnCrrBs04ur5;if30;e3Qo2I;ghfalut1LspB;an2X;lUpf1W;lCnBrdZtI;dy;f,low1;aiHener2Siga25lob4oGraDuB;ilBng ho;ty;cCtB;ef1Ois;ef1N;od;nf1L;aPeMinLlJoErB;aCeBoz1L;q2Ptf1I;gi6nt2H;olErB; keeps,eBge0FmAtu2Owa38;go2i1BseeB;ab6;ish;ag37uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Hmiliar,r Bux;oBreach2;ff;aOfficie0lMmJnHqu4re2Pthere4veryday,xB;a2Oem2RplEquisi3traDuB;be2WlB;ta0;!va1G;icB;it; Bti0O;rou3sui3;erCiB;ne0;ge0;dBe18;er5;gAsB;t,ygo2;er;aQeHiCoBrea15ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0A;a0ni3;as1;an;facto;i5ngeroX;ly;arRePivil,oErCuB;nn2stoma0M;aBu0Iystal0Y;v02z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic09ry;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efM;aMeFizarEliKoCrBuck nak1;and new,isk,on1F;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0ZrrB;en;!wards; priori,b0Qc0Nd0Gf0Ag08h07l00mp6ntiquXpRrLsleep,ttracti09uHvEwB;aCkB;wa0X;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntX;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohFiJkaDl,oCriBterP;ght;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt","Adj|Past":"true¦0:2V;1:2M;2:2P;a2Eb29c1Rd19e13f0Ygift0h0Vi0Oj0Nknown,l0Km0Fn0Do0Ap03qua02rTsDt9u7v5w3;arp0ea3or5;kHth2O;a3e0U;ri0;ni3pd1s0;fi0t0;ar5hreatCr3wi2N;a3ou18;ck0in0pp0;get0ni1L;aGcaFeEhDimCm00oak0pAt6u3;bsid24gge2Is3;pe3ta1P;ct0nd0;at0e5r3uU;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al1Wfi0;pHul1;ar0ut;al0c1Gle2t1O;r0tt22;t3ut0;is1Hur1;aAe3;c7duc0f1Ag6l1new0qu5s3;pe2t3;or0ri2;e1Zir0;ist1Uul1;eiv0o3;mme09rd0v1S;lli0ti18;li17;arallel0l7o6r3ump0;e4o3;ce0Ilo0Hnou1Qpos0te2;fe0Koc8pY;i1Dli0Q;a3e16;nn0;c4rgan18verlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3;di0Tt0F;as0Olt0;n3rk0;ag0ufact0M;eft,i4o3;ad0st;cens0mit0st0;agg0us0L;mp8n3sol1;br0debt0f6t3volv0;e3ox0D;gr1n3re15;d0si0H;e2oW;li0oLrov0;amm0Xe1o3;ok0r3;ri0C;aNe6i5lavo07ocus0r3;a3i0;ct05g0Jm0;niWx0;ar0;duc1mbarraKn7quipp0stabliUx3;p3te5;a4e3;ct0rie0P;nd0;ha0NsX;aIeAi3;gniZminiNre2s3;a7c5grun02t3;o3reBurb0;rt0;iplQou3;nt0rD;bl0;cenTdMf7lay0pre6ra5t3velop0;a3ermM;il0;ng0;ss0;e4o3;rm0;rr0;m3t0;ag0;alcul1eGharg0lFo8r5u3;lt3stomQ;iv1;a4owd0u3;sh0;ck0mp0;d0lo8m5n3ok0vV;centr1s3troll0;idTolid1;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralA;a6i5o3roken,urn0;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k36l2Xm2Rnou3Uo2Mp25qu24r1As08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Gc0Fe0Dh09i07l05m04n03o01pWquVtOuJwG;all6YeeHiG;m,ng;p,t5;bIccumb,ffHggeBmm8Zp2DrG;mouFvi2;er,i3;li7Wmer9siGveD;de,st;aKe7PiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Pi8;awn,eJiIlHoGri68;il,of;ay,it;ll,t;ak,nd;lGot6Iw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5CoHriGun;nk,v5O;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Hv0w;!k,m;aven9ul7V;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2YsLtJvG;amp,eHiGo2N;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1TrG;a5QiCuctu7;de,gn,st;el,hra1lGreseF;a3e63;d0ew,o02;a5Le2To2;a6eFiGoad,y;e2nq3Dve;mbur1nf2M;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Dla3GoGyc4;gni54nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Kit,o6;aUerSiRlumm0SoQrIuG;b3Hke,ni8rGt;poDs6R;eKoG;cId,fe31hibEnoHpo1sp0truAvG;e,iAo4P;un3;la32u7;a5Bc1LdHf0ocSsup0CvG;a5GeF;etermi3ZiC;a58rt4Q;er3npoiF;cei2fo39i8mea6plex,sGvaA;eve7iB;mp0n11rGtrol,ve,y;a5Mt5I;bser2cJpIutHverGwe;lap,s13tu64u1;gr4Jnu1Upa3;era6i3Ppo1;cupy;aKe06iHoGultiply;leBu5Z;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u33;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng1Zu18;eep,nG;e3Kow;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const jo=36,xo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",No=xo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Eo=function(e){if(void 0!==No[e])return No[e];let t=0,n=1,r=jo,a=1;for(;n=0;n--,a*=jo){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},Io=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Co(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Do(Ao[e]);Bo.test(e)?Object.keys(t).forEach((t=>{if($o[t]=e,"Noun|Verb"===e){let e=Vo(t,Ho);$o[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{zo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","zo[e]="Emoticon")),delete zo[""],delete zo.null,delete zo[" "];const Fo="Adjective";var So={beforeTags:{Determiner:Fo,Possessive:Fo},afterTags:{Adjective:Fo},beforeWords:{seem:Fo,seemed:Fo,seems:Fo,feel:Fo,feels:Fo,felt:Fo,appear:Fo,appears:Fo,appeared:Fo,also:Fo,over:Fo,under:Fo,too:Fo,it:Fo,but:Fo,still:Fo,really:Fo,quite:Fo,well:Fo,very:Fo,deeply:Fo,profoundly:Fo,extremely:Fo,so:Fo,badly:Fo,mostly:Fo,totally:Fo,awfully:Fo,rather:Fo,nothing:Fo,something:Fo,anything:Fo,not:Fo,me:Fo,is:Fo},afterWords:{too:Fo,also:Fo,or:Fo}};const Jo="Gerund";var Mo={beforeTags:{Adverb:Jo,Preposition:Jo,Conjunction:Jo},afterTags:{Adverb:Jo,Possessive:Jo,Person:Jo,Pronoun:Jo,Determiner:Jo,Copula:Jo,Preposition:Jo,Conjunction:Jo,Comparative:Jo},beforeWords:{been:Jo,keep:Jo,continue:Jo,stop:Jo,am:Jo,be:Jo,me:Jo,began:Jo,start:Jo,starts:Jo,started:Jo,stops:Jo,stopped:Jo,help:Jo,helps:Jo,avoid:Jo,avoids:Jo,love:Jo,loves:Jo,loved:Jo,hate:Jo,hates:Jo,hated:Jo},afterWords:{you:Jo,me:Jo,her:Jo,him:Jo,them:Jo,their:Jo,it:Jo,this:Jo,there:Jo,on:Jo,about:Jo,for:Jo}},Wo={beforeTags:Object.assign({},So.beforeTags,Mo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},So.afterTags,Mo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},So.beforeWords,Mo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},So.afterWords,Mo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Lo="Singular";var qo={beforeTags:{Determiner:Lo,Possessive:Lo,Acronym:Lo,Noun:Lo,Adjective:Lo,PresentTense:Lo,Gerund:Lo,PastTense:Lo,Infinitive:Lo,Date:Lo},afterTags:{Value:Lo,Modal:Lo,Copula:Lo,PresentTense:Lo,PastTense:Lo,Demonym:Lo},beforeWords:{the:Lo,with:Lo,without:Lo,of:Lo,for:Lo,any:Lo,all:Lo,on:Lo,cut:Lo,cuts:Lo,save:Lo,saved:Lo,saves:Lo,make:Lo,makes:Lo,made:Lo,minus:Lo,plus:Lo,than:Lo,another:Lo,versus:Lo,neither:Lo,favorite:Lo,best:Lo,daily:Lo,weekly:Lo,linear:Lo,binary:Lo,mobile:Lo,lexical:Lo,technical:Lo,computer:Lo,scientific:Lo,formal:Lo},afterWords:{of:Lo,system:Lo,aid:Lo,method:Lo,utility:Lo,tool:Lo,reform:Lo,therapy:Lo,philosophy:Lo,room:Lo,authority:Lo,says:Lo,said:Lo,wants:Lo,wanted:Lo,is:Lo}};const Ko={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Uo={beforeTags:Object.assign({},So.beforeTags,qo.beforeTags,Ko.beforeTags),afterTags:Object.assign({},So.afterTags,qo.afterTags),beforeWords:Object.assign({},So.beforeWords,qo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,qo.afterWords)};let Ro="PastTense";const Qo={beforeTags:{Adverb:Ro,Pronoun:Ro,ProperNoun:Ro,Auxiliary:Ro,Noun:Ro},afterTags:{Possessive:Ro,Pronoun:Ro,Determiner:Ro,Adverb:Ro,Comparative:Ro,Date:Ro},beforeWords:{be:Ro,who:Ro,get:"Adjective",had:Ro,has:Ro,have:Ro,been:Ro,it:Ro,as:Ro,for:"Adjective"},afterWords:{by:Ro,back:Ro,out:Ro,in:Ro,up:Ro,down:Ro,for:Ro,the:Ro,with:Ro,as:Ro,on:Ro,at:Ro}};var _o={beforeTags:Object.assign({},So.beforeTags,Qo.beforeTags),afterTags:Object.assign({},So.afterTags,Qo.afterTags),beforeWords:Object.assign({},So.beforeWords,Qo.beforeWords),afterWords:Object.assign({},So.afterWords,Qo.afterWords)};const Zo="Infinitive";var Xo={beforeTags:{Modal:Zo,Adverb:Zo,Negative:Zo,Plural:Zo},afterTags:{Determiner:Zo,Adverb:Zo,Possessive:Zo,Preposition:Zo},beforeWords:{i:Zo,we:Zo,you:Zo,they:Zo,to:Zo,please:Zo,will:Zo,have:Zo,had:Zo,would:Zo,could:Zo,should:Zo,do:Zo,did:Zo,does:Zo,can:Zo,must:Zo,us:Zo,me:Zo,he:Zo,she:Zo,it:Zo,being:Zo},afterWords:{the:Zo,me:Zo,you:Zo,him:Zo,her:Zo,them:Zo,it:Zo,a:Zo,an:Zo,up:Zo,down:Zo,by:Zo,out:Zo,off:Zo,under:Zo,when:Zo,all:Zo,to:Zo,because:Zo,although:Zo,before:Zo,how:Zo,otherwise:Zo,together:Zo,though:Zo,yet:Zo}};const Yo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ei={beforeTags:Object.assign({},So.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},So.afterTags,Xo.afterTags,Yo.afterTags),beforeWords:Object.assign({},So.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},So.afterWords,Xo.afterWords,{to:void 0})};const ti={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ni={},ri={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ai={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var oi={beforeTags:Object.assign({},Mo.beforeTags,qo.beforeTags,ti),afterTags:Object.assign({},Mo.afterTags,qo.afterTags,ni),beforeWords:Object.assign({},Mo.beforeWords,qo.beforeWords,ri),afterWords:Object.assign({},Mo.afterWords,qo.afterWords,ai)},ii={beforeTags:Object.assign({},Xo.beforeTags,qo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xo.afterTags,qo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xo.beforeWords,qo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xo.afterWords,qo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const si="Person";var li={beforeTags:{Honorific:si,Person:si,Preposition:si},afterTags:{Person:si,ProperNoun:si,Verb:si},ownTags:{ProperNoun:si},beforeWords:{hi:si,hey:si,yo:si,dear:si,hello:si},afterWords:{said:si,says:si,told:si,tells:si,feels:si,felt:si,seems:si,thinks:si,thought:si,spends:si,spendt:si,plays:si,played:si,sing:si,sang:si,learn:si,learned:si,wants:si,wanted:si}};const ui="Month",ci={beforeTags:{Date:ui,Value:ui},afterTags:{Date:ui,Value:ui},beforeWords:{by:ui,in:ui,on:ui,during:ui,after:ui,before:ui,between:ui,until:ui,til:ui,sometime:ui,of:ui,this:ui,next:ui,last:ui,previous:ui,following:ui},afterWords:{sometime:ui,in:ui,of:ui,until:ui,the:ui}};var hi={beforeTags:Object.assign({},li.beforeTags,ci.beforeTags),afterTags:Object.assign({},li.afterTags,ci.afterTags),beforeWords:Object.assign({},li.beforeWords,ci.beforeWords),afterWords:Object.assign({},li.afterWords,ci.afterWords)};const di="Place",mi={beforeTags:{Place:di},afterTags:{Place:di,Abbreviation:di},beforeWords:{in:di,by:di,near:di,from:di,to:di},afterWords:{in:di,by:di,near:di,from:di,to:di,government:di,council:di,region:di,city:di}};let pi="Unit";const gi="Honorific";let fi={first:gi,general:gi,royal:gi,vice:gi,rear:gi,major:gi};const vi={"Adj|Gerund":Wo,"Adj|Noun":Uo,"Adj|Past":_o,"Adj|Present":ei,"Noun|Verb":ii,"Noun|Gerund":oi,"Person|Noun":{beforeTags:Object.assign({},qo.beforeTags,li.beforeTags),afterTags:Object.assign({},qo.afterTags,li.afterTags),beforeWords:Object.assign({},qo.beforeWords,li.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},qo.afterWords,li.afterWords)},"Person|Date":hi,"Person|Verb":{beforeTags:Object.assign({},li.beforeTags,Xo.beforeTags),afterTags:Object.assign({},li.afterTags,Xo.afterTags),beforeWords:Object.assign({},li.beforeWords,Xo.beforeWords),afterWords:Object.assign({},li.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},mi.beforeTags,li.beforeTags),afterTags:Object.assign({},mi.afterTags,li.afterTags),beforeWords:Object.assign({},mi.beforeWords,li.beforeWords),afterWords:Object.assign({},mi.afterWords,li.afterWords)},"Unit|Noun":{beforeTags:{Value:pi},afterTags:{},beforeWords:{per:pi,every:pi,each:pi,square:pi,cubic:pi,sq:pi,metric:pi},afterWords:{per:pi,squared:pi,cubed:pi,long:pi}},"Honorific|Noun":{beforeTags:{Honorific:gi,ProperNoun:gi,Ordinal:gi},afterTags:{Person:gi,ProperNoun:gi},beforeWords:Object.assign({},fi,{honorable:gi,honourable:gi,worship:gi,excellency:gi,majesty:gi,right:gi}),afterWords:fi}},bi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};vi["Plural|Verb"]={beforeWords:bi(vi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:bi(vi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:bi(vi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:bi(vi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yi=vi;const wi="Adjective",ki="Infinitive",Pi="PresentTense",Ai="Singular",ji="PastTense",xi="Adverb",Ni="Plural",Ei="Actor",Ii="Verb",Ti="Noun",Ci="LastName",Di="Modal",Oi="Participle";var Gi=[null,null,{ea:Ai,ia:Ti,ic:wi,ly:xi,"'n":Ii,"'t":Ii},{oed:ji,ued:ji,xed:ji," so":xi,"'ll":Di,"'re":"Copula",azy:wi,eer:Ti,end:Ii,ped:ji,ffy:wi,ify:ki,ing:"Gerund",ize:ki,ibe:ki,lar:wi,mum:wi,nes:Pi,nny:wi,ous:wi,que:wi,rol:Ai,sis:Ai,ogy:Ai,oid:Ai,ian:Ai,zes:Pi,eld:ji,ken:Oi,ven:Oi,ten:Oi,ect:ki,ict:ki,ign:ki,ful:wi,bal:wi},{amed:ji,aped:ji,ched:ji,lked:ji,rked:ji,reed:ji,nded:ji,mned:wi,cted:ji,dged:ji,ield:Ai,akis:Ci,cede:ki,chuk:Ci,czyk:Ci,ects:Pi,ends:Ii,enko:Ci,ette:Ai,wner:Ai,fies:Pi,fore:xi,gate:ki,gone:wi,ices:Ni,ints:Ni,ruct:ki,ines:Ni,ions:Ni,less:wi,llen:wi,made:wi,nsen:Ci,oses:Pi,ould:Di,some:wi,sson:Ci,tion:Ai,tage:Ti,ique:Ai,tive:wi,tors:Ti,vice:Ai,lier:Ai,fier:Ai,wned:ji,gent:Ai,tist:Ai,pist:Ai,rist:Ai,mist:Ai,yist:Ai,vist:Ai,lite:Ai,site:Ai,rite:Ai,mite:Ai,bite:Ai,mate:Ai,date:Ai,ndal:Ai,vent:Ai,uist:Ai,gist:Ai,note:Ai,cide:Ai,wide:wi,vide:ki,ract:ki,duce:ki,pose:ki,eive:ki,lyze:ki,lyse:ki,iant:wi,nary:wi},{elist:Ai,holic:Ai,phite:Ai,tized:ji,urned:ji,eased:ji,ances:Ni,bound:wi,ettes:Ni,fully:xi,ishes:Pi,ities:Ni,marek:Ci,nssen:Ci,ology:Ti,osome:Ai,tment:Ai,ports:Ni,rough:wi,tches:Pi,tieth:"Ordinal",tures:Ni,wards:xi,where:xi,archy:Ti,pathy:Ti,opoly:Ti,embly:Ti,phate:Ti,ndent:Ai,scent:Ai,onist:Ai,anist:Ai,alist:Ai,olist:Ai,icist:Ai,ounce:ki,iable:wi,borne:wi,gnant:wi,inant:wi,igent:wi,atory:wi,rient:Ai,dient:Ai},{auskas:Ci,parent:Ai,cedent:Ai,ionary:Ai,cklist:Ai,keeper:Ei,logist:Ei,teenth:"Value"},{opoulos:Ci,borough:"Place",sdottir:Ci}];const Vi="Adjective",Bi="Noun",zi="Verb";var $i=[null,null,{},{neo:Bi,bio:Bi,"de-":zi,"re-":zi,"un-":zi},{anti:Bi,auto:Bi,faux:Vi,hexa:Bi,kilo:Bi,mono:Bi,nano:Bi,octa:Bi,poly:Bi,semi:Vi,tele:Bi,"pro-":Vi,"mis-":zi,"dis-":zi,"pre-":Vi},{anglo:Bi,centi:Bi,ethno:Bi,ferro:Bi,grand:Bi,hepta:Bi,hydro:Bi,intro:Bi,macro:Bi,micro:Bi,milli:Bi,nitro:Bi,penta:Bi,quasi:Vi,radio:Bi,tetra:Bi,"omni-":Vi,"post-":Vi},{pseudo:Vi,"extra-":Vi,"hyper-":Vi,"inter-":Vi,"intra-":Vi,"deca-":Vi},{electro:Bi}];const Hi="Adjective",Fi="Infinitive",Si="PresentTense",Ji="Singular",Mi="PastTense",Wi="Adverb",Li="Expression",qi="Actor",Ki="Verb",Ui="Noun",Ri="LastName";var Qi={a:[[/.[aeiou]na$/,Ui,"tuna"],[/.[oau][wvl]ska$/,Ri],[/.[^aeiou]ica$/,Ji,"harmonica"],[/^([hyj]a+)+$/,Li,"haha"]],c:[[/.[^aeiou]ic$/,Hi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Mi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Mi,"rammed"],[/.[aeiou][sg]hed$/,Mi,"gushed"],[/.[aeiou]red$/,Mi,"hired"],[/.[aeiou]r?ried$/,Mi,"hurried"],[/[^aeiou]ard$/,Ji,"steward"],[/[aeiou][^aeiou]id$/,Hi,""],[/.[vrl]id$/,Hi,"livid"],[/..led$/,Mi,"hurled"],[/.[iao]sed$/,Mi,""],[/[aeiou]n?[cs]ed$/,Mi,""],[/[aeiou][rl]?[mnf]ed$/,Mi,""],[/[aeiou][ns]?c?ked$/,Mi,"bunked"],[/[aeiou]gned$/,Mi],[/[aeiou][nl]?ged$/,Mi],[/.[tdbwxyz]ed$/,Mi],[/[^aeiou][aeiou][tvx]ed$/,Mi],[/.[cdflmnprstv]ied$/,Mi,"emptied"]],e:[[/.[lnr]ize$/,Fi,"antagonize"],[/.[^aeiou]ise$/,Fi,"antagonise"],[/.[aeiou]te$/,Fi,"bite"],[/.[^aeiou][ai]ble$/,Hi,"fixable"],[/.[^aeiou]eable$/,Hi,"maleable"],[/.[ts]ive$/,Hi,"festive"],[/[a-z]-like$/,Hi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Hi,"cornish"],[/.v[iy]ch$/,Ri,"..ovich"],[/^ug?h+$/,Li,"ughh"],[/^uh[ -]?oh$/,Li,"uhoh"],[/[a-z]-ish$/,Hi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Ri,"polish-male"]],k:[[/^(k){2}$/,Li,"kkkk"]],l:[[/.[gl]ial$/,Hi,"familial"],[/.[^aeiou]ful$/,Hi,"fitful"],[/.[nrtumcd]al$/,Hi,"natal"],[/.[^aeiou][ei]al$/,Hi,"familial"]],m:[[/.[^aeiou]ium$/,Ji,"magnesium"],[/[^aeiou]ism$/,Ji,"schism"],[/^[hu]m+$/,Li,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Hi,"republican"],[/[^aeiou]ician$/,qi,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Li,"noooo"],[/^(yo)+$/,Li,"yoo"],[/^wo{2,}[pt]?$/,Li,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Ji],[/[^i]fer$/,Fi],[/.[^aeiou][ao]pher$/,qi],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Hi],[/[aeiou].*ist$/,Hi],[/^[a-z]et$/,Ki]],s:[[/.[^aeiou]ises$/,Si],[/.[rln]ates$/,Si],[/.[^z]ens$/,Ki],[/.[lstrn]us$/,Ji],[/.[aeiou]sks$/,Si],[/.[aeiou]kes$/,Si],[/[aeiou][^aeiou]is$/,Ji],[/[a-z]'s$/,Ui],[/^yes+$/,Li]],v:[[/.[^aeiou][ai][kln]ov$/,Ri]],y:[[/.[cts]hy$/,Hi],[/.[st]ty$/,Hi],[/.[tnl]ary$/,Hi],[/.[oe]ry$/,Ji],[/[rdntkbhs]ly$/,Wi],[/.(gg|bb|zz)ly$/,Hi],[/...lly$/,Wi],[/.[gk]y$/,Hi],[/[bszmp]{2}y$/,Hi],[/.[ai]my$/,Hi],[/[ea]{2}zy$/,Hi],[/.[^aeiou]ity$/,Ji]]};const _i="Verb",Zi="Noun";var Xi={leftTags:[["Adjective",Zi],["Possessive",Zi],["Determiner",Zi],["Adverb",_i],["Pronoun",_i],["Value",Zi],["Ordinal",Zi],["Modal",_i],["Superlative",Zi],["Demonym",Zi],["Honorific","Person"]],leftWords:[["i",_i],["first",Zi],["it",_i],["there",_i],["not",_i],["because",Zi],["if",Zi],["but",Zi],["who",_i],["this",Zi],["his",Zi],["when",Zi],["you",_i],["very","Adjective"],["old",Zi],["never",_i],["before",Zi],["a","Singular"],["the",Zi],["been",_i]],rightTags:[["Copula",Zi],["PastTense",Zi],["Conjunction",Zi],["Modal",Zi]],rightWords:[["there",_i],["me",_i],["man","Adjective"],["only",_i],["him",_i],["it",_i],["were",Zi],["took",Zi],["himself",_i],["went",Zi],["who",Zi],["jr","Person"]]},Yi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},es={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},ts={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ns={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},rs={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const as=/^.([0-9]+)/;var os=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(as);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(as,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},ss=/^([0-9]+)/,ls=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(ss);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(ss,"")]}(n[0],n[1])}))};var us=function(e={}){return(e=Object.assign({},e)).rules=ls(e.rules),e.rules=is(e.rules),e.rev&&(e.rev=ls(e.rev),e.rev=is(e.rev)),e.exceptions=ls(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},cs=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const hs=us({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ds=us(ns),ms=us(es),ps=us(ts),gs=cs(hs),fs=cs(ds),vs=cs(ms),bs=cs(ps),ys=us(Yi),ws=us(rs);var ks={fromPast:hs,fromPresent:ds,fromGerund:ms,fromParticiple:ps,toPast:gs,toPresent:fs,toGerund:vs,toParticiple:bs,toComparative:ys,toSuperlative:ws,fromComparative:cs(ys),fromSuperlative:cs(ws)},Ps=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),As=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],js=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(Ns[t].forEach((n=>e[n]=t)),e)),{});var Es=Ns,Is=function(e){let t=e.substring(e.length-3);if(!0===Es.hasOwnProperty(t))return Es[t];let n=e.substring(e.length-2);return!0===Es.hasOwnProperty(n)?Es[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ts={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Cs=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Is(e)),Ts.hasOwnProperty(e))c=Ts[e];else if("Participle"===n)c=os(l,i);else if("PastTense"===n)c=os(l,r);else if("PresentTense"===n)c=os(l,a);else{if("Gerund"!==n)return e;c=os(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ds=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:os(i,n),PresentTense:os(i,r),Gerund:os(i,a),FutureTense:"will "+e},u=os(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Os={toInfinitive:Cs,conjugate:Ds,all:function(e,t){let n=Ds(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},Gs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Vs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Bs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var zs=function(e){if(Bs.hasOwnProperty(e))return Bs[e];let t=Gs(e,Vs);return t||e+"ly"};const $s=function(e,t){const n=t.two.models.toSuperlative;return os(e,n)},Hs=function(e,t){const n=t.two.models.toComparative;return os(e,n)},Fs="ically",Ss=new Set(["analyt"+Fs,"chem"+Fs,"class"+Fs,"clin"+Fs,"crit"+Fs,"ecolog"+Fs,"electr"+Fs,"empir"+Fs,"frant"+Fs,"grammat"+Fs,"ident"+Fs,"ideolog"+Fs,"log"+Fs,"mag"+Fs,"mathemat"+Fs,"mechan"+Fs,"med"+Fs,"method"+Fs,"method"+Fs,"mus"+Fs,"phys"+Fs,"phys"+Fs,"polit"+Fs,"pract"+Fs,"rad"+Fs,"satir"+Fs,"statist"+Fs,"techn"+Fs,"technolog"+Fs,"theoret"+Fs,"typ"+Fs,"vert"+Fs,"whims"+Fs]),Js=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ms=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ws={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Ls=function(e){return e.endsWith("ly")?Ss.has(e)?e.replace(/ically/,"ical"):Ms.has(e)?null:Ws.hasOwnProperty(e)?Ws[e]:Gs(e,Js)||e:null};const qs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ks={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Us=new Set(["terrible","annoying"]);var Rs={toSuperlative:$s,toComparative:Hs,toAdverb:zs,toNoun:function(e){if(Ks.hasOwnProperty(e))return Ks[e];if(Us.has(e))return null;let t=Gs(e,qs);return t||e+"ness"},fromAdverb:Ls,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return os(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return os(e,n)},all:function(e,t){let n=[e];return n.push($s(e,t)),n.push(Hs(e,t)),n.push(zs(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Qs={noun:xs,verb:Os,adjective:Rs},_s={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Zs=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===_s.hasOwnProperty(i)&&_s[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},Xs=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!tl.find((t=>e.endsWith(t)))},rl={two:{quickSplit:Xs,expandLexicon:Zs,transform:Qs,looksPlural:nl}},al=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const ol=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var il=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=ol(n,"Infinitive","PastTense"),Object.assign(s,l),l=ol(r,"Infinitive","Verb"),Object.assign(s,l),l=ol(a,"Infinitive","Gerund"),Object.assign(s,l),l=ol(o,"Adjective","Superlative"),Object.assign(s,l),l=ol(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let sl={two:{models:ks}};const ll={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},ul=function(e,t){const n={model:t,methods:rl};let{lex:r,_multi:a}=rl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},cl=function(e,t,n){let r=Ds(e,sl);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},hl=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=ll[o],"Noun|Verb"!==o&&"Person|Verb"!==o||cl(a,r,!1),"Adj|Present"===o&&(cl(a,r,!0),function(e,t,n){let r=$s(e,n);t[r]=t[r]||"Superlative";let a=Hs(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Cs(a,sl,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Cs(a,sl,"PastTense");r[e]||(n[e]="Infinitive")}})),t=ul(n,t)};var dl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=ul(e.one.lexicon,e)).one.lexicon,e),e=hl(e.two.switches,e),e=il(e),e=al(e)};let ml={one:{_multiCache:{},lexicon:zo},two:{irregularPlurals:Po,models:ks,suffixPatterns:Gi,prefixPatterns:$i,endsWith:Qi,neighbours:Xi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:$o,clues:yi,uncountable:{},orgWords:Ps}};ml=dl(ml);var pl=ml;const gl=/^(under|over|mis|re|un|dis|semi)-?/;var fl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(gl.test(a.normal)){let e=a.normal.replace(gl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},vl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const bl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var yl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(nl(e.normal)?vl(e,"Plural","3-plural-guess"):vl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Is(e.normal);t&&vl(e,t,"3-verb-tense-guess")}}(r)};const wl=/^\p{Lu}[\p{Ll}'’]/u,kl=/[0-9]/,Pl=["Date","Month","WeekDay","Unit"],Al=/^[IVXLCDM]{2,}$/,jl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,xl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Nl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===wl.test(o)&&!1===kl.test(o)?Pl.find((e=>r.tags.has(e)))?null:(yl(e,t,n),r.tags.has("Noun")||r.tags.clear(),vl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Al.test(o)&&jl.test(o)&&!xl[r.normal]?(vl(r,"RomanNumeral","2-xvii"),!0):null};const El=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var Il=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=El(r.normal,n.two.suffixPatterns);if(null!==e)return vl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=El(r.implicit,n.two.suffixPatterns),null!==e))return vl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Tl=/['‘’‛‵′`´]/,Cl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return vl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Gl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Vl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Gl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Bl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},zl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var $l=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Vl(a)||Vl(o))return vl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Bl(a)||Bl(o))return vl(n,"Year","2-tagYear-close");if(zl(e[t-2])||zl(e[t+2]))return vl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return vl(n,"Year","2-tagYear-noun")}}}return null};const Hl=/^[A-Z]('s|,)?$/,Fl=/^[A-Z-]+$/,Sl=/([A-Z]\.)+[A-Z]?,?$/,Jl=/[A-Z]{2,}('s|,)?$/,Ml=/([a-z]\.)+[a-z]\.?$/,Wl={I:!0,A:!0};var Ll=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Fl.test(n)||n.length>5||Wl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Sl.test(n)&&!0!==Ml.test(n)&&!0!==Hl.test(n)&&!0!==Jl.test(n))}(r,n)?(r.tags.clear(),vl(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Wl.hasOwnProperty(r.text)&&Hl.test(r.text)?(r.tags.clear(),vl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(vl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Fl.test(r.text)&&r.text.length<=6?(vl(r,"Acronym","3-titlecase-acronym"),!0):null};const ql=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Kl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ul=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||ql(e[t-1],a),l=l||ql(e[t+1],o),l=l||Kl(e[t-1],r),l=l||Kl(e[t+1],i),l)return vl(s,l,"3-[neighbour]"),yl(e,t,n),e[t].confidence=.2,!0}return null};const Rl=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Ql=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Rl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Rl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},_l=function(e,t,n){0===e[t].tags.size&&(vl(e[t],"Noun","3-[fallback]"),yl(e,t,n),e[t].confidence=.1)};const Zl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Xl=(e,t,n)=>0!==t||e[1]?null:n,Yl={"Adj|Gerund":(e,t)=>Zl(e,t),"Adj|Noun":(e,t)=>Zl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Zl(e,t),"Adj|Present":(e,t)=>Zl(e,t),"Noun|Gerund":(e,t)=>Zl(e,t),"Noun|Verb":(e,t)=>Zl(e,t)||Xl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Zl(e,t)||Xl(e,t,"PresentTense"),"Person|Noun":(e,t)=>Zl(e,t),"Person|Verb":(e,t)=>0!==t?Zl(e,t):null};var eu=Yl;const tu="undefined"!=typeof process&&process.env?process.env:self.env||{},nu=/^(under|over|mis|re|un|dis|semi)-?/,ru=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&tu.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},au=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&tu.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var ou=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(nu.test(l)&&!o[l]&&(l=l.replace(nu,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=ru(e[t+1],n.afterWords);return o=o||ru(e[t-1],n.beforeWords),o=o||au(e[t-1],n.beforeTags,a),o=o||au(e[t+1],n.afterTags,a),o}(e,t,i[o],r);eu[o]&&(u=eu[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),yl(e,t,r)):tu.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},iu=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(vl(o,"Verb","3-[prefix]"),vl(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(vl(o,"Adjective","3-[prefix]"),vl(o,"Prefix","3-[prefix]")))};const su={tagSwitch:fl,checkSuffix:Il,checkRegex:Dl,checkCase:Nl,checkPrefix:Ol,checkHyphen:iu,checkYear:$l},lu={checkAcronym:Ll,neighbours:Ul,orgWords:Ql,nounFallback:_l,switches:ou},uu=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var mu=function(e){const t=e.world,n=Object.keys(du);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=xu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=ju},Eu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Iu=/'/;var Tu=function(e,t){let n=e[t].normal.split(Iu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Cu=/'/;var Du=function(e,t){let n=e[t].normal.split(Cu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Ou=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Gu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Vu={in:!0,by:!0,for:!0};var Bu=(e,t)=>{let n=e[t];if(Gu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Vu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const zu=/'/,$u=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Hu={d:(e,t)=>Du(e,t),t:(e,t)=>Ou(e,t),s:(e,t,n)=>Bu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Tu(e,t)},Fu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Su={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===zu.test(r[o].normal)&&([,i]=r[o].normal.split(zu));let s=null;Hu.hasOwnProperty(i)&&(s=Hu[i](r,o,t)),s&&(s=Fu(s,e),Eu(n,[a,o],s),$u(n[a],e,o,s.length))}}))}},Ju={compute:Su,api:Nu,hooks:["contractionTwo"]};const Mu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Wu=["i","we","they"];let Lu=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"[brand #Gerund?] new",tag:"Adverb",group:0,reason:"brand-new"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Mu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Mu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Mu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past%]",group:0,tag:"Adjective",reason:"do-not-be-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Wu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Wu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Wu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|well|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^[come on] #Noun",group:0,tag:"Expression",reason:"come-on"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),qu=null;var Ku={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;qu=qu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(qu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Uu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ku,model:{two:{matches:Lu}},hooks:["postTagger"]};var Ru=Uu,Qu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},_u=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Qu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Zu={lib:{lazy:_u}},Xu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},Yu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Xu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},ec={api:function(e){e.prototype.swap=Yu}};v.plugin(ku),v.plugin(Ju),v.plugin(Ru),v.plugin(Zu),v.plugin(ec);var tc=function(e){let t=this;return t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)"),"number"==typeof e&&(t=t.get(e)),t},nc=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r},rc=function(e){e.prototype.chunks=nc,e.prototype.clauses=tc};const ac={this:"Noun",then:"Pivot"};var oc=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))},mc={chunks:function(e){const{document:t,world:n}=e;oc(t),ic(t),uc(e,t,n),hc(t),dc(t)}},pc={compute:mc,api:rc,hooks:["chunks"]};const gc=/'s$/;var fc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(gc,""),e.normal=e.normal.replace(gc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const vc=/\(/,bc=/\)/,yc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(vc,"");let t=e[e.length-1];t.post=t.post.replace(bc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const kc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},Pc=RegExp("("+Object.keys(kc).join("|")+")"),Ac=RegExp("("+Object.values(kc).join("|")+")"),jc=function(e,t){const n=e[t].pre.match(Pc)[0]||"";if(!n||!kc[n])return null;const r=kc[n];for(;t{e[0].pre=e[0].pre.replace(Pc,"");let t=e[e.length-1];t.post=t.post.replace(Ac,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const Nc=/\./g;var Ec=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Nc,""),e.normal=e.normal.replace(Nc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(Nc,""),e.normal=e.normal.replace(Nc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}},Ic=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Tc=(e,t)=>"number"==typeof t?e.eq(t):e,Cc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Dc=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=Cc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return Tc(this,e).map((e=>{let o=Cc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return Tc(this,e).map((e=>{let n=Cc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return Tc(this,e).map((e=>{let n=Cc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return Tc(this,e).map((e=>{let n=Cc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return Tc(this,e).map((e=>{let n=Cc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Tc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Tc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Tc(t,e),new Adjectives(t.document,t.pointer)}};const Oc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},Gc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let Vc=[["emojis","emoji"],["atmentions","atMentions"]];var Bc=function(e){Gc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Oc,Vc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},zc={api:function(e){Bc(e),fc(e),wc(e),xc(e),Dc(e),Ic(e),Ec(e)}};const $c=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Hc={case:e=>{$c(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;$c(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{$c(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{$c(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Fc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Sc="unicode|punctuation|whitespace|acronyms",Jc="|case|contractions|parentheses|quotations|emoji|honorifics",Mc={light:Fc(Sc),medium:Fc(Sc+Jc),heavy:Fc(Sc+Jc+"|possessives|adverbs|nouns|verbs")};var Wc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Mc[e]),Object.keys(e).forEach((t=>{Hc.hasOwnProperty(t)&&Hc[t](this,e[t])})),this}}},Lc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const qc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Kc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")},Rc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Uc(e,t),isSubordinate:Kc(e),root:t}};const Qc=e=>e.text(),_c=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Zc=function(e){if(!e.found)return null;let t=e.values(0);return t.found?(t.parse()[0]||{}).num:null};var Xc=function(e){let t=Rc(e);return{root:Qc(t.root),number:Zc(t.number),determiner:Qc(t.determiner),adjectives:_c(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Yc={tags:!0};var eh=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Yc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Yc),e};const th={tags:!0};var nh=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,th).tag("Singular","toPlural"),e};const rh=(e,t)=>"number"==typeof t?e.eq(t):e;var ah=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return rh(this,e).map(Rc)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Xc(t)),n}),[])}isPlural(e){let t=this.filter((e=>Rc(e).isPlural));return rh(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Rc(e).adjectives;n.found&&(t=t.concat(n))})),rh(t,e)}toPlural(e){return rh(this,e).map((e=>eh(e,Rc(e))))}toSingular(e){return rh(this,e).map((e=>{let t=Rc(e);return nh(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Lc(this);return t=rh(t,e),new Nouns(this.document,t.pointer)}},oh={api:ah},ih=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n},sh=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(lh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(lh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(lh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0},ch=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const dh=/^([0-9,. ]+)\/([0-9,. ]+)$/,mh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},ph=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var gh=function(e){if(!0===mh.hasOwnProperty(e))return mh[e];if("a"===e||"an"===e)return 1;const t=sh(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=vh(n),r=vh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:vh(n);let a=r.text("reduced");return fh.test(a)&&(a=a.replace(fh,""),r=r.replaceWith(a)),r=bh.hasOwnProperty(a)?bh[a]:vh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");return!0!==t.found?null:e.lookAhead("^of .")?{numerator:1,denominator:vh(t)}:null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t},wh=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const kh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],Ph=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],Ah=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],jh=function(e){let t=[];if(e>100)return t;for(let n=0;n=kh[n][1]&&(e-=kh[n][1],t.push(kh[n][0]));return Ph[e]&&t.push(Ph[e]),t};var xh=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=wh(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return Ah.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(jh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=wh(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")},Nh=function(e){return e.numerator&&e.denominator?`${xh({num:e.numerator})} out of ${xh({num:e.denominator})}`:""};const Eh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var Ih=e=>{let t=xh(e).split(" "),n=t[t.length-1];return Eh.hasOwnProperty(n)?t[t.length-1]=Eh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")},Th=function(e){if(!e.numerator||!e.denominator)return"";let t=xh({num:e.numerator}),n=Ih({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const Ch=(e,t)=>"number"==typeof t?e.eq(t):e;var Dh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return Ch(this,e).map(yh)}get(e){return Ch(this,e).map(yh)}json(e){return Ch(this,e).map((t=>{let n=t.toView().json(e)[0],r=yh(t);return n.fraction=r,n}),[])}toDecimal(e){return Ch(this,e).forEach((e=>{let{decimal:t}=yh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return Ch(this,e).forEach((e=>{let t=yh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return Ch(this,e).forEach((e=>{let t=yh(e),n=Th(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return Ch(this,e).forEach((e=>{let t=yh(e),n=Nh(t);e.replaceWith(n)})),this}toPercentage(e){return Ch(this,e).forEach((e=>{let{decimal:t}=yh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=ih(this);return t=Ch(t,e),new Fractions(this.document,t.pointer)}};const Oh="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Gh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Oh+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Oh+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Oh+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Oh+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Oh})`),r=e.has("("+Oh+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Oh+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Oh+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t},Vh=function(e){if("string"==typeof e)return{num:gh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=yh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=gh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}},Bh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=wh(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const zh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},$h={"%":"percent","°":"degrees"};var Hh=function(e){let t={suffix:"",prefix:e.prefix};return zh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+zh[e.prefix],t.prefix=""),$h.hasOwnProperty(e.suffix)&&(t.suffix+=" "+$h[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t},Fh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Hh(e);return t+Ih(e)+n}if("Ordinal"===t)return e.prefix+Bh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Hh(e);return t+xh(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Sh=(e,t)=>"number"==typeof t?e.eq(t):e;var Jh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Sh(this,e).map(Vh)}get(e){return Sh(this,e).map(Vh).map((e=>e.num))}json(e){return Sh(this,e).map((t=>{let n=t.toView().json(e)[0],r=Vh(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=Vh(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Fh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=Vh(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Fh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Fh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Fh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=Vh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Fh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>Vh(t).num===e))}greaterThan(e){return this.filter((t=>Vh(t).num>e))}lessThan(e){return this.filter((t=>Vh(t).num{let r=Vh(n).num;return r>e&&r{let n=Vh(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Fh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=Vh(e).num);let t=this.map((t=>{let n=Vh(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Fh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Gh(this);return t=Sh(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Gh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=Sh(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Gh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=Sh(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers},Mh={api:function(e){Dh(e),Jh(e)}};const Wh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Lh=function(e={}){return!1!==(e=Object.assign({},Wh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},qh={api:function(e){e.prototype.redact=Lh}};var Kh=qh,Uh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))},Rh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};const Qh=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}};var _h=function(e){let t=e.clauses(),n=Rh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o,grammar:Qh(a)}},Zh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e},Xh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e},Yh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!(e.lookBehind("to$").found||!e.has("#Copula #Gerund")&&(e.has("#Gerund")||!e.has("#Copula")&&e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e},ed=function(e){return e.verbs().toInfinitive(),e};const td=(e,t)=>"number"==typeof t?e.eq(t):e;var nd=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o,grammar:i}=_h(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal"),grammar:i},n}),[])}toPastTense(e){return td(this,e).map((e=>(_h(e),Zh(e))))}toPresentTense(e){return td(this,e).map((e=>(_h(e),Xh(e))))}toFutureTense(e){return td(this,e).map((e=>(_h(e),e=Yh(e))))}toInfinitive(e){return td(this,e).map((e=>(_h(e),ed(e))))}toNegative(e){return td(this,e).map((e=>(_h(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return td(this,e).map((e=>(_h(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return td(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return td(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=td(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Uh(this);return td(t,e)}};Object.assign(e.prototype,t)},rd={api:nd},ad=function(e){return e.match("#Honorific+? #Person+")},od=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const id="male",sd="female",ld={mr:id,mrs:sd,miss:sd,madam:sd,king:id,queen:sd,duke:id,duchess:sd,baron:id,baroness:sd,count:id,countess:sd,prince:id,princess:sd,sire:id,dame:sd,lady:sd,ayatullah:id,congressman:id,congresswoman:sd,"first lady":sd,mx:null};var ud=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return sd;if(n.has("#MaleName"))return id;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),ld.hasOwnProperty(e))return ld[e];if(/^her /.test(e))return sd;if(/^his /.test(e))return id}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return id;if(n&&!t)return sd}return null};const cd=(e,t)=>"number"==typeof t?e.eq(t):e;var hd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return cd(this,e).map(od)}json(e){return cd(this,e).map((t=>{let n=t.toView().json(e)[0],r=od(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:ud(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=ad(this);return t=cd(t,e),new People(this.document,t.pointer)}},dd=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found)),t=t.splitAfter(n),t},md=function(e){e.prototype.places=function(t){let n=dd(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}},pd=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const gd=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var fd=function(e){e.prototype.topics=gd},vd={api:function(e){hd(e),md(e),pd(e),fd(e)}},bd=function(e){let t=e.match("");return t=t.not("(#Conjunction && !to)"),t=t.not("#Preposition"),t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0),t=t.not("#Reflexive$"),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t},yd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t},wd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const kd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},Pd=function(e){return e.match("#Negative")},Ad=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var jd=function(e){let t=e.clone();t.contractions().expand();const n=yd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:wd(t,n),auxiliary:kd(t,n),negative:Pd(t),phrasal:Ad(n)}};const xd={tense:"PresentTense"},Nd={conditional:!0},Ed={tense:"FutureTense"},Id={progressive:!0},Td={tense:"PastTense"},Cd={complete:!0,progressive:!1},Dd={passive:!0},Od=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Gd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[xd]],["^wanted to #Infinitive$",[Td]],["^will want to #Infinitive$",[Ed]]],"gerund-phrase":[["^#PastTense #Gerund$",[Td]],["^#PresentTense #Gerund$",[xd]],["^#Infinitive #Gerund$",[xd]],["^will #Infinitive #Gerund$",[Ed]],["^have #PastTense #Gerund$",[Td]],["^will have #PastTense #Gerund$",[Td]]],"simple-present":[["^#PresentTense$",[xd]],["^#Infinitive$",[xd]]],"simple-past":[["^#PastTense$",[Td]]],"simple-future":[["^will #Adverb? #Infinitive",[Ed]]],"present-progressive":[["^(is|are|am) #Gerund$",[xd,Id]]],"past-progressive":[["^(was|were) #Gerund$",[Td,Id]]],"future-progressive":[["^will be #Gerund$",[Ed,Id]]],"present-perfect":[["^(has|have) #PastTense$",[Td,Cd]]],"past-perfect":[["^had #PastTense$",[Td,Cd]],["^had #PastTense to #Infinitive",[Td,Cd]]],"future-perfect":[["^will have #PastTense$",[Ed,Cd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[Td,Id]]],"past-perfect-progressive":[["^had been #Gerund$",[Td,Id]]],"future-perfect-progressive":[["^will have been #Gerund$",[Ed,Id]]],"passive-past":[["(got|were|was) #Passive",[Td,Dd]],["^(was|were) being #Passive",[Td,Dd]],["^(had|have) been #Passive",[Td,Dd]]],"passive-present":[["^(is|are|am) #Passive",[xd,Dd]],["^(is|are|am) being #Passive",[xd,Dd]],["^has been #Passive",[xd,Dd]]],"passive-future":[["will have been #Passive",[Ed,Dd,Nd]],["will be being? #Passive",[Ed,Dd,Nd]]],"present-conditional":[["would be #PastTense",[xd,Nd]]],"past-conditional":[["would have been #PastTense",[Td,Nd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[Ed]]],"auxiliary-past":[["^did #Infinitive$",[Td,{plural:!1}]],["^used to #Infinitive$",[Td,Cd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[xd,Cd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[Td]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Vd=[];Object.keys(Gd).map((e=>{Gd[e].forEach((t=>{Vd.push({name:e,match:t[0],data:Od(t[1])})}))}));var Bd=Vd,zd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),$d(r)&&(n.remove(r),r=n.last()),$d(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Hd(t,e)}};const Sd=e=>e,Jd=(e,t)=>{let n=Fd(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Md=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Fd(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Wd=function(e,t){let n=Fd(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Ld=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},qd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Ld(e)),r&&e.replace(t.root,r),e},Kd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Ud=function(e){return e&&e.isView?e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal)):[]},Rd=function(e){return e&&e.isView?e.text("normal"):""},Qd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Ld(e))};var _d=function(e){let t=jd(e);e=e.clone().toView();const n=zd(e,t);return{root:t.root.text(),preAdverbs:Ud(t.adverbs.pre),postAdverbs:Ud(t.adverbs.post),auxiliary:Rd(t.auxiliary),negative:t.negative.found,prefix:Rd(t.prefix),infinitive:Qd(t.root),grammar:n}};const Zd={tags:!0};var Xd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Ld(r)),i&&e.replace(r,i,Zd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Wd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Yd={tags:!0},em={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Ld(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Fd(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Yd),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=em.simple(e,t),e=em.noAux(e,t))},hasHad:e=>(e.replace("has","had",Yd),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Ld(a)),n(o,e.model).Participle}},tm={infinitive:em.simple,"simple-present":em.simple,"simple-past":Sd,"simple-future":em.both,"present-progressive":e=>(e.replace("are","were",Yd),e.replace("(is|are|am)","was",Yd),e),"past-progressive":Sd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":em.hasHad,"past-perfect":Sd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Kd(e)),e.remove("have"),e),"present-perfect-progressive":em.hasHad,"past-perfect-progressive":Sd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Yd),e),"passive-past":e=>(e.replace("have","had",Yd),e),"passive-present":e=>(e.replace("(is|are)","was",Yd),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Yd),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Sd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Yd),e),"auxiliary-past":Sd,"auxiliary-present":e=>(e.replace("(do|does)","did",Yd),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Yd):(em.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Sd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Yd),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),em.simple(e,t),Kd(e),e)};var nm=function(e,t,n){return tm.hasOwnProperty(n)?((e=tm[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const rm={tags:!0},am=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Ld(a)),!1===Jd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Md(e)),o&&(e=e.replace(a,o,rm)).not("#Particle").tag("PresentTense"),e},om=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Ld(a)),!1===Jd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,rm)).not("#Particle").tag("Gerund"),e},im={infinitive:am,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return am(e,t);{let t=Fd(e).subject;if(Jd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,rm)}return e},"simple-past":am,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Md(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else am(e,t),e=e.remove("will");return e},"present-progressive":Sd,"past-progressive":(e,t)=>{let n=Md(e);return e.replace("(were|was)",n,rm)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(am(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Fd(e).subject;return Jd(e)||n.has("i")?((e=qd(e,t)).remove("had"),e):(e.replace("had","has",rm),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Sd,"past-perfect-progressive":e=>e.replace("had","has",rm),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Md(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,rm),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Sd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Sd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(om(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Wd(e);return e.replace(t.auxiliary,n),e}return om(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Sd,"modal-infinitive":Sd,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Ld(r)),a&&(e=e.replace(t.root,a,rm))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),am(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Jd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,rm),e.remove("will"),e}};var sm=function(e,t,n){return im.hasOwnProperty(n)?((e=im[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const lm={tags:!0},um=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Ld(r)),o&&(e=e.replace(r,o,lm)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},cm=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Ld(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,lm),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},hm={infinitive:um,"simple-present":um,"simple-past":um,"simple-future":Sd,"present-progressive":cm,"past-progressive":cm,"future-progressive":Sd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Sd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Sd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Sd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Sd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Sd,"modal-past":Sd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),um(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var dm=function(e,t,n){return e.has("will")||e.has("going to")?e:hm.hasOwnProperty(n)?((e=hm[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const mm={tags:!0};var pm=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Ld(a));let s=r(i,e.model).Gerund;return s&&(s=`${Md(e)} ${s}`,e.replace(a,s,mm)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const gm={tags:!0},fm=function(e,t){let n=Wd(e);return e.prepend(n+" not"),e},vm=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},bm=e=>e.has("(is|was|am|are|will|were|be)"),ym={"simple-present":(e,t)=>!0===bm(e)?vm(e):(e=qd(e,t),e=fm(e)),"simple-past":(e,t)=>!0===bm(e)?vm(e):((e=qd(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===bm(e)?vm(e):fm(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",gm),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=fm(e)).replace("wants","want",gm)};var wm=function(e,t,n){if(e.has("#Negative"))return e;if(ym.hasOwnProperty(n))return e=ym[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===bm(e)?vm(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const km=(e,t)=>"number"==typeof t?e.eq(t):e;var Pm=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return km(this,e).map(jd)}json(e,t){let n=km(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=_d(t),n}),[]);return n}subjects(e){return km(this,e).map((e=>(jd(e),Fd(e).subject)))}adverbs(e){return km(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return km(this,e).filter((e=>!0!==Fd(e).plural))}isPlural(e){return km(this,e).filter((e=>!0===Fd(e).plural))}isImperative(e){return km(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return km(this,e).map((e=>{let t=jd(e),n=zd(e,t);return Xd(e,t,n.form)}))}toPresentTense(e){return km(this,e).map((e=>{let t=jd(e),n=zd(e,t);return sm(e,t,n.form)}))}toPastTense(e){return km(this,e).map((e=>{let t=jd(e),n=zd(e,t);return nm(e,t,n.form)}))}toFutureTense(e){return km(this,e).map((e=>{let t=jd(e),n=zd(e,t);return dm(e,t,n.form)}))}toGerund(e){return km(this,e).map((e=>{let t=jd(e),n=zd(e,t);return pm(e,t,n.form)}))}conjugate(e){return km(this,e).map((e=>{let t=jd(e),n=zd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Xd(e.clone(),t,n.form).text("normal"),PastTense:nm(e.clone(),t,n.form).text("normal"),PresentTense:sm(e.clone(),t,n.form).text("normal"),FutureTense:dm(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return km(this,e).map((e=>{let t=jd(e),n=zd(e,t);return wm(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=bd(this);return t=km(t,e),new Verbs(this.document,t.pointer)}},Am={api:Pm};return v.plugin(pc),v.plugin(zc),v.plugin(Wc),v.plugin(oh),v.plugin(Mh),v.plugin(Kh),v.plugin(rd),v.plugin(vd),v.plugin(Am),v},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/three/compromise-three.mjs b/builds/three/compromise-three.mjs index a6385ce55..d01e0770d 100644 --- a/builds/three/compromise-three.mjs +++ b/builds/three/compromise-three.mjs @@ -1 +1 @@ -var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var v=f;var b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},N=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},x=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?N(n):(N(n),N([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!k(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||k(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var G=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},D=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=G(e),e)))}(d),n?(T(t.update([u]).firstTerm()),x(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},z.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var $=z;var F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=F(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const W={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};W.deHyphenate=W.dehyphenate,W.toQuotation=W.toQuotations;var M=W;var J={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=J.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof J[e]?(a=a.sort(J[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var _={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}};var Q={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,H,M,U,_,Q);var Y=function(e){Object.assign(e.prototype,Z)};const X={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null};var le=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const me=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,pe=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(me);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(pe),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,Pe=/^[0-9][^-–—]*[-–—].*?[0-9]/,ke=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ne={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=je(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ne.hasOwnProperty(l)&&(c=Ne[l](r,s)),c?(c=xe(c,e),ne(n,[i,s],c),ke(n[i],e,s,c.length)):Pe.test(r[s].normal)?(c=fe(r,s),c&&(c=xe(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),ke(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=xe(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]};var Ge=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}};var ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Oe,lib:Be,hooks:["lexicon"]};var $e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const We=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=We(e.goNext,void 0),e.failTo=We(e.failTo,0),e.endAs=We(e.endAs,null),e};const Je={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};Je.compile=Je.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Je};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,_e=e=>e&&Ue(e)&&!0===e.isNet,Qe=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(_e(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(_e(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Qe(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e)){return e.fullPointer.length>0}if(_e(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Qe(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(_e(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Qe(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Ye={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Xe=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Xe(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Xe(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Ye,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,mt=/&&/,pt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},Pt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=pt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){mt.test(e)?(n.choices=e.split(mt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>Pt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var kt=Pt;const At=/[a-z0-9][-–—][a-z]/i;var Nt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},xt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var It=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(xt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(jt(e,t)),n=n.concat(xt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var Gt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>kt(e,t))),r=Nt(r,n),r=It(r,n),r=Gt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Vt.test(e.pre)||Bt.test(e.post),hasComma:e=>Ft(e,","),hasPeriod:e=>!0===Ft(e,".")&&!1===Ft(e,"..."),hasExclamation:e=>Ft(e,"!"),hasQuestionMark:e=>Ft(e,"?")||Ft(e,"¿"),hasEllipses:e=>Ft(e,"..")||Ft(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>Ft(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Wt=Ht;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Wt[t.method]&&!0===Wt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Jt=Mt;const Lt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){qt(e,e.t).length=r-e.t}return e.t=r,!0};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Jt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Jt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){qt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Qt=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Jt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Jt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Jt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?Qt(e,r,t[e.r+1]):(e.t+=1,!0)};var Yt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Jt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Jt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Xt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Yt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Xt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Lt(e,a))if(e.negative){if(!Zt(a))return null}else if(!0!==Jt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!tn(a))return null}else{if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else{if(!_t(a))return null}else{if(!Rt(a))return null}else{if(!Kt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}};var rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i};var ln={api:ot,methods:{one:{termMethods:Wt,parseMatch:Tt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(pn,""),fn.test(a)&&(a=" "),a=a.replace(gn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(pn,""),a="-"===a?" ":a.replace(mn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let Pn=[],kn=0;for(;kn<64;)Pn[kn]=0|4294967296*Math.sin(++kn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(kn=i=0;kn>4]+Pn[i]+~~o[kn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const Nn={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const xn=function(e,t){return Object.assign({},e,t)},En={text:e=>bn(e,{keepPunct:!0},!1),normal:e=>bn(e,xn(wn.normal,{keepPunct:!0}),!1),implicit:e=>bn(e,xn(wn.implicit,{keepPunct:!0}),!1),machine:e=>bn(e,jn,!1),root:e=>bn(e,xn(jn,{form:"root"}),!1),hash:e=>An(bn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const In={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},Nn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};In.data=In.json;var Gn=In;var Tn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var Dn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var Cn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Dn.blue("\n ──────")),t.forEach((e=>{console.log(Dn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Dn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Dn.blue(" │ ")+Dn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Dn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))};var On=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Dn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Dn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Dn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Dn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var Vn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Dn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))};var Bn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Tn(t),t):(!1!==e.tags&&(Cn(t),console.log("\n")),!0===e.chunks&&(On(t),console.log("\n")),!0===e.highlight&&(Vn(t),console.log("\n")),t)};const zn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var $n=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Sn=Fn;var Hn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},qn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Kn=function(e,t){let n=qn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r};var Un=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var Rn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Ln(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var Zn=function(e,t){let n=qn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Ln(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Xn=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},er={union:function(e){e=Yn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=Xn(t,this.document),this.toView(t)}};er.and=er.union,er.intersection=function(e){e=Yn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=Xn(t,this.document),this.toView(t)},er.not=function(e){e=Yn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=Xn(t,this.document),this.toView(t)},er.difference=er.not,er.complement=function(){let e=this.all(),t=Qn(e.fullPointer,this.fullPointer);return t=Xn(t,this.document),this.toView(t)},er.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=_n(e,[t])})),e=Xn(e,this.document),this.update(e)};var tr=function(e){Object.assign(e.prototype,er)},nr={methods:Rn,api:tr};var rr=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const ar=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var or=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(ar(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(ar(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=ar(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var ir=function(e,t){e=or(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}};var sr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))};var lr=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var ur=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o};var cr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=sr(a,t.hooks);return o=lr(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),ur(o,e,a,n,r)};var hr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===hr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:rr,methods:{one:{buildNet:ir,bulkMatch:cr,bulkTagger:dr}}};const pr=/ /,gr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},fr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),pr.test(t))!function(e,t,n,r){let a=t.split(pr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),fr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nvr(e,t,n,r)))};var br=vr;var yr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>wr({id:e}))),t}return[wr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},Nr=e=>"[object Array]"===Object.prototype.toString.call(e),jr=e=>(e=e||"").trim(),xr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Pr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:kr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=wr({});return e.forEach((e=>{if((e=wr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ar(t=e).forEach(wr),t);var t},Er=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Ar(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Ir=function(e){let t=Ar(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Gr={text:Er,txt:Er,array:Ir,flat:Ir},Tr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Er(e,!0)),null):Gr.hasOwnProperty(t)?Gr[t](e):e},Dr=e=>{Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Cr=/\//;let Or=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=jr(e),!Cr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Or(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||wr({});return new Or(t)}add(e,t={}){if(Nr(e))return e.forEach((e=>this.add(jr(e),t))),this;e=jr(e);let n=wr({id:e,props:t});return this.json.children.push(n),new Or(n)}remove(e){return e=jr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ar(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ar(this.json)}fillDown(){var e;return e=this.json,Ar(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Nr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Dr(this.json);let e=Ar(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Dr(this.json),Tr(this.json,e)}debug(){return Dr(this.json),Tr(this.json,"debug"),this}};const Vr=function(e){let t=xr(e);return new Or(t)};Vr.prototype.plugin=function(e){e(this)};var Br={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const zr=function(e){if(Br.hasOwnProperty(e.id))return Br[e.id];if(Br.hasOwnProperty(e.is))return Br[e.is];let t=e._cache.parents.find((e=>Br[e]));return Br[t]};var $r=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:zr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Fr=function(e){return e?"string"==typeof e?[e]:e:[]};var Sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Fr(e[t].children),e[t].not=Fr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var Hr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Sr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Vr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return $r(n)},Wr={one:{setTag:br,unTag:yr,addTags:Hr}};const Mr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Jr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Mr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Mr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Lr=Jr;var qr=function(e){Object.assign(e.prototype,Lr)};var Kr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Ur=new Set(["Auxiliary","Possessive"]);var Rr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Ur.has(e)||!t.hasOwnProperty(n))return 1;if(Ur.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},_r={model:{one:{tagSet:{}}},compute:{tagRank:Rr},methods:Wr,api:qr,lib:Kr};const Qr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Zr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Yr=/((?:\r?\n|\r)+)/;var Xr=function(e){let t=[],n=e.split(Yr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const aa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},oa=RegExp("("+Object.keys(aa).join("|")+")","g"),ia=RegExp("("+Object.values(aa).join("|")+")","g"),sa=function(e){if(!e)return!1;let t=e.match(ia);return null!==t&&1===t.length};var la=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Na=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(ka);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=ya(n),n=va(n),n=n.filter((e=>e)),n};let ja=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),xa=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ea=/[\p{Punctuation}\s]+$/u,Ia=/^[\p{Punctuation}\s]+/u,Ga=/['’]/,Ta=/^[a-z]\.([a-z]\.)+/i,Da=/^'[0-9]{2}/;var Ca=function(e){let t=e,n="",r="";return e=e.replace(Ia,(t=>{let r=t.match(ja);return r?(n=t.replace(ja,""),r):"'"===n&&Da.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ea,(a=>{let o=a.match(xa);return o?(r=a.replace(xa,""),o):Ga.test(a)&&/[sn]['’]$/.test(t)&&!1===Ga.test(n)?(r=r.replace(Ga,""),"'"):!0===Ta.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}};var Oa=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")};var Va=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Ba=/([A-Z]\.)+[A-Z]?,?$/,za=/^[A-Z]\.,?$/,$a=/[A-Z]{2,}('s|,)?$/,Fa=/([a-z]\.)+[a-z]\.?$/;var Sa=function(e){return function(e){return!0===Ba.test(e)||!0===Fa.test(e)||!0===za.test(e)||!0===$a.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ha=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Va(r),r=n(r,t),r=Sa(r),e.normal=r};var Wa=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Ha(e,t)})),n})),e};const Ma=/[ .][A-Z]\.? *$/i,Ja=/(?:\u2026|\.{2,}) *$/,La=/\p{L}/u,qa=/^[A-Z]\. $/;var Ka=function(e,t){if(!1===La.test(e))return!1;if(!0===Ma.test(e))return!1;if(3===e.length&&qa.test(e))return!1;if(!0===Ja.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ua={one:{killUnicode:Oa,tokenize:{splitSentences:pa,isSentence:Ka,splitTerms:Na,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ca(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Wa}}};var Ra={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let _a={},Qa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{_a[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])}))}));var Za=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Ya={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Xa={};Object.keys(Ya).forEach((function(e){Ya[e].split("").forEach((function(t){Xa[t]=e}))}));const eo=/\//,to=/[a-z]\.[a-z]/i,no=/[0-9]/;var ro=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),eo.test(n)&&!to.test(n)&&!no.test(n)){let t=n.split(eo);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ao=/^\p{Letter}+-\p{Letter}+$/u;var oo=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ao.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var io=function(e){let t=e.docs,n={};for(let e=0;eco(e,ro),machine:e=>co(e,oo),normal:e=>co(e,Ha),freq:io,offset:so,index:lo,wordCount:uo},methods:Ua,model:{one:{aliases:Ra,abbreviations:_a,prefixes:Za,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Qa,unicode:Xa}},hooks:["alias","machine","index","id"]};var mo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const po=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var go=function(e){e.prototype.autoFill=po};var fo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const vo={safe:!0,min:3};var bo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},vo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=fo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}};var yo={model:{one:{typeahead:{}}},api:go,lib:bo,compute:mo,hooks:["typeahead"]};v.extend(ee),v.extend(Jn),v.extend(ln),v.extend(nr),v.extend(_r),v.plugin(Ie),v.extend(ho),v.plugin(P),v.extend(Le),v.extend(yo),v.extend(ze),v.extend(mr);var wo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Po={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const ko="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Ao=ko.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==Ao[e])return Ao[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var jo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Eo(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Io(Po[e]);Co.test(e)?Object.keys(t).forEach((t=>{if(Vo[t]=e,"Noun|Verb"===e){let e=Do(t,Bo);Vo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Oo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Oo[e]="Emoticon")),delete Oo[""],delete Oo.null,delete Oo[" "];const zo="Adjective";var $o={beforeTags:{Determiner:zo,Possessive:zo},afterTags:{Adjective:zo},beforeWords:{seem:zo,seemed:zo,seems:zo,feel:zo,feels:zo,felt:zo,appear:zo,appears:zo,appeared:zo,also:zo,over:zo,under:zo,too:zo,it:zo,but:zo,still:zo,really:zo,quite:zo,well:zo,very:zo,deeply:zo,profoundly:zo,extremely:zo,so:zo,badly:zo,mostly:zo,totally:zo,awfully:zo,rather:zo,nothing:zo,something:zo,anything:zo,not:zo,me:zo},afterWords:{too:zo,also:zo,or:zo}};const Fo="Gerund";var So={beforeTags:{Adverb:Fo,Preposition:Fo,Conjunction:Fo},afterTags:{Adverb:Fo,Possessive:Fo,Person:Fo,Pronoun:Fo,Determiner:Fo,Copula:Fo,Preposition:Fo,Conjunction:Fo,Comparative:Fo},beforeWords:{been:Fo,keep:Fo,continue:Fo,stop:Fo,am:Fo,be:Fo,me:Fo,began:Fo,start:Fo,starts:Fo,started:Fo,stops:Fo,stopped:Fo,help:Fo,helps:Fo,avoid:Fo,avoids:Fo,love:Fo,loves:Fo,loved:Fo,hate:Fo,hates:Fo,hated:Fo},afterWords:{you:Fo,me:Fo,her:Fo,him:Fo,them:Fo,their:Fo,it:Fo,this:Fo,there:Fo,on:Fo,about:Fo,for:Fo}};var Ho={beforeTags:Object.assign({},$o.beforeTags,So.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},$o.afterTags,So.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},$o.beforeWords,So.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},$o.afterWords,So.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Wo="Singular";var Mo={beforeTags:{Determiner:Wo,Possessive:Wo,Acronym:Wo,Noun:Wo,Adjective:Wo,PresentTense:Wo,Gerund:Wo,PastTense:Wo,Infinitive:Wo,Date:Wo},afterTags:{Value:Wo,Modal:Wo,Copula:Wo,PresentTense:Wo,PastTense:Wo,Demonym:Wo},beforeWords:{the:Wo,with:Wo,without:Wo,of:Wo,for:Wo,any:Wo,all:Wo,on:Wo,cut:Wo,cuts:Wo,save:Wo,saved:Wo,saves:Wo,make:Wo,makes:Wo,made:Wo,minus:Wo,plus:Wo,than:Wo,another:Wo,versus:Wo,neither:Wo,favorite:Wo,best:Wo,daily:Wo,weekly:Wo,linear:Wo,binary:Wo,mobile:Wo,lexical:Wo,technical:Wo,computer:Wo,scientific:Wo,formal:Wo},afterWords:{of:Wo,system:Wo,aid:Wo,method:Wo,utility:Wo,tool:Wo,reform:Wo,therapy:Wo,philosophy:Wo,room:Wo,authority:Wo,says:Wo,said:Wo,wants:Wo,wanted:Wo}};const Jo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Lo={beforeTags:Object.assign({},$o.beforeTags,Mo.beforeTags,Jo.beforeTags),afterTags:Object.assign({},$o.afterTags,Mo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Mo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Mo.afterWords)};const qo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ko={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Uo={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Ro={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var _o={beforeTags:Object.assign({},$o.beforeTags,qo),afterTags:Object.assign({},$o.afterTags,Ko),beforeWords:Object.assign({},$o.beforeWords,Uo),afterWords:Object.assign({},$o.afterWords,Ro)};const Qo="Infinitive";var Zo={beforeTags:{Modal:Qo,Adverb:Qo,Negative:Qo,Plural:Qo},afterTags:{Determiner:Qo,Adverb:Qo,Possessive:Qo,Preposition:Qo},beforeWords:{i:Qo,we:Qo,you:Qo,they:Qo,to:Qo,please:Qo,will:Qo,have:Qo,had:Qo,would:Qo,could:Qo,should:Qo,do:Qo,did:Qo,does:Qo,can:Qo,must:Qo,us:Qo,me:Qo,he:Qo,she:Qo,it:Qo,being:Qo},afterWords:{the:Qo,me:Qo,you:Qo,him:Qo,her:Qo,them:Qo,it:Qo,a:Qo,an:Qo,up:Qo,down:Qo,by:Qo,out:Qo,off:Qo,under:Qo,when:Qo,all:Qo,to:Qo,because:Qo,although:Qo,before:Qo,how:Qo,otherwise:Qo,together:Qo,though:Qo,yet:Qo}};const Yo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xo={beforeTags:Object.assign({},$o.beforeTags,Zo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},$o.afterTags,Zo.afterTags,Yo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Zo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Zo.afterWords,{to:void 0})};const ei={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ti={},ni={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ri={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ai={beforeTags:Object.assign({},So.beforeTags,Mo.beforeTags,ei),afterTags:Object.assign({},So.afterTags,Mo.afterTags,ti),beforeWords:Object.assign({},So.beforeWords,Mo.beforeWords,ni),afterWords:Object.assign({},So.afterWords,Mo.afterWords,ri)};var oi={beforeTags:Object.assign({},Zo.beforeTags,Mo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Zo.afterTags,Mo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Zo.beforeWords,Mo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Zo.afterWords,Mo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ii="Person";var si={beforeTags:{Honorific:ii,Person:ii,Preposition:ii},afterTags:{Person:ii,ProperNoun:ii,Verb:ii},ownTags:{ProperNoun:ii},beforeWords:{hi:ii,hey:ii,yo:ii,dear:ii,hello:ii},afterWords:{said:ii,says:ii,told:ii,tells:ii,feels:ii,felt:ii,seems:ii,thinks:ii,thought:ii,spends:ii,spendt:ii,plays:ii,played:ii,sing:ii,sang:ii,learn:ii,learned:ii,wants:ii,wanted:ii}};const li="Month",ui={beforeTags:{Date:li,Value:li},afterTags:{Date:li,Value:li},beforeWords:{by:li,in:li,on:li,during:li,after:li,before:li,between:li,until:li,til:li,sometime:li,of:li,this:li,next:li,last:li,previous:li,following:li},afterWords:{sometime:li,in:li,of:li,until:li,the:li}};var ci={beforeTags:Object.assign({},si.beforeTags,ui.beforeTags),afterTags:Object.assign({},si.afterTags,ui.afterTags),beforeWords:Object.assign({},si.beforeWords,ui.beforeWords),afterWords:Object.assign({},si.afterWords,ui.afterWords)};const hi={Place:"Place"},di={Place:"Place",Abbreviation:"Place"},mi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},pi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let gi="Unit";const fi="Honorific";let vi={first:fi,general:fi,royal:fi,vice:fi,rear:fi,major:fi};const bi={"Adj|Gerund":Ho,"Adj|Noun":Lo,"Adj|Past":_o,"Adj|Present":Xo,"Noun|Verb":oi,"Noun|Gerund":ai,"Person|Noun":{beforeTags:Object.assign({},Mo.beforeTags,si.beforeTags),afterTags:Object.assign({},Mo.afterTags,si.afterTags),beforeWords:Object.assign({},Mo.beforeWords,si.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Mo.afterWords,si.afterWords)},"Person|Date":ci,"Person|Verb":{beforeTags:Object.assign({},si.beforeTags,Zo.beforeTags),afterTags:Object.assign({},si.afterTags,Zo.afterTags),beforeWords:Object.assign({},si.beforeWords,Zo.beforeWords),afterWords:Object.assign({},si.afterWords,Zo.afterWords)},"Person|Place":{beforeTags:Object.assign({},hi,si.beforeTags),afterTags:Object.assign({},di,si.afterTags),beforeWords:Object.assign({},mi,si.beforeWords),afterWords:Object.assign({},pi,si.afterWords)},"Unit|Noun":{beforeTags:{Value:gi},afterTags:{},beforeWords:{per:gi,every:gi,each:gi,square:gi,cubic:gi,sq:gi,metric:gi},afterWords:{per:gi,squared:gi,cubed:gi,long:gi}},"Honorific|Noun":{beforeTags:{Honorific:fi,ProperNoun:fi,Ordinal:fi},afterTags:{Person:fi,ProperNoun:fi},beforeWords:Object.assign({},vi,{honorable:fi,honourable:fi,worship:fi,excellency:fi,majesty:fi,right:fi}),afterWords:vi}},yi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};bi["Plural|Verb"]={beforeWords:yi(bi["Noun|Verb"].beforeWords,{}),afterWords:yi(bi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:yi(bi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:yi(bi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var wi=bi;const Pi="Adjective",ki="Infinitive",Ai="PresentTense",Ni="Singular",ji="PastTense",xi="Adverb",Ei="Plural",Ii="Verb",Gi="LastName",Ti="Participle";var Di=[null,null,{ea:Ni,ia:"Noun",ic:Pi,ly:xi,"'n":Ii,"'t":Ii},{oed:ji,ued:ji,xed:ji," so":xi,"'ll":"Modal","'re":"Copula",azy:Pi,eer:"Noun",end:Ii,ped:ji,ffy:Pi,ify:ki,ing:"Gerund",ize:ki,ibe:ki,lar:Pi,mum:Pi,nes:Ai,nny:Pi,ous:Pi,que:Pi,rol:Ni,sis:Ni,ogy:Ni,oid:Ni,ian:Ni,zes:Ai,eld:ji,ken:Ti,ven:Ti,ten:Ti,ect:ki,ict:ki,ign:ki,ful:Pi,bal:Pi},{amed:ji,aped:ji,ched:ji,lked:ji,rked:ji,reed:ji,nded:ji,mned:Pi,cted:ji,dged:ji,ield:Ni,akis:Gi,cede:ki,chuk:Gi,czyk:Gi,ects:Ai,ends:Ii,enko:Gi,ette:Ni,wner:Ni,fies:Ai,fore:xi,gate:ki,gone:Pi,ices:Ei,ints:Ei,ruct:ki,ines:Ei,ions:Ei,less:Pi,llen:Pi,made:Pi,nsen:Gi,oses:Ai,ould:"Modal",some:Pi,sson:Gi,tion:Ni,tage:"Noun",ique:Ni,tive:Pi,tors:"Noun",vice:Ni,lier:Ni,fier:Ni,wned:ji,gent:Ni,tist:Ni,pist:Ni,rist:Ni,mist:Ni,yist:Ni,vist:Ni,lite:Ni,site:Ni,rite:Ni,mite:Ni,bite:Ni,mate:Ni,date:Ni,ndal:Ni,vent:Ni,uist:Ni,gist:Ni,note:Ni,cide:Ni,wide:Pi,vide:ki,ract:ki,duce:ki,pose:ki,eive:ki,lyze:ki,lyse:ki,iant:Pi,nary:Pi},{elist:Ni,holic:Ni,phite:Ni,tized:ji,urned:ji,eased:ji,ances:Ei,bound:Pi,ettes:Ei,fully:xi,ishes:Ai,ities:Ei,marek:Gi,nssen:Gi,ology:"Noun",osome:Ni,tment:Ni,ports:Ei,rough:Pi,tches:Ai,tieth:"Ordinal",tures:Ei,wards:xi,where:xi,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Ni,scent:Ni,onist:Ni,anist:Ni,alist:Ni,olist:Ni,icist:Ni,ounce:ki,iable:Pi,borne:Pi,gnant:Pi,inant:Pi,igent:Pi,atory:Pi,rient:Ni,dient:Ni},{auskas:Gi,parent:Ni,cedent:Ni,ionary:Ni,cklist:Ni,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Gi,borough:"Place",sdottir:Gi}];const Ci="Adjective";var Oi=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Ci,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Ci,tele:"Noun","pro-":Ci,"mis-":"Verb","dis-":"Verb","pre-":Ci},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Ci,radio:"Noun",tetra:"Noun","omni-":Ci,"post-":Ci},{pseudo:Ci,"extra-":Ci,"hyper-":Ci,"inter-":Ci,"intra-":Ci,"deca-":Ci},{electro:"Noun"}];const Vi="Adjective",Bi="Infinitive",zi="PresentTense",$i="Singular",Fi="PastTense",Si="Expression",Hi="LastName";var Wi={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Hi],[/.[^aeiou]ica$/,$i,"harmonica"],[/^([hyj]a+)+$/,Si,"haha"]],c:[[/.[^aeiou]ic$/,Vi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Fi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Fi,"rammed"],[/.[aeiou][sg]hed$/,Fi,"gushed"],[/.[aeiou]red$/,Fi,"hired"],[/.[aeiou]r?ried$/,Fi,"hurried"],[/[^aeiou]ard$/,$i,"steward"],[/[aeiou][^aeiou]id$/,Vi,""],[/.[vrl]id$/,Vi,"livid"],[/..led$/,Fi,"hurled"],[/.[iao]sed$/,Fi,""],[/[aeiou]n?[cs]ed$/,Fi,""],[/[aeiou][rl]?[mnf]ed$/,Fi,""],[/[aeiou][ns]?c?ked$/,Fi,"bunked"],[/[aeiou]gned$/,Fi],[/[aeiou][nl]?ged$/,Fi],[/.[tdbwxyz]ed$/,Fi],[/[^aeiou][aeiou][tvx]ed$/,Fi],[/.[cdflmnprstv]ied$/,Fi,"emptied"]],e:[[/.[lnr]ize$/,Bi,"antagonize"],[/.[^aeiou]ise$/,Bi,"antagonise"],[/.[aeiou]te$/,Bi,"bite"],[/.[^aeiou][ai]ble$/,Vi,"fixable"],[/.[^aeiou]eable$/,Vi,"maleable"],[/.[ts]ive$/,Vi,"festive"],[/[a-z]-like$/,Vi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Vi,"cornish"],[/.v[iy]ch$/,Hi,"..ovich"],[/^ug?h+$/,Si,"ughh"],[/^uh[ -]?oh$/,Si,"uhoh"],[/[a-z]-ish$/,Vi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Hi,"polish-male"]],k:[[/^(k){2}$/,Si,"kkkk"]],l:[[/.[gl]ial$/,Vi,"familial"],[/.[^aeiou]ful$/,Vi,"fitful"],[/.[nrtumcd]al$/,Vi,"natal"],[/.[^aeiou][ei]al$/,Vi,"familial"]],m:[[/.[^aeiou]ium$/,$i,"magnesium"],[/[^aeiou]ism$/,$i,"schism"],[/^[hu]m+$/,Si,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Vi,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Si,"noooo"],[/^(yo)+$/,Si,"yoo"],[/^wo{2,}[pt]?$/,Si,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,$i],[/[^i]fer$/,Bi],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Vi],[/[aeiou].*ist$/,Vi],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,zi],[/.[rln]ates$/,zi],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,$i],[/.[aeiou]sks$/,zi],[/.[aeiou]kes$/,zi],[/[aeiou][^aeiou]is$/,$i],[/[a-z]'s$/,"Noun"],[/^yes+$/,Si]],v:[[/.[^aeiou][ai][kln]ov$/,Hi]],y:[[/.[cts]hy$/,Vi],[/.[st]ty$/,Vi],[/.[tnl]ary$/,Vi],[/.[oe]ry$/,$i],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Vi],[/...lly$/,"Adverb"],[/.[gk]y$/,Vi],[/[bszmp]{2}y$/,Vi],[/.[ai]my$/,Vi],[/[ea]{2}zy$/,Vi],[/.[^aeiou]ity$/,$i]]};const Mi="Verb",Ji="Noun";var Li={leftTags:[["Adjective",Ji],["Possessive",Ji],["Determiner",Ji],["Adverb",Mi],["Pronoun",Mi],["Value",Ji],["Ordinal",Ji],["Modal",Mi],["Superlative",Ji],["Demonym",Ji],["Honorific","Person"]],leftWords:[["i",Mi],["first",Ji],["it",Mi],["there",Mi],["not",Mi],["because",Ji],["if",Ji],["but",Ji],["who",Mi],["this",Ji],["his",Ji],["when",Ji],["you",Mi],["very","Adjective"],["old",Ji],["never",Mi],["before",Ji],["a","Singular"],["the",Ji],["been",Mi]],rightTags:[["Copula",Ji],["PastTense",Ji],["Conjunction",Ji],["Modal",Ji]],rightWords:[["there",Mi],["me",Mi],["man","Adjective"],["only",Mi],["him",Mi],["it",Mi],["were",Ji],["took",Ji],["himself",Mi],["went",Ji],["who",Ji],["jr","Person"]]},qi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ki={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Ui={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Ri={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},_i={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Qi=/^.([0-9]+)/;var Zi=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Qi);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Qi,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},Xi=/^([0-9]+)/,es=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Xi);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Xi,"")]}(n[0],n[1])}))};var ts=function(e={}){return(e=Object.assign({},e)).rules=es(e.rules),e.rules=Yi(e.rules),e.rev&&(e.rev=es(e.rev),e.rev=Yi(e.rev)),e.exceptions=es(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e};var ns=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const rs=ts({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),as=ts(Ri),os=ts(Ki),is=ts(Ui),ss=ns(rs),ls=ns(as),us=ns(os),cs=ns(is),hs=ts(qi),ds=ts(_i);var ms={fromPast:rs,fromPresent:as,fromGerund:os,fromParticiple:is,toPast:ss,toPresent:ls,toGerund:us,toParticiple:cs,toComparative:hs,toSuperlative:ds,fromComparative:ns(hs),fromSuperlative:ns(ds)},ps=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),gs=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var fs=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(bs[t].forEach((n=>e[n]=t)),e)),{});var ys=bs;var ws=function(e){let t=e.substring(e.length-3);if(!0===ys.hasOwnProperty(t))return ys[t];let n=e.substring(e.length-2);return!0===ys.hasOwnProperty(n)?ys[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ps={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var ks=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=ws(e)),Ps.hasOwnProperty(e))c=Ps[e];else if("Participle"===n)c=Zi(l,i);else if("PastTense"===n)c=Zi(l,r);else if("PresentTense"===n)c=Zi(l,a);else{if("Gerund"!==n)return e;c=Zi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var As=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Zi(i,n),PresentTense:Zi(i,r),Gerund:Zi(i,a),FutureTense:"will "+e},u=Zi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var Ns={toInfinitive:ks,conjugate:As,all:function(e,t){let n=As(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};var js=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const xs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Es={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Is=function(e){if(Es.hasOwnProperty(e))return Es[e];let t=js(e,xs);return t||e+"ly"};const Gs=function(e,t){const n=t.two.models.toSuperlative;return Zi(e,n)},Ts=function(e,t){const n=t.two.models.toComparative;return Zi(e,n)},Ds="ically",Cs=new Set(["analyt"+Ds,"chem"+Ds,"class"+Ds,"clin"+Ds,"crit"+Ds,"ecolog"+Ds,"electr"+Ds,"empir"+Ds,"frant"+Ds,"grammat"+Ds,"ident"+Ds,"ideolog"+Ds,"log"+Ds,"mag"+Ds,"mathemat"+Ds,"mechan"+Ds,"med"+Ds,"method"+Ds,"method"+Ds,"mus"+Ds,"phys"+Ds,"phys"+Ds,"polit"+Ds,"pract"+Ds,"rad"+Ds,"satir"+Ds,"statist"+Ds,"techn"+Ds,"technolog"+Ds,"theoret"+Ds,"typ"+Ds,"vert"+Ds,"whims"+Ds]),Os=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Vs=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Bs={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var zs=function(e){return e.endsWith("ly")?Cs.has(e)?e.replace(/ically/,"ical"):Vs.has(e)?null:Bs.hasOwnProperty(e)?Bs[e]:js(e,Os)||e:null};const $s=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Fs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Ss=new Set(["terrible","annoying"]);var Hs={toSuperlative:Gs,toComparative:Ts,toAdverb:Is,toNoun:function(e){if(Fs.hasOwnProperty(e))return Fs[e];if(Ss.has(e))return null;let t=js(e,$s);return t||e+"ness"},fromAdverb:zs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Zi(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Zi(e,n)},all:function(e,t){let n=[e];return n.push(Gs(e,t)),n.push(Ts(e,t)),n.push(Is(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Ws={noun:vs,verb:Ns,adjective:Hs},Ms={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Js=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Ms.hasOwnProperty(i)&&Ms[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var Ls=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Us.find((t=>e.endsWith(t)))},_s={two:{quickSplit:Ls,expandLexicon:Js,transform:Ws,looksPlural:Rs}};var Qs=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const Zs=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var Ys=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Zs(n,"Infinitive","PastTense"),Object.assign(s,l),l=Zs(r,"Infinitive","Verb"),Object.assign(s,l),l=Zs(a,"Infinitive","Gerund"),Object.assign(s,l),l=Zs(o,"Adjective","Superlative"),Object.assign(s,l),l=Zs(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Xs={two:{models:ms}};const el={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},tl=function(e,t){const n={model:t,methods:_s};let{lex:r,_multi:a}=_s.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},nl=function(e,t,n){let r=As(e,Xs);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},rl=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=el[o],"Noun|Verb"!==o&&"Person|Verb"!==o||nl(a,r,!1),"Adj|Present"===o&&(nl(a,r,!0),function(e,t,n){let r=Gs(e,n);t[r]=t[r]||"Superlative";let a=Ts(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=ks(a,Xs,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=ks(a,Xs,"PastTense");r[e]||(n[e]="Infinitive")}})),t=tl(n,t)};var al=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=tl(e.one.lexicon,e)).one.lexicon,e),e=rl(e.two.switches,e),e=Ys(e),e=Qs(e)};let ol={one:{_multiCache:{},lexicon:Oo},two:{irregularPlurals:wo,models:ms,suffixPatterns:Di,prefixPatterns:Oi,endsWith:Wi,neighbours:Li,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Vo,clues:wi,uncountable:{},orgWords:ps}};ol=al(ol);var il=ol;const sl=/^(under|over|mis|re|un|dis|semi)-?/;var ll=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(sl.test(a.normal)){let e=a.normal.replace(sl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var ul=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const cl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var hl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(Rs(e.normal)?ul(e,"Plural","3-plural-guess"):ul(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ws(e.normal);t&&ul(e,t,"3-verb-tense-guess")}}(r)};const dl=/^\p{Lu}[\p{Ll}'’]/u,ml=/[0-9]/,pl=["Date","Month","WeekDay","Unit"],gl=/^[IVXLCDM]{2,}$/,fl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,vl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var bl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===dl.test(o)&&!1===ml.test(o)?pl.find((e=>r.tags.has(e)))?null:(hl(e,t,n),r.tags.has("Noun")||r.tags.clear(),ul(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&gl.test(o)&&fl.test(o)&&!vl[r.normal]?(ul(r,"RomanNumeral","2-xvii"),!0):null};const yl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var wl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=yl(r.normal,n.two.suffixPatterns);if(null!==e)return ul(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=yl(r.implicit,n.two.suffixPatterns),null!==e))return ul(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Pl=/['‘’‛‵′`´]/,kl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ul(r,e,"2-prefix"),r.confidence=.5,!0}return null};const jl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),xl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!jl.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},El=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},Il=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Gl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(xl(a)||xl(o))return ul(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(El(a)||El(o))return ul(n,"Year","2-tagYear-close");if(Il(e[t-2])||Il(e[t+2]))return ul(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ul(n,"Year","2-tagYear-noun")}}}return null};const Tl=/^[A-Z]('s|,)?$/,Dl=/^[A-Z-]+$/,Cl=/([A-Z]\.)+[A-Z]?,?$/,Ol=/[A-Z]{2,}('s|,)?$/,Vl=/([a-z]\.)+[a-z]\.?$/,Bl={I:!0,A:!0};var zl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Dl.test(n)||n.length>5||Bl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Cl.test(n)&&!0!==Vl.test(n)&&!0!==Tl.test(n)&&!0!==Ol.test(n))}(r,n)?(r.tags.clear(),ul(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Bl.hasOwnProperty(r.text)&&Tl.test(r.text)?(r.tags.clear(),ul(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ul(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Dl.test(r.text)&&r.text.length<=6?(ul(r,"Acronym","3-titlecase-acronym"),!0):null};const $l=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Fl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Sl=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||$l(e[t-1],a),l=l||$l(e[t+1],o),l=l||Fl(e[t-1],r),l=l||Fl(e[t+1],i),l)return ul(s,l,"3-[neighbour]"),hl(e,t,n),e[t].confidence=.2,!0}return null};const Hl=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Wl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Hl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Hl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Ml=function(e,t,n){0===e[t].tags.size&&(ul(e[t],"Noun","3-[fallback]"),hl(e,t,n),e[t].confidence=.1)};const Jl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ll=(e,t,n)=>0!==t||e[1]?null:n,ql={"Adj|Gerund":(e,t)=>Jl(e,t),"Adj|Noun":(e,t)=>Jl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Jl(e,t),"Adj|Present":(e,t)=>Jl(e,t),"Noun|Gerund":(e,t)=>Jl(e,t),"Noun|Verb":(e,t)=>Jl(e,t)||Ll(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Jl(e,t)||Ll(e,t,"PresentTense"),"Person|Noun":(e,t)=>Jl(e,t),"Person|Verb":(e,t)=>0!==t?Jl(e,t):null};var Kl=ql;const Ul="undefined"!=typeof process&&process.env?process.env:self.env||{},Rl=/^(under|over|mis|re|un|dis|semi)-?/,_l=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Ul.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ql=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&Ul.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var Zl=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Rl.test(l)&&!o[l]&&(l=l.replace(Rl,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=_l(e[t+1],n.afterWords);return o=o||_l(e[t-1],n.beforeWords),o=o||Ql(e[t-1],n.beforeTags,a),o=o||Ql(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Kl[o]&&(u=Kl[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),hl(e,t,r)):Ul.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};var Yl=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ul(o,"Verb","3-[prefix]"),ul(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ul(o,"Adjective","3-[prefix]"),ul(o,"Prefix","3-[prefix]")))};const Xl={tagSwitch:ll,checkSuffix:wl,checkRegex:Al,checkCase:bl,checkPrefix:Nl,checkHyphen:Yl,checkYear:Gl},eu={checkAcronym:zl,neighbours:Sl,orgWords:Wl,nounFallback:Ml,switches:Zl},tu=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var ou=function(e){const t=e.world,n=Object.keys(au);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=vu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=fu};var yu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const wu=/'/;var Pu=function(e,t){let n=e[t].normal.split(wu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const ku=/'/;var Au=function(e,t){let n=e[t].normal.split(ku)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var Nu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const ju={that:!0,there:!0,let:!0,here:!0,everywhere:!0},xu={in:!0,by:!0,for:!0};var Eu=(e,t)=>{let n=e[t];if(ju.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===xu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Iu=/'/,Gu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Tu={d:(e,t)=>Au(e,t),t:(e,t)=>Nu(e,t),s:(e,t,n)=>Eu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Pu(e,t)},Du=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Cu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Iu.test(r[o].normal)&&([,i]=r[o].normal.split(Iu));let s=null;Tu.hasOwnProperty(i)&&(s=Tu[i](r,o,t)),s&&(s=Du(s,e),yu(n,[a,o],s),Gu(n[a],e,o,s.length))}}))}},Ou={compute:Cu,api:bu,hooks:["contractionTwo"]};const Vu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const Bu=["i","we","they"];let zu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Vu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Vu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Vu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Bu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Bu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Bu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let $u=null;var Fu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;$u=$u||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep($u),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Su={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Fu,model:{two:{matches:zu}},hooks:["postTagger"]};var Hu=Su;var Wu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var Mu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Wu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Ju={lib:{lazy:Mu}};var Lu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var qu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Lu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Ku={api:function(e){e.prototype.swap=qu}};v.plugin(mu),v.plugin(Ou),v.plugin(Hu),v.plugin(Ju),v.plugin(Ku);var Uu=function(e){let t=this.if("@hasComma").ifNo("@hasComma @hasComma").ifNo("@hasComma (and|or) .").ifNo("(#City && @hasComma) #Country").ifNo("(#WeekDay && @hasComma) #Date").ifNo("(#Date+ && @hasComma) #Value").ifNo("@hasComma (too|also)$").match("@hasComma"),n=this.splitAfter(t),r=n.if("#Copula #Adjective #Conjunction (#Pronoun|#Determiner) #Verb").match("#Conjunction");n=n.splitBefore(r);let a=n.if("if .{2,9} then .").match("then");n=n.splitBefore(a),n=n.splitBefore("as well as ."),n=n.splitBefore("such as ."),n=n.splitBefore("in addition to ."),n=n.splitAfter("@hasSemicolon"),n=n.splitAfter("@hasDash");let o=n.filter((e=>e.wordCount()>5&&e.match("#Verb+").length>=2));if(o.found){let e=o.splitAfter("#Noun .* #Verb .* #Noun+");n=n.splitOn(e.eq(0))}return"number"==typeof e&&(n=n.get(e)),n};var Ru=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r};var _u=function(e){e.prototype.chunks=Ru,e.prototype.clauses=Uu};const Qu={this:"Noun",then:"Pivot"};var Zu=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))};var oc={chunks:function(e){const{document:t,world:n}=e;Zu(t),Yu(t),tc(e,t,n),rc(t),ac(t)}},ic={compute:oc,api:_u,hooks:["chunks"]};const sc=/'s$/;var lc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(sc,""),e.normal=e.normal.replace(sc,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const uc=/\(/,cc=/\)/,hc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(uc,"");let t=e[e.length-1];t.post=t.post.replace(cc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const mc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},pc=RegExp("("+Object.keys(mc).join("|")+")"),gc=RegExp("("+Object.values(mc).join("|")+")"),fc=function(e,t){const n=e[t].pre.match(pc)[0]||"";if(!n||!mc[n])return null;const r=mc[n];for(;t{e[0].pre=e[0].pre.replace(pc,"");let t=e[e.length-1];t.post=t.post.replace(gc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const bc=/\./g;var yc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(bc,""),e.normal=e.normal.replace(bc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(bc,""),e.normal=e.normal.replace(bc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}};var wc=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const Pc=(e,t)=>"number"==typeof t?e.eq(t):e,kc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var Ac=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=kc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return Pc(this,e).map((e=>{let o=kc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return Pc(this,e).map((e=>{let n=kc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return Pc(this,e).map((e=>{let n=kc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return Pc(this,e).map((e=>{let n=kc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return Pc(this,e).map((e=>{let n=kc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=Pc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=Pc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=Pc(t,e),new Adjectives(t.document,t.pointer)}};const Nc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},jc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let xc=[["emojis","emoji"],["atmentions","atMentions"]];var Ec=function(e){jc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=Nc,xc.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},Ic={api:function(e){Ec(e),lc(e),dc(e),vc(e),Ac(e),wc(e),yc(e)}};const Gc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Tc={case:e=>{Gc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;Gc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{Gc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{Gc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Dc=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Cc="unicode|punctuation|whitespace|acronyms",Oc="|case|contractions|parentheses|quotations|emoji|honorifics",Vc={light:Dc(Cc),medium:Dc(Cc+Oc),heavy:Dc(Cc+Oc+"|possessives|adverbs|nouns|verbs")};var Bc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Vc[e]),Object.keys(e).forEach((t=>{Tc.hasOwnProperty(t)&&Tc[t](this,e[t])})),this}}};var zc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const $c=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Fc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t<$c.length;t+=1)if(e.has($c[t]))return!0;return!1};var Sc=function(e,t){if(e.has("#Plural"))return!0;if(e.has("#Noun and #Noun"))return!0;if(e.has("(we|they)"))return!0;if(!0===t.has("(#Pronoun|#Place|#Value|#Person|#Uncountable|#Month|#WeekDay|#Holiday|#Possessive)"))return!1;if(e.has("#Singular"))return!1;let n=t.text("normal");return n.length>3&&n.endsWith("s")&&!n.endsWith("ss")};var Hc=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:Sc(e,t),isSubordinate:Fc(e),root:t}};const Wc=e=>e.text(),Mc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Jc=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var Lc=function(e){let t=Hc(e);return{root:Wc(t.root),number:Jc(t.number),determiner:Wc(t.determiner),adjectives:Mc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const qc={tags:!0};var Kc=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,qc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",qc),e};const Uc={tags:!0};var Rc=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Uc).tag("Singular","toPlural"),e};const _c=(e,t)=>"number"==typeof t?e.eq(t):e;var Qc=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return _c(this,e).map(Hc)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Lc(t)),n}),[])}isPlural(e){let t=this.filter((e=>Hc(e).isPlural));return _c(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=Hc(e).adjectives;n.found&&(t=t.concat(n))})),_c(t,e)}toPlural(e){return _c(this,e).map((e=>Kc(e,Hc(e))))}toSingular(e){return _c(this,e).map((e=>{let t=Hc(e);return Rc(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=zc(this);return t=_c(t,e),new Nouns(this.document,t.pointer)}},Zc={api:Qc};var Yc=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n};var Xc=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(eh.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(eh.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(eh.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var nh=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const ah=/^([0-9,. ]+)\/([0-9,. ]+)$/,oh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},ih=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var sh=function(e){if(!0===oh.hasOwnProperty(e))return oh[e];if("a"===e||"an"===e)return 1;const t=Xc(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=uh(n),r=uh(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:uh(n);let a=r.text("reduced");return lh.test(a)&&(a=a.replace(lh,""),r=r.replaceWith(a)),r=ch.hasOwnProperty(a)?ch[a]:uh(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:uh(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t};var dh=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const mh=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],ph=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],gh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],fh=function(e){let t=[];if(e>100)return t;for(let n=0;n=mh[n][1]&&(e-=mh[n][1],t.push(mh[n][0]));return ph[e]&&t.push(ph[e]),t};var vh=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=dh(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return gh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(fh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=dh(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")};var bh=function(e){if(!e.numerator||!e.denominator)return"";return`${vh({num:e.numerator})} out of ${vh({num:e.denominator})}`};const yh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var wh=e=>{let t=vh(e).split(" "),n=t[t.length-1];return yh.hasOwnProperty(n)?t[t.length-1]=yh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var Ph=function(e){if(!e.numerator||!e.denominator)return"";let t=vh({num:e.numerator}),n=wh({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const kh=(e,t)=>"number"==typeof t?e.eq(t):e;var Ah=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return kh(this,e).map(hh)}get(e){return kh(this,e).map(hh)}json(e){return kh(this,e).map((t=>{let n=t.toView().json(e)[0],r=hh(t);return n.fraction=r,n}),[])}toDecimal(e){return kh(this,e).forEach((e=>{let{decimal:t}=hh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return kh(this,e).forEach((e=>{let t=hh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return kh(this,e).forEach((e=>{let t=hh(e),n=Ph(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return kh(this,e).forEach((e=>{let t=hh(e),n=bh(t);e.replaceWith(n)})),this}toPercentage(e){return kh(this,e).forEach((e=>{let{decimal:t}=hh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=Yc(this);return t=kh(t,e),new Fractions(this.document,t.pointer)}};const Nh="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var jh=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+Nh+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+Nh+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+Nh+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+Nh+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${Nh})`),r=e.has("("+Nh+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+Nh+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+Nh+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var xh=function(e){if("string"==typeof e)return{num:sh(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=hh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=sh(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}};var Eh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=dh(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Ih={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},Gh={"%":"percent","°":"degrees"};var Th=function(e){let t={suffix:"",prefix:e.prefix};return Ih.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Ih[e.prefix],t.prefix=""),Gh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+Gh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var Dh=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Th(e);return t+wh(e)+n}if("Ordinal"===t)return e.prefix+Eh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Th(e);return t+vh(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Ch=(e,t)=>"number"==typeof t?e.eq(t):e;var Oh=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Ch(this,e).map(xh)}get(e){return Ch(this,e).map(xh).map((e=>e.num))}json(e){return Ch(this,e).map((t=>{let n=t.toView().json(e)[0],r=xh(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=xh(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Dh(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=xh(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Dh(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=xh(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Dh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=xh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Dh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=xh(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Dh(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>xh(t).num===e))}greaterThan(e){return this.filter((t=>xh(t).num>e))}lessThan(e){return this.filter((t=>xh(t).num{let r=xh(n).num;return r>e&&r{let n=xh(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Dh(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=xh(e).num);let t=this.map((t=>{let n=xh(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Dh(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=jh(this);return t=Ch(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=jh(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=Ch(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=jh(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=Ch(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var Vh={api:function(e){Ah(e),Oh(e)}};const Bh={people:!0,emails:!0,phoneNumbers:!0,places:!0},zh=function(e={}){return!1!==(e=Object.assign({},Bh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},$h={api:function(e){e.prototype.redact=zh}};var Fh=$h;var Sh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))};var Hh=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};var Wh=function(e){let t=e.clauses(),n=Hh(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o}};var Mh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e};var Jh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e};var Lh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!e.lookBehind("to$").found&&(!!e.has("#Copula #Gerund")||!e.has("#Gerund")&&(!!e.has("#Copula")||!(e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found)))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e};var qh=function(e){return e.verbs().toInfinitive(),e};const Kh=(e,t)=>"number"==typeof t?e.eq(t):e;var Uh=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o}=Wh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal")},n}),[])}toPastTense(e){return Kh(this,e).map((e=>(Wh(e),Mh(e))))}toPresentTense(e){return Kh(this,e).map((e=>(Wh(e),Jh(e))))}toFutureTense(e){return Kh(this,e).map((e=>(Wh(e),e=Lh(e))))}toInfinitive(e){return Kh(this,e).map((e=>(Wh(e),qh(e))))}toNegative(e){return Kh(this,e).map((e=>(Wh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return Kh(this,e).map((e=>(Wh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return Kh(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return Kh(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=Kh(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=Sh(this);return Kh(t,e)}};Object.assign(e.prototype,t)},Rh={api:Uh};var _h=function(e){return e.match("#Honorific+? #Person+")};var Qh=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Zh="male",Yh="female",Xh={mr:Zh,mrs:Yh,miss:Yh,madam:Yh,king:Zh,queen:Yh,duke:Zh,duchess:Yh,baron:Zh,baroness:Yh,count:Zh,countess:Yh,prince:Zh,princess:Yh,sire:Zh,dame:Yh,lady:Yh,ayatullah:Zh,congressman:Zh,congresswoman:Yh,"first lady":Yh,mx:null};var ed=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return Yh;if(n.has("#MaleName"))return Zh;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Xh.hasOwnProperty(e))return Xh[e];if(/^her /.test(e))return Yh;if(/^his /.test(e))return Zh}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Zh;if(n&&!t)return Yh}return null};const td=(e,t)=>"number"==typeof t?e.eq(t):e;var nd=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return td(this,e).map(Qh)}json(e){return td(this,e).map((t=>{let n=t.toView().json(e)[0],r=Qh(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:ed(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=_h(this);return t=td(t,e),new People(this.document,t.pointer)}};var rd=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||(!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found))),t=t.splitAfter(n),t};var ad=function(e){e.prototype.places=function(t){let n=rd(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var od=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const id=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var sd=function(e){e.prototype.topics=id};var ld={api:function(e){nd(e),ad(e),od(e),sd(e)}};var ud=function(e){let t=e.match("");t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0);let n=t.match("(#PresentTense|#PastTense) #Infinitive");return n.found&&!n.has("^go")&&(t=t.splitBefore("(#PresentTense|#PastTense) [#Infinitive]",0)),t=t.not("#Reflexive$"),t=t.if("#Verb"),t};var cd=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t};var hd=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const dd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},md=function(e){return e.match("#Negative")},pd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var gd=function(e){let t=e.clone();t.contractions().expand();const n=cd(t);return{root:n,prefix:t.match("#Prefix"),adverbs:hd(t,n),auxiliary:dd(t,n),negative:md(t),phrasal:pd(n)}};const fd={tense:"PresentTense"},vd={conditional:!0},bd={tense:"FutureTense"},yd={progressive:!0},wd={tense:"PastTense"},Pd={complete:!0,progressive:!1},kd={passive:!0},Ad=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Nd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[fd]],["^wanted to #Infinitive$",[wd]],["^will want to #Infinitive$",[bd]]],"gerund-phrase":[["^#PastTense #Gerund$",[wd]],["^#PresentTense #Gerund$",[fd]],["^#Infinitive #Gerund$",[fd]],["^will #Infinitive #Gerund$",[bd]],["^have #PastTense #Gerund$",[wd]],["^will have #PastTense #Gerund$",[wd]]],"simple-present":[["^#PresentTense$",[fd]],["^#Infinitive$",[fd]]],"simple-past":[["^#PastTense$",[wd]]],"simple-future":[["^will #Adverb? #Infinitive",[bd]]],"present-progressive":[["^(is|are|am) #Gerund$",[fd,yd]]],"past-progressive":[["^(was|were) #Gerund$",[wd,yd]]],"future-progressive":[["^will be #Gerund$",[bd,yd]]],"present-perfect":[["^(has|have) #PastTense$",[wd,Pd]]],"past-perfect":[["^had #PastTense$",[wd,Pd]],["^had #PastTense to #Infinitive",[wd,Pd]]],"future-perfect":[["^will have #PastTense$",[bd,Pd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[wd,yd]]],"past-perfect-progressive":[["^had been #Gerund$",[wd,yd]]],"future-perfect-progressive":[["^will have been #Gerund$",[bd,yd]]],"passive-past":[["(got|were|was) (#PastTense|#Participle)",[wd,kd]],["^(was|were) being (#PastTense|#Participle)",[wd,kd]],["^(had|have) been (#PastTense|#Participle)",[wd,kd]]],"passive-present":[["^(is|are|am) (#PastTense|#Participle)",[fd,kd]],["^(is|are|am) being (#PastTense|#Participle)",[fd,kd]],["^has been (#PastTense|#Participle)",[fd,kd]]],"passive-future":[["will have been (#PastTense|#Participle)",[bd,kd,vd]],["will be being? (#PastTense|#Participle)",[bd,kd,vd]]],"present-conditional":[["would be #PastTense",[fd,vd]]],"past-conditional":[["would have been #PastTense",[wd,vd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[bd]]],"auxiliary-past":[["^did #Infinitive$",[wd,{plural:!1}]],["^used to #Infinitive$",[wd,Pd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[fd,Pd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[wd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let jd=[];Object.keys(Nd).map((e=>{Nd[e].forEach((t=>{jd.push({name:e,match:t[0],data:Ad(t[1])})}))}));var xd=jd;var Ed=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),Id(r)&&(n.remove(r),r=n.last()),Id(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Gd(t,e)}};const Dd=e=>e,Cd=(e,t)=>{let n=Td(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Od=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Td(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Vd=function(e,t){let n=Td(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Bd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},zd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Bd(e)),r&&e.replace(t.root,r),e},$d=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),Fd=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal))},Sd=function(e){return e&&e.isView?e.text("normal"):""},Hd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Bd(e))};var Wd=function(e){let t=gd(e);e=e.clone().toView();const n=Ed(e,t);return{root:t.root.text(),preAdverbs:Fd(t.adverbs.pre),postAdverbs:Fd(t.adverbs.post),auxiliary:Sd(t.auxiliary),negative:t.negative.found,prefix:Sd(t.prefix),infinitive:Hd(t.root),grammar:n}};const Md={tags:!0};var Jd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Bd(r)),i&&e.replace(r,i,Md).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Vd(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Ld={tags:!0},qd={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Bd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Td(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Ld),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=qd.simple(e,t),e=qd.noAux(e,t))},hasHad:e=>(e.replace("has","had",Ld),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Bd(a)),n(o,e.model).Participle}},Kd={infinitive:qd.simple,"simple-present":qd.simple,"simple-past":Dd,"simple-future":qd.both,"present-progressive":e=>(e.replace("are","were",Ld),e.replace("(is|are|am)","was",Ld),e),"past-progressive":Dd,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":qd.hasHad,"past-perfect":Dd,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=$d(e)),e.remove("have"),e),"present-perfect-progressive":qd.hasHad,"past-perfect-progressive":Dd,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Ld),e),"passive-past":e=>(e.replace("have","had",Ld),e),"passive-present":e=>(e.replace("(is|are)","was",Ld),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Ld),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Dd,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Ld),e),"auxiliary-past":Dd,"auxiliary-present":e=>(e.replace("(do|does)","did",Ld),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Ld):(qd.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Dd,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Ld),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),qd.simple(e,t),$d(e),e)};var Ud=function(e,t,n){return Kd.hasOwnProperty(n)?((e=Kd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Rd={tags:!0},_d=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Bd(a)),!1===Cd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Od(e)),o&&(e=e.replace(a,o,Rd)).not("#Particle").tag("PresentTense"),e},Qd=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Bd(a)),!1===Cd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Rd)).not("#Particle").tag("Gerund"),e},Zd={infinitive:_d,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return _d(e,t);{let t=Td(e).subject;if(Cd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Rd)}return e},"simple-past":_d,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Od(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else _d(e,t),e=e.remove("will");return e},"present-progressive":Dd,"past-progressive":(e,t)=>{let n=Od(e);return e.replace("(were|was)",n,Rd)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(_d(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Td(e).subject;return Cd(e)||n.has("i")?((e=zd(e,t)).remove("had"),e):(e.replace("had","has",Rd),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Dd,"past-perfect-progressive":e=>e.replace("had","has",Rd),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Od(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Rd),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Dd,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Dd,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Qd(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Vd(e);return e.replace(t.auxiliary,n),e}return Qd(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Dd,"modal-infinitive":Dd,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Bd(r)),a&&(e=e.replace(t.root,a,Rd))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),_d(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Cd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Rd),e.remove("will"),e}};var Yd=function(e,t,n){return Zd.hasOwnProperty(n)?((e=Zd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Xd={tags:!0},em=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Bd(r)),o&&(e=e.replace(r,o,Xd)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},tm=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Bd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Xd),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},nm={infinitive:em,"simple-present":em,"simple-past":em,"simple-future":Dd,"present-progressive":tm,"past-progressive":tm,"future-progressive":Dd,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Dd,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Dd,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Dd,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Dd,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Dd,"modal-past":Dd,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),em(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var rm=function(e,t,n){return e.has("will")||e.has("going to")?e:nm.hasOwnProperty(n)?((e=nm[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const am={tags:!0};var om=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Bd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Od(e)} ${s}`,e.replace(a,s,am)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const im={tags:!0},sm=function(e,t){let n=Vd(e);return e.prepend(n+" not"),e},lm=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},um=e=>e.has("(is|was|am|are|will|were|be)"),cm={"simple-present":(e,t)=>!0===um(e)?lm(e):(e=zd(e,t),e=sm(e)),"simple-past":(e,t)=>!0===um(e)?lm(e):((e=zd(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===um(e)?lm(e):sm(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",im),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=sm(e)).replace("wants","want",im)};var hm=function(e,t,n){if(e.has("#Negative"))return e;if(cm.hasOwnProperty(n))return e=cm[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===um(e)?lm(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const dm=(e,t)=>"number"==typeof t?e.eq(t):e;var mm=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return dm(this,e).map(gd)}json(e,t){let n=dm(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Wd(t),n}),[]);return n}subjects(e){return dm(this,e).map((e=>(gd(e),Td(e).subject)))}adverbs(e){return dm(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return dm(this,e).filter((e=>!0!==Td(e).plural))}isPlural(e){return dm(this,e).filter((e=>!0===Td(e).plural))}isImperative(e){return dm(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return dm(this,e).map((e=>{let t=gd(e),n=Ed(e,t);return Jd(e,t,n.form)}))}toPresentTense(e){return dm(this,e).map((e=>{let t=gd(e),n=Ed(e,t);return Yd(e,t,n.form)}))}toPastTense(e){return dm(this,e).map((e=>{let t=gd(e),n=Ed(e,t);return Ud(e,t,n.form)}))}toFutureTense(e){return dm(this,e).map((e=>{let t=gd(e),n=Ed(e,t);return rm(e,t,n.form)}))}toGerund(e){return dm(this,e).map((e=>{let t=gd(e),n=Ed(e,t);return om(e,t,n.form)}))}conjugate(e){return dm(this,e).map((e=>{let t=gd(e),n=Ed(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Jd(e.clone(),t,n.form).text("normal"),PastTense:Ud(e.clone(),t,n.form).text("normal"),PresentTense:Yd(e.clone(),t,n.form).text("normal"),FutureTense:rm(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return dm(this,e).map((e=>{let t=gd(e),n=Ed(e,t);return hm(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=ud(this);return t=dm(t,e),new Verbs(this.document,t.pointer)}},pm={api:mm};v.plugin(ic),v.plugin(Ic),v.plugin(Bc),v.plugin(Zc),v.plugin(Vh),v.plugin(Fh),v.plugin(Rh),v.plugin(ld),v.plugin(pm);export{v as default}; +var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.6.0";var v=f;var b=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},j=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},N=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},x=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?j(n):(j(n),j([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let E=0;const I=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var T=function(e){let[t,n]=e.index||[0,0];E+=1,E=E>46655?0:E,t=t>46655?0:t,n=n>1294?0:n;let r=I(E.toString(36));r+=I(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const C=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},D=e=>"[object Array]"===Object.prototype.toString.call(e),O=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:D(e)?D(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=T(e),e)))}(d),n?(C(t.update([u]).firstTerm()),x(h,u,d,r)):(C(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(B,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},z.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this};var $=z;var H=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const F={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;if(r.has("@hasContraction")&&r.contractions){r.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=H(this.document,i);return o=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};F.delete=F.remove;var S=F;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var M=J;var W={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const L=new Set(["index","sequence","seq","sequential","chron","chronological"]),q=new Set(["freq","frequency","topk","repeats"]),K=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return L.has(e)&&(e="sequential"),K.has(e)&&(e="alpha"),q.has(e)?(a=W.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof W[e]?(a=a.sort(W[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var Q={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}};var _={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const Z=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},V,$,S,M,U,Q,_);var X=function(e){Object.assign(e.prototype,Z)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null};var le=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const me=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,pe=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,ge=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(me);return null!==r?!0===n.tags.has("PhoneNumber")||ge.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(pe),null!==r?[r[1],"to",r[4]]:null)};const ve=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,be=new Set(["st","nd","rd","th","am","pm","max","°","s","e"]);var ye=function(e,t){let n=e[t].text.match(ve);if(null!==n){let e=n[2].toLowerCase().trim();return be.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},je={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},Ne=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=Ne(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&je.hasOwnProperty(l)&&(c=je[l](r,s)),c?(c=xe(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=fe(r,s),c&&(c=xe(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=xe(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var Ie={model:te,compute:{contractions:Ee},hooks:["contractions"]};var Te=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===Ce.test(l)){let e=l.replace(Ce,"");if(i.hasOwnProperty(e)&&e.length>3&&De.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Ge={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var Be={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}};var ze={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Ve}},compute:Ge,lib:Be,hooks:["lexicon"]};var $e=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const He=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const We={buildTrie:function(e){const t=$e(e,this.world());return Me(t)}};We.compile=We.buildTrie;var Le={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:$e(e,this.world));var r;let a=Se(this,n,t);return a=a.settle(),a}},lib:We};const qe=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},Ke=function(e,t){let{ptrs:n,byGroup:r}=e;return n=qe(n,t),Object.keys(r).forEach((e=>{r[e]=qe(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,_e=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Ze={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=_e(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=Ke(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e)){return e.fullPointer.length>0}if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=_e(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=_e(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=_e(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Xe={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Ye=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Ye(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Ye(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Ze,Xe,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,mt=/&&/,pt=new RegExp(/^<\s*(\S+)\s*>/),gt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),vt=e=>e.charAt(0),bt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=bt(e),e=yt(e)},kt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===vt(e)&&(n.start=!0,e=bt(e)),("["===vt(e)||"]"===ft(e))&&(n.group=null,"["===vt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===vt(e))){const t=pt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===vt(e)&&(n.negative=!0,e=bt(e)),"~"===vt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===vt(e)&&")"===ft(e)){mt.test(e)?(n.choices=e.split(mt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=bt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===vt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===vt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===vt(e)&&">"===ft(e))return e=wt(e),n.chunk=gt(e),n.greedy=!0,n;if("%"===vt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===vt(e)?(n.tag=bt(e),n.tag=gt(n.tag),n):"@"===vt(e)?(n.method=bt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var jt=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const Nt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},xt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Et=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var It=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(Nt(e,t)):"Noun"===e.pos?n=n.concat(xt(e,t)):"Adjective"===e.pos&&(n=n.concat(Et(e,t))):(n=n.concat(Nt(e,t)),n=n.concat(xt(e,t)),n=n.concat(Et(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var Tt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var Ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>Pt(e,t))),r=jt(r,n),r=It(r,n),r=Tt(r),r};const Dt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ot=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),Ft=(e,t)=>-1!==e.pre.indexOf(t),St={hasQuote:e=>Vt.test(e.pre)||Bt.test(e.post),hasComma:e=>Ht(e,","),hasPeriod:e=>!0===Ht(e,".")&&!1===Ht(e,"..."),hasExclamation:e=>Ht(e,"!"),hasQuestionMark:e=>Ht(e,"?")||Ht(e,"¿"),hasEllipses:e=>Ht(e,"..")||Ht(e,"…")||Ft(e,"..")||Ft(e,"…"),hasSemicolon:e=>Ht(e,";"),hasColon:e=>Ht(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>zt.test(e.post)||zt.test(e.pre),hasDash:e=>$t.test(e.post)||$t.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};St.hasQuotation=St.hasQuote;var Jt=St;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Gt(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Jt[t.method]&&!0===Jt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Wt=Mt;const Lt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){qt(e,e.t).length=r-e.t}return e.t=r,!0};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Wt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Wt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){qt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var _t=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var Zt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Wt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Wt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Wt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?_t(e,r,t[e.r+1]):(e.t+=1,!0)};var Xt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Wt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Wt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Yt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Xt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Yt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=qt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Lt(e,a))if(e.negative){if(!Zt(a))return null}else if(!0!==Wt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!tn(a))return null}else{if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else{if(!Qt(a))return null}else{if(!Rt(a))return null}else{if(!Kt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}};var rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i};var ln={api:ot,methods:{one:{termMethods:Jt,parseMatch:Ct,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(pn,""),fn.test(a)&&(a=" "),a=a.replace(gn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(pn,""),a="-"===a?" ":a.replace(mn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&vn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let kn=[],Pn=0;for(;Pn<64;)kn[Pn]=0|4294967296*Math.sin(++Pn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Pn=i=0;Pn>4]+kn[i]+~~o[Pn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const jn={text:!0,terms:!0};let Nn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const xn=function(e,t){return Object.assign({},e,t)},En={text:e=>bn(e,{keepPunct:!0},!1),normal:e=>bn(e,xn(wn.normal,{keepPunct:!0}),!1),implicit:e=>bn(e,xn(wn.implicit,{keepPunct:!0}),!1),machine:e=>bn(e,Nn,!1),root:e=>bn(e,xn(Nn,{form:"root"}),!1),hash:e=>An(bn(e,{keepPunct:!0},!1)),offset:e=>{let t=En.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};En.sentences=En.sentence,En.clean=En.normal,En.reduced=En.root;const In={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},jn,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&En[o]&&(a[o]=En[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};In.data=In.json;var Tn=In;var Cn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var Dn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var On=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Dn.blue("\n ──────")),t.forEach((e=>{console.log(Dn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Dn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Dn.blue(" │ ")+Dn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Dn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))};var Gn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Dn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Dn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Dn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Dn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var Vn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Dn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))};var Bn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Cn(t),t):(!1!==e.tags&&(On(t),console.log("\n")),!0===e.chunks&&(Gn(t),console.log("\n")),!0===e.highlight&&(Vn(t),console.log("\n")),t)};const zn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var $n=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Fn=Hn;var Sn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},t,e)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},qn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Kn=function(e,t){let n=qn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r};var Un=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var Rn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Ln(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var Zn=function(e,t){let n=qn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Ln(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Yn=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},er={union:function(e){e=Xn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)}};er.and=er.union,er.intersection=function(e){e=Xn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.not=function(e){e=Xn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.difference=er.not,er.complement=function(){let e=this.all(),t=_n(e.fullPointer,this.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Qn(e,[t])})),e=Yn(e,this.document),this.update(e)};var tr=function(e){Object.assign(e.prototype,er)},nr={methods:Rn,api:tr};var rr=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const ar=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var or=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(ar(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(ar(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=ar(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var ir=function(e,t){e=or(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}};var sr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))};var lr=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var ur=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o};var cr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=sr(a,t.hooks);return o=lr(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),ur(o,e,a,n,r)};var hr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===hr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:rr,methods:{one:{buildNet:ir,bulkMatch:cr,bulkTagger:dr}}};const pr=/ /,gr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},fr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),pr.test(t))!function(e,t,n,r){let a=t.split(pr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),fr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nvr(e,t,n,r)))};var br=vr;var yr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>wr({id:e}))),t}return[wr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},jr=e=>"[object Array]"===Object.prototype.toString.call(e),Nr=e=>(e=e||"").trim(),xr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||kr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Pr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=wr({});return e.forEach((e=>{if((e=wr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ar(t=e).forEach(wr),t);var t},Er=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Ar(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Ir=function(e){let t=Ar(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Tr={text:Er,txt:Er,array:Ir,flat:Ir},Cr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Er(e,!0)),null):Tr.hasOwnProperty(t)?Tr[t](e):e},Dr=e=>{Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Or=/\//;let Gr=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Nr(e),!Or.test(e)){let t=this.json.children.find((t=>t.id===e));return new Gr(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||wr({});return new Gr(t)}add(e,t={}){if(jr(e))return e.forEach((e=>this.add(Nr(e),t))),this;e=Nr(e);let n=wr({id:e,props:t});return this.json.children.push(n),new Gr(n)}remove(e){return e=Nr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ar(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ar(this.json)}fillDown(){var e;return e=this.json,Ar(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else jr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Dr(this.json);let e=Ar(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Dr(this.json),Cr(this.json,e)}debug(){return Dr(this.json),Cr(this.json,"debug"),this}};const Vr=function(e){let t=xr(e);return new Gr(t)};Vr.prototype.plugin=function(e){e(this)};var Br={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const zr=function(e){if(Br.hasOwnProperty(e.id))return Br[e.id];if(Br.hasOwnProperty(e.is))return Br[e.is];let t=e._cache.parents.find((e=>Br[e]));return Br[t]};var $r=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:zr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Hr=function(e){return e?"string"==typeof e?[e]:e:[]};var Fr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Hr(e[t].children),e[t].not=Hr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var Sr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Fr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Vr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return $r(n)},Jr={one:{setTag:br,unTag:yr,addTags:Sr}};const Mr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Wr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Mr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Mr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Lr=Wr;var qr=function(e){Object.assign(e.prototype,Lr)};var Kr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Ur=new Set(["Auxiliary","Possessive"]);var Rr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Ur.has(e)||!t.hasOwnProperty(n))return 1;if(Ur.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Qr={model:{one:{tagSet:{}}},compute:{tagRank:Rr},methods:Jr,api:qr,lib:Kr};const _r=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Zr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var Yr=function(e){let t=[],n=e.split(Xr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const aa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},oa=RegExp("("+Object.keys(aa).join("|")+")","g"),ia=RegExp("("+Object.values(aa).join("|")+")","g"),sa=function(e){if(!e)return!1;let t=e.match(ia);return null!==t&&1===t.length};var la=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var ja=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Pa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=ya(n),n=va(n),n=n.filter((e=>e)),n};let Na=new RegExp(`[${["#","@","_","+","."].join("")}]+$`,""),xa=new RegExp(`^[${["%","_","°"].join("")}]+`,"");const Ea=/[\p{Punctuation}\s]+$/u,Ia=/^[\p{Punctuation}\s]+/u,Ta=/['’]/,Ca=/^[a-z]\.([a-z]\.)+/i,Da=/^'[0-9]{2}/,Oa=/^-[0-9]/;var Ga=function(e){let t=e,n="",r="";return e=e.replace(Ia,(t=>{let r=t.match(Na);return r?(n=t.replace(Na,""),r):"'"===n&&Da.test(e)?(n="",t):"-"===t&&Oa.test(e)?t:(n=t,"")})),e=e.replace(Ea,(a=>{let o=a.match(xa);return o?(r=a.replace(xa,""),o):Ta.test(a)&&/[sn]['’]$/.test(t)&&!1===Ta.test(n)?(r=r.replace(Ta,""),"'"):!0===Ca.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}};var Va=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")};var Ba=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const za=/([A-Z]\.)+[A-Z]?,?$/,$a=/^[A-Z]\.,?$/,Ha=/[A-Z]{2,}('s|,)?$/,Fa=/([a-z]\.)+[a-z]\.?$/;var Sa=function(e){return function(e){return!0===za.test(e)||!0===Fa.test(e)||!0===$a.test(e)||!0===Ha.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ja=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ba(r),r=n(r,t),r=Sa(r),e.normal=r};var Ma=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Ja(e,t)})),n})),e};const Wa=/[ .][A-Z]\.? *$/i,La=/(?:\u2026|\.{2,}) *$/,qa=/\p{L}/u,Ka=/^[A-Z]\. $/;var Ua=function(e,t){if(!1===qa.test(e))return!1;if(!0===Wa.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===La.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},Ra={one:{killUnicode:Va,tokenize:{splitSentences:pa,isSentence:Ua,splitTerms:ja,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ga(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Ma}}};var Qa={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let _a={},Za={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{_a[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])}))}));var Xa=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Ya={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(Ya).forEach((function(e){Ya[e].split("").forEach((function(t){eo[t]=e}))}));const to=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),to.test(n)&&!no.test(n)&&!ro.test(n)){let t=n.split(to);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const oo=/^\p{Letter}+-\p{Letter}+$/u;var io=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),oo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var so=function(e){let t=e.docs,n={};for(let e=0;eho(e,ao),machine:e=>ho(e,io),normal:e=>ho(e,Ja),freq:so,offset:lo,index:uo,wordCount:co},methods:Ra,model:{one:{aliases:Qa,abbreviations:_a,prefixes:Xa,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Za,unicode:eo}},hooks:["alias","machine","index","id"]};var po={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var fo=function(e){e.prototype.autoFill=go};var vo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const bo={safe:!0,min:3};var yo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},bo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=vo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}};var wo={model:{one:{typeahead:{}}},api:fo,lib:yo,compute:po,hooks:["typeahead"]};v.extend(ee),v.extend(Wn),v.extend(ln),v.extend(nr),v.extend(Qr),v.plugin(Ie),v.extend(mo),v.plugin(k),v.extend(Le),v.extend(wo),v.extend(ze),v.extend(mr);var ko={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Po={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦unless",Conjunction:"true¦aXbTcuz,evenRhowPiHjust00lest,noEoCp8supposing,t5wh0yet;at,e2il1o0;evOse;e,st;nevMre0thM; if,vL;h0o;erefOo0;!uU;lus,rovide0; 1d0;! 0;th9;r0therwiJ;! not; mattBr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mFcaCorder t0;h0o;at;! 0;only,t0w0;hen;!ev0;er;! 0;if,t8;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;here nLsk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBeAi8o2u0;h,mph,rra0zzB;h,y;ly1o0;r5y8;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh,ye;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;e1ich,o0y;!m;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6J;G:6C;a8Lb74c66d61e60f4Yg4Hh3Wiron0j3Sk3Nl34m2Qn2Oo2Mp23quietEr1Os0HtXuVvacuum 1wKyammerAzH;ero Dip IonH;e0k0;by,up;aOeJhIiHor7Writ38;mp0n35pe0r8s8;eel Dip 8Q;aJiHn2T;gh Hrd0;in,up;n Dr H;d2in,oF;it 6Hk8lk Irm 0Zsh Ht7Av5F;aw3d2o5up;aw3in,o85;rgeAsH;e 1herG;aWeUhSiOoNrJuHypM;ckGrn H;d2in,oFup;aIiHot0y 2P;ckleEp 8B;ckEdH;e 0O;neEp 30s4Z;ck JdIe Hghte5Yme0p o0Jre0;aw3ba4d2in,up;e 6Iy 1;by,oC;ink Hrow 6V;ba4ov6up;aHe 6Gll5G;m 1r 53;ckAke Ilk H;ov6shit,u5H;aHba4d2in,oFup;ba4ft6p5Mw3;a0Mc0Le0Fh0Bi08l04m03n02o01pWquar4XtNuLwH;earJiH;ngItch H;aw3ba4o7P; by;ck Hit 1m 1ss0;in,o7Cup;aNe11iMoKrIuH;c37d2P;aigh23iH;ke 6Xn3L;p Hrm25;by,in,oC;n32r 1tc44;c31mp0nd Hr7Gve9y 1;ba4d2up;ar2ZeKiJlIrHurA;ingAuc8;a3Rit 5S;l18n 1;e6All0;ber 1rt0und like;ap 56ow D;ash 5Xoke0;eep IiHow 7;c1Mp 1;in,oH;ff,v6;de13gn IngHt 5Sz8; al5Nle0;in,o5up;aJoHu5B;ot Hut0w 6V;aw3ba4f3SoC;c2HdeGk5Qve9;e Lll1Hnd Krv8tH; Htl4W;d2f5Cin,o5upH;!on;aw3ba4d2in,o2Nup;o6Eto;al5Jout0rap5J;il9v8;aUeRiQoMuH;b 5Cle0n Hstl8;aJba4d2inIoHt3Lu0Y;ut,v6;!to;c2HrBw3;ll Jot IuH;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Jp9;aHel9inGnt0;c5Sd H;o3Bup;c1Ut0;aVeUiSlQoOrLsyc2RuH;ll Jt H;aHba4d2in,oFt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess IiKoH;p 1;ah1Zon;iHp 5Xr4DurEwer 5X;nt0;ay4TuH;gGmp 7;ck Hg0leAn 7p4Q;oFup;el 50ncilG;c4Iir 2Xn0ss JtIy H;ba4oC; d2c2E;aw3ba4in,oF;pHw4D;e4Ct D;arrowEerd0oH;d9teE;aReOiNoJuH;ddl8lH;l 3X;c13nkeyJp 7uth9ve H;aHd2in,o5up;l42w3; wi3Z;ss0x 1;asur8lIss H;a1Oup;t 7;ke In 7rHs1Xx0;k 7ry9;do,o4Wup;aXeSiNoHuck0;aLc3Vg KoHse0;k Hse3T;aft6ba4d2forw2Sin4Jov6uH;nd6p;in,oF;d 7;e 05ghtKnJsIvH;e 3F;ten 4Z;e 1k 1; 1e3K;ave Jt IvelH; o4I;d2go,in,o5up;in,oH;pen,ut;c8p 1sh HtchAugh9y26;in44o5;eIick9nock H;d2o4Bup;eHyG;l 2Zp H;aw3ba4d2fZin,oFto,up;aJoIuH;ic8mpG;ke3CtE;c3Lzz 1;aWeRiOoLuH;nIrrHsh 7;y 1;kerEt H;arBd2;lHneGrse35;d He 1;ba4d2fast,o04up;de It H;ba4on,up;aw3o5;aHlp0;d Jl 2Hr Ht 1;fHof;rom;in,oWu1K;cKm 1nIve Hz2C;it,to;d Hg 2NkerK;d2in,o5;k 1;aUeOive Nloss 28oJrIunH; f0O;in3Oow 2I; Hof 27;aIb1Fit,oHrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oFrise,up,w3;ar 7ek0t H;aIb1Ad2in,oHrBup;ff,n,ut,v6;cIhHl25rBt,w3;ead;ross;d aInH;g 1;bo5;a0Be04iVlRoNrJuH;ck He2A;arBup;eIighten HownAy 1;aw3oC;eHshe1W; 1z8;lJol H;aHwi1P;bo5rB;d 7low 1;aIeHip0;sh0;g 7ke0mHrHttenE;e 30;gOlMnKrIsHzzle0;h 2Y;e Hm 1;aw3ba4up;d0isH;h 1;e Hl 1I;aw3fMin,o5;ht ba4ure0;eMnIsH;s 1;cJd H;fHoC;or;e D;dZl 1;cLll Hrm0t15;ap08bJd2in,oItH;hrough;ff,ut,v6;a4ehi29;e H;d2oCup;a0Ndge0nd 0Ry8;oKrH;aIess 7op H;aw3bXin,o1W;gAwA; 0Kubl10;a01hYleaXoKrHut 18;ackAeep Hoss D;by,d2in,oHup;n,ut;me KoIuntH; o1Y;k 7l H;d2oC;aNbMforKin,oJtIuH;nd6;ogeth6;n,ut,v6;th,wH;ard;a4y;pHrBw3;art;n 7;eHipG;ck Der H;on,up;lPncel0rLsJtch IveG; in;o1Gup;h Dt H;doubt,oC;ry IvH;e 04;aw3oF;ff,n,ut;l ImE; d2;aHba4d2o17up;rBw3;a0Ne0Fl08oZrMuH;bblJckl00il06lk 7ndl00rHst WtIy 17zz9;n 0BsH;t D;e H;ov6;anSeaQiIush H;oCup;ghMng H;aJba4d2fHin,o5up;orH;th;bo5lHrBw3;ong;teH;n 1;k H;d2in,o5up;ch0;arOg 7iMn8oKssJttlIunce Hx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aMeed0oHurt0;cJw H;aw3ba4d2o5up;ck;k H;in,oY;ck0nk0st9; oMaKef 1nd H;d2ov6up;er;up;r0t H;d2in,oRup;ff,nH;to;ck Nil0nJrgIsH;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oHup;ff,ut;ay;cQdMsk Juction9; oC;ff;arBo5;ouH;nd;d H;d2oHup;ff,n;own;t H;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4x;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ea6Dit2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Km1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Com2C;f0i4Wt0Dy9;! arou4F;arn4GeAo9;cabula41l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aHeGhi8iEoDrBuAv9;! show;m2Jn5rntIto15;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etD;am,mp3A;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n28st4Q;ab2Q;bAnri1Bper bowl,r9;f0roga2;st3Etot1;aCepBipe3Ro1CrAudent9;! lo1L;ang0i8;fa1Gmo1G;ff0t31;loi42meo17;elet14i9;er,ll,rm3M;ack,or49;ab0Vcurity gu2E;e4ho9;l30ol;la33ndwi0J;av0XeChetor5iAo9;de4om;te,v9;erb0O;bCcBf9publ5r0Pspi2;er9orm0;e4r1;it1ord label;a2u42;estion mark,ot29;aMeKhJiHlFort1rAu9yram1D;ddi8ppy,rpo0K;eCie3Io9;bl3Vs9;pe6t9;a2itu2;diction,mi0Froga7ss relea0F;a9ebisci2;q28te,y0;cn5e9g;!r;armaci39otocoH;dest1ncil,r9t1;cen3Hsp3I;nAr2Ste9;!nt;el2Sop3;bj3EcApia2rde1thers,ve9wn0;n,rview;cu9e0G;pi0;aAit25ot9umb0;a26hi8;n2Arra7;aFeEiDoAu9é0H;m0Tr1;mAnopo3pRrni8sq1Qt9u14;h0i36;!my;li0Xn0A;d5nu,t1;mm1nAte9yf3;ri1;!d11;aurea2iBu9;ddi2n9;ch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦-,aMbJcIdHexcept,fFinEmid,notwithstandiSoCpTqua,sBt7u4v2w0;/o,hereOith0;! whEin,oS;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that,uch D;f0n1ut;!f;!to;or,r0;om;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2T;1:20;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt8v6w2;a4i3oo2;d,l;ldlife,ne;rm7t25;ernacul1Ui2;neg1Tol0Otae;eAh8oothpas1Nr3un2yranny;a,gst1V;aff29ea18o3ue nor2;th;oZu2;ble2se1Ft;!shoot1X;er2und1V;e,mod2B;a,nnis;aBcene0IeAh9il8ki7o6p5t3u2weepstak1;g1Hnshi11;ati01e2;am,el;ace23eci1;ap,cc1N;n,ttl1;k,v1L;eep,ingl1;na14ri1;d0Nfe1Vl2nd,t0B;m1Kt;a5e3ic2;e,ke0V;c2laxa0Ssearch;ogni0Rrea0R;bi1in;aVe6hys0last1Ko4re2;amble,mis1s2ten1K;en1Jsu0C;l2rk;it0yB;a1Otr06;bstetr0vercrowd16xyg0Z;a2ews;il polWtional securi1G;a9e7o4u2;m2s1A;ps;n2o19;ey,o2;gamy;a2chan0rchandi16tallurgy;sl1t;chine2themat0; learn0Ury;aught0Se5i4ogi3u2;ck,g0W;c,st0;ce,ghtn0Qngui19teraRv0P;ath0OisuRss;ara08indergart0Hnowled0T;azz,ewelC;ce,gnor7mp4n2;formaYter2;net,sta04;a2ort4;ti2;en0Y;an0X;a5eHisto4o2;ckey,mework,ne2rserad6spitali0Q;s0Py;ry;ir,libXppiFs2;h2te;ish;ene5l4o3r2um,ymna0R;aCeed;lf,re;utYyce0C; 2t0;edit03po2;ol;aLicElour,o4urni2;tu2;re;od,rgive2uriXwl;ne2;ss;conom0duca8lectr7n5quip6th0very3xper2;ti03;body,o2thT;ne;joy2tertain2;ment;ici01on0;tiQ;e8i5o3raugh2ynasZ;ts;pe,wnstai2;rs;abet1s2;honTrepu2;te;b2miP;ut;aAelci9h6iv0l4o2urrency;al,ld w2nfusiFral,ttFusco8;ar;ass0oth1;es;aos,e3ick2;en;eGw7;us;d,rI;a7eef,i5lood,read,u2;nt3tt2;er;ing;lliarDs2;on;g2ss;ga2;ge;cDdviCeroAir9m5ni4ppeal court,rithmet3spi2thlet0;rin;ic;se;en4n2;es2;ty;ds;craft;b0d2naut0;ynam0;ce;id,ou2;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:95;1:80;2:7X;3:8W;4:8Q;5:6E;6:81;7:86;8:8R;9:8D;A:5W;a7Mb77c6Pd67e5Qf58g50h4Pi3Rjuni44k3Pl3Fm33n2To2Ep1Wquart63r1Ls0Rt0JuMvIwBye1J;ast54eFholeEiDoB;man5oBrthwhi6u0F;d7Hzy;despr8Fs6E;!sa6;ather13eBll o5Jste2Q;!k5;aDeCiBola5D;b95ce versa,gi2Q;ng4Vrsa5B;ca0lu54;lt06nHpDrCsBttermo8X;ef75u4;b67ge0; Db2ApCsBti7Y;ca6et,ide dO;er,i4L;f3Tto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4E;e6Zi2FoDpCuB;pervis1spect2;e0ok6X;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6O;mploy1nd2xpect1;eBue;cid1rB;!a6RcovAly2sDwB;aBei7C;tAy;iz1to43;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Gra;aGeDhough59ip 1PoCrB;anspa6Yi3;gethAle83rp9;ena6FmpCrB;r3Ftia6P;e8o6N;leBst3Q;nt1;a03c01eZhYiWkiVmug,nobb3ZoPpMqueam3ZtGuBymb70;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb50;eq73tanda7P;atu69eFi0UrByl3T;aBin4D;ightBy; fBfB;or5X;adfa7Hri6;arCeBirit1lend9ot on;c2Ye34;k5se; caGlub6mbAphisticFrEuCvB;erei5Iiet;ndBth0X;pro6F;d9ry;at1;ll1;g1WnB;ce57g6;am30eA;at1co1Hem5lf3AnBre7;so5V;ath2holBient2K;ar5;cr1me,tisfac5M;aJeEheumato9iCoB;bu6Xtt58y4;ghtBv4;-w2f54;bYcEdu6OlDnown1sBtard1;is3DoB;lu3na0;e1Buc3B;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6NrCuB;bl5Vnjabi;eGiEoB;!b2QfCmi3BpBv4Vxi1Z;er,ort60;a7u63;maBor,sti7va3;!ry;ci60exist2mBpa9;a1Oi63;c9id;ac28rBti3;fe67ma32ti32v5V;i28rCsB;s5Qt;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni58seas,t,wB;ei57rou57;ll;do0Wer;d2Ug1M; bBbBgo2li7;oa60;fashion1school;!ay; gua5XbBli7;eat;eCsB;ce7er0Co0R;dia0se;aJeIiHoBuanc1;nDrthBt1V;!eB;rn;chaCdescri5Lprof29sB;top;la0;ght5;arby,cessa4Bighbor5xt;k1usiat2;aIeHinGoCuB;d14ltip6;deDl13nBot,st;ochroBth5;me;rn,st;dblRi;nac2re;cDgenta,in,j03keshift,mmCnBscu4E;da3Uy;ali2Ioth;ab37ho;aJeGiEoCuB;mber2sh;ngBut19;stand2term;ghtwei44teraB;l,te;ft-w2gBssAth4;al,eBi0B;nda3P;ngu9ps1st;aput,ind5nB;ow2;gno4Xll03mVnDpso 25rB;a3releB;va0; QaPcoMdJe2AfIhibi3CiWnHoGsDtBvalu0V;a4KeB;n48rdep1U;a7igColBuboD;ub6ve0;nifica0;rdi41;a3er;eriCluenOreq3X;eCiEoB;or;fini3p1Ltermi3W;mpCnside8rB;re48;le3;ccu8deq3Xppr36;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe40;ti4;aCeBi0T;d2Yn3M;tu22;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3I;me ma2BnCrrBs04ur5;if30;e3Qo2I;ghfalut1LspB;an2X;lUpf1W;lCnBrdZtI;dy;f,low1;aiHener2Siga25lob4oGraDuB;ilBng ho;ty;cCtB;ef1Ois;ef1N;od;nf1L;aPeMinLlJoErB;aCeBoz1L;q2Ptf1I;gi6nt2H;olErB; keeps,eBge0FmAtu2Owa38;go2i1BseeB;ab6;ish;ag37uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Hmiliar,r Bux;oBreach2;ff;aOfficie0lMmJnHqu4re2Pthere4veryday,xB;a2Oem2RplEquisi3traDuB;be2WlB;ta0;!va1G;icB;it; Bti0O;rou3sui3;erCiB;ne0;ge0;dBe18;er5;gAsB;t,ygo2;er;aQeHiCoBrea15ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0A;a0ni3;as1;an;facto;i5ngeroX;ly;arRePivil,oErCuB;nn2stoma0M;aBu0Iystal0Y;v02z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic09ry;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efM;aMeFizarEliKoCrBuck nak1;and new,isk,on1F;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0ZrrB;en;!wards; priori,b0Qc0Nd0Gf0Ag08h07l00mp6ntiquXpRrLsleep,ttracti09uHvEwB;aCkB;wa0X;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntX;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohFiJkaDl,oCriBterP;ght;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt","Adj|Past":"true¦0:2V;1:2M;2:2P;a2Eb29c1Rd19e13f0Ygift0h0Vi0Oj0Nknown,l0Km0Fn0Do0Ap03qua02rTsDt9u7v5w3;arp0ea3or5;kHth2O;a3e0U;ri0;ni3pd1s0;fi0t0;ar5hreatCr3wi2N;a3ou18;ck0in0pp0;get0ni1L;aGcaFeEhDimCm00oak0pAt6u3;bsid24gge2Is3;pe3ta1P;ct0nd0;at0e5r3uU;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al1Wfi0;pHul1;ar0ut;al0c1Gle2t1O;r0tt22;t3ut0;is1Hur1;aAe3;c7duc0f1Ag6l1new0qu5s3;pe2t3;or0ri2;e1Zir0;ist1Uul1;eiv0o3;mme09rd0v1S;lli0ti18;li17;arallel0l7o6r3ump0;e4o3;ce0Ilo0Hnou1Qpos0te2;fe0Koc8pY;i1Dli0Q;a3e16;nn0;c4rgan18verlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3;di0Tt0F;as0Olt0;n3rk0;ag0ufact0M;eft,i4o3;ad0st;cens0mit0st0;agg0us0L;mp8n3sol1;br0debt0f6t3volv0;e3ox0D;gr1n3re15;d0si0H;e2oW;li0oLrov0;amm0Xe1o3;ok0r3;ri0C;aNe6i5lavo07ocus0r3;a3i0;ct05g0Jm0;niWx0;ar0;duc1mbarraKn7quipp0stabliUx3;p3te5;a4e3;ct0rie0P;nd0;ha0NsX;aIeAi3;gniZminiNre2s3;a7c5grun02t3;o3reBurb0;rt0;iplQou3;nt0rD;bl0;cenTdMf7lay0pre6ra5t3velop0;a3ermM;il0;ng0;ss0;e4o3;rm0;rr0;m3t0;ag0;alcul1eGharg0lFo8r5u3;lt3stomQ;iv1;a4owd0u3;sh0;ck0mp0;d0lo8m5n3ok0vV;centr1s3troll0;idTolid1;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralA;a6i5o3roken,urn0;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k36l2Xm2Rnou3Uo2Mp25qu24r1As08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Gc0Fe0Dh09i07l05m04n03o01pWquVtOuJwG;all6YeeHiG;m,ng;p,t5;bIccumb,ffHggeBmm8Zp2DrG;mouFvi2;er,i3;li7Wmer9siGveD;de,st;aKe7PiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Pi8;awn,eJiIlHoGri68;il,of;ay,it;ll,t;ak,nd;lGot6Iw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5CoHriGun;nk,v5O;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Hv0w;!k,m;aven9ul7V;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2YsLtJvG;amp,eHiGo2N;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1TrG;a5QiCuctu7;de,gn,st;el,hra1lGreseF;a3e63;d0ew,o02;a5Le2To2;a6eFiGoad,y;e2nq3Dve;mbur1nf2M;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Dla3GoGyc4;gni54nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Kit,o6;aUerSiRlumm0SoQrIuG;b3Hke,ni8rGt;poDs6R;eKoG;cId,fe31hibEnoHpo1sp0truAvG;e,iAo4P;un3;la32u7;a5Bc1LdHf0ocSsup0CvG;a5GeF;etermi3ZiC;a58rt4Q;er3npoiF;cei2fo39i8mea6plex,sGvaA;eve7iB;mp0n11rGtrol,ve,y;a5Mt5I;bser2cJpIutHverGwe;lap,s13tu64u1;gr4Jnu1Upa3;era6i3Ppo1;cupy;aKe06iHoGultiply;leBu5Z;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u33;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng1Zu18;eep,nG;e3Kow;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ao="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",jo=Ao.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var No=function(e){if(void 0!==jo[e])return jo[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var xo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=Io(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=To(Po[e]);Go.test(e)?Object.keys(t).forEach((t=>{if(Bo[t]=e,"Noun|Verb"===e){let e=Oo(t,zo);Bo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Vo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Vo[e]="Emoticon")),delete Vo[""],delete Vo.null,delete Vo[" "];const $o="Adjective";var Ho={beforeTags:{Determiner:$o,Possessive:$o},afterTags:{Adjective:$o},beforeWords:{seem:$o,seemed:$o,seems:$o,feel:$o,feels:$o,felt:$o,appear:$o,appears:$o,appeared:$o,also:$o,over:$o,under:$o,too:$o,it:$o,but:$o,still:$o,really:$o,quite:$o,well:$o,very:$o,deeply:$o,profoundly:$o,extremely:$o,so:$o,badly:$o,mostly:$o,totally:$o,awfully:$o,rather:$o,nothing:$o,something:$o,anything:$o,not:$o,me:$o,is:$o},afterWords:{too:$o,also:$o,or:$o}};const Fo="Gerund";var So={beforeTags:{Adverb:Fo,Preposition:Fo,Conjunction:Fo},afterTags:{Adverb:Fo,Possessive:Fo,Person:Fo,Pronoun:Fo,Determiner:Fo,Copula:Fo,Preposition:Fo,Conjunction:Fo,Comparative:Fo},beforeWords:{been:Fo,keep:Fo,continue:Fo,stop:Fo,am:Fo,be:Fo,me:Fo,began:Fo,start:Fo,starts:Fo,started:Fo,stops:Fo,stopped:Fo,help:Fo,helps:Fo,avoid:Fo,avoids:Fo,love:Fo,loves:Fo,loved:Fo,hate:Fo,hates:Fo,hated:Fo},afterWords:{you:Fo,me:Fo,her:Fo,him:Fo,them:Fo,their:Fo,it:Fo,this:Fo,there:Fo,on:Fo,about:Fo,for:Fo}};var Jo={beforeTags:Object.assign({},Ho.beforeTags,So.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Ho.afterTags,So.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Ho.beforeWords,So.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Ho.afterWords,So.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Mo="Singular";var Wo={beforeTags:{Determiner:Mo,Possessive:Mo,Acronym:Mo,Noun:Mo,Adjective:Mo,PresentTense:Mo,Gerund:Mo,PastTense:Mo,Infinitive:Mo,Date:Mo},afterTags:{Value:Mo,Modal:Mo,Copula:Mo,PresentTense:Mo,PastTense:Mo,Demonym:Mo},beforeWords:{the:Mo,with:Mo,without:Mo,of:Mo,for:Mo,any:Mo,all:Mo,on:Mo,cut:Mo,cuts:Mo,save:Mo,saved:Mo,saves:Mo,make:Mo,makes:Mo,made:Mo,minus:Mo,plus:Mo,than:Mo,another:Mo,versus:Mo,neither:Mo,favorite:Mo,best:Mo,daily:Mo,weekly:Mo,linear:Mo,binary:Mo,mobile:Mo,lexical:Mo,technical:Mo,computer:Mo,scientific:Mo,formal:Mo},afterWords:{of:Mo,system:Mo,aid:Mo,method:Mo,utility:Mo,tool:Mo,reform:Mo,therapy:Mo,philosophy:Mo,room:Mo,authority:Mo,says:Mo,said:Mo,wants:Mo,wanted:Mo,is:Mo}};const Lo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var qo={beforeTags:Object.assign({},Ho.beforeTags,Wo.beforeTags,Lo.beforeTags),afterTags:Object.assign({},Ho.afterTags,Wo.afterTags),beforeWords:Object.assign({},Ho.beforeWords,Wo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ho.afterWords,Wo.afterWords)};let Ko="PastTense";const Uo={beforeTags:{Adverb:Ko,Pronoun:Ko,ProperNoun:Ko,Auxiliary:Ko,Noun:Ko},afterTags:{Possessive:Ko,Pronoun:Ko,Determiner:Ko,Adverb:Ko,Comparative:Ko,Date:Ko},beforeWords:{be:Ko,who:Ko,get:"Adjective",had:Ko,has:Ko,have:Ko,been:Ko,it:Ko,as:Ko,for:"Adjective"},afterWords:{by:Ko,back:Ko,out:Ko,in:Ko,up:Ko,down:Ko,for:Ko,the:Ko,with:Ko,as:Ko,on:Ko,at:Ko}};var Ro={beforeTags:Object.assign({},Ho.beforeTags,Uo.beforeTags),afterTags:Object.assign({},Ho.afterTags,Uo.afterTags),beforeWords:Object.assign({},Ho.beforeWords,Uo.beforeWords),afterWords:Object.assign({},Ho.afterWords,Uo.afterWords)};const Qo="Infinitive";var _o={beforeTags:{Modal:Qo,Adverb:Qo,Negative:Qo,Plural:Qo},afterTags:{Determiner:Qo,Adverb:Qo,Possessive:Qo,Preposition:Qo},beforeWords:{i:Qo,we:Qo,you:Qo,they:Qo,to:Qo,please:Qo,will:Qo,have:Qo,had:Qo,would:Qo,could:Qo,should:Qo,do:Qo,did:Qo,does:Qo,can:Qo,must:Qo,us:Qo,me:Qo,he:Qo,she:Qo,it:Qo,being:Qo},afterWords:{the:Qo,me:Qo,you:Qo,him:Qo,her:Qo,them:Qo,it:Qo,a:Qo,an:Qo,up:Qo,down:Qo,by:Qo,out:Qo,off:Qo,under:Qo,when:Qo,all:Qo,to:Qo,because:Qo,although:Qo,before:Qo,how:Qo,otherwise:Qo,together:Qo,though:Qo,yet:Qo}};const Zo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xo={beforeTags:Object.assign({},Ho.beforeTags,_o.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Ho.afterTags,_o.afterTags,Zo.afterTags),beforeWords:Object.assign({},Ho.beforeWords,_o.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Ho.afterWords,_o.afterWords,{to:void 0})};const Yo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ei={},ti={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ni={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ri={beforeTags:Object.assign({},So.beforeTags,Wo.beforeTags,Yo),afterTags:Object.assign({},So.afterTags,Wo.afterTags,ei),beforeWords:Object.assign({},So.beforeWords,Wo.beforeWords,ti),afterWords:Object.assign({},So.afterWords,Wo.afterWords,ni)};var ai={beforeTags:Object.assign({},_o.beforeTags,Wo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},_o.afterTags,Wo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},_o.beforeWords,Wo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},_o.afterWords,Wo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const oi="Person";var ii={beforeTags:{Honorific:oi,Person:oi,Preposition:oi},afterTags:{Person:oi,ProperNoun:oi,Verb:oi},ownTags:{ProperNoun:oi},beforeWords:{hi:oi,hey:oi,yo:oi,dear:oi,hello:oi},afterWords:{said:oi,says:oi,told:oi,tells:oi,feels:oi,felt:oi,seems:oi,thinks:oi,thought:oi,spends:oi,spendt:oi,plays:oi,played:oi,sing:oi,sang:oi,learn:oi,learned:oi,wants:oi,wanted:oi}};const si="Month",li={beforeTags:{Date:si,Value:si},afterTags:{Date:si,Value:si},beforeWords:{by:si,in:si,on:si,during:si,after:si,before:si,between:si,until:si,til:si,sometime:si,of:si,this:si,next:si,last:si,previous:si,following:si},afterWords:{sometime:si,in:si,of:si,until:si,the:si}};var ui={beforeTags:Object.assign({},ii.beforeTags,li.beforeTags),afterTags:Object.assign({},ii.afterTags,li.afterTags),beforeWords:Object.assign({},ii.beforeWords,li.beforeWords),afterWords:Object.assign({},ii.afterWords,li.afterWords)};const ci="Place",hi={beforeTags:{Place:ci},afterTags:{Place:ci,Abbreviation:ci},beforeWords:{in:ci,by:ci,near:ci,from:ci,to:ci},afterWords:{in:ci,by:ci,near:ci,from:ci,to:ci,government:ci,council:ci,region:ci,city:ci}};let di="Unit";const mi="Honorific";let pi={first:mi,general:mi,royal:mi,vice:mi,rear:mi,major:mi};const gi={"Adj|Gerund":Jo,"Adj|Noun":qo,"Adj|Past":Ro,"Adj|Present":Xo,"Noun|Verb":ai,"Noun|Gerund":ri,"Person|Noun":{beforeTags:Object.assign({},Wo.beforeTags,ii.beforeTags),afterTags:Object.assign({},Wo.afterTags,ii.afterTags),beforeWords:Object.assign({},Wo.beforeWords,ii.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Wo.afterWords,ii.afterWords)},"Person|Date":ui,"Person|Verb":{beforeTags:Object.assign({},ii.beforeTags,_o.beforeTags),afterTags:Object.assign({},ii.afterTags,_o.afterTags),beforeWords:Object.assign({},ii.beforeWords,_o.beforeWords),afterWords:Object.assign({},ii.afterWords,_o.afterWords)},"Person|Place":{beforeTags:Object.assign({},hi.beforeTags,ii.beforeTags),afterTags:Object.assign({},hi.afterTags,ii.afterTags),beforeWords:Object.assign({},hi.beforeWords,ii.beforeWords),afterWords:Object.assign({},hi.afterWords,ii.afterWords)},"Unit|Noun":{beforeTags:{Value:di},afterTags:{},beforeWords:{per:di,every:di,each:di,square:di,cubic:di,sq:di,metric:di},afterWords:{per:di,squared:di,cubed:di,long:di}},"Honorific|Noun":{beforeTags:{Honorific:mi,ProperNoun:mi,Ordinal:mi},afterTags:{Person:mi,ProperNoun:mi},beforeWords:Object.assign({},pi,{honorable:mi,honourable:mi,worship:mi,excellency:mi,majesty:mi,right:mi}),afterWords:pi}},fi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};gi["Plural|Verb"]={beforeWords:fi(gi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:fi(gi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:fi(gi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:fi(gi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var vi=gi;const bi="Adjective",yi="Infinitive",wi="PresentTense",ki="Singular",Pi="PastTense",Ai="Adverb",ji="Plural",Ni="Verb",xi="LastName",Ei="Participle";var Ii=[null,null,{ea:ki,ia:"Noun",ic:bi,ly:Ai,"'n":Ni,"'t":Ni},{oed:Pi,ued:Pi,xed:Pi," so":Ai,"'ll":"Modal","'re":"Copula",azy:bi,eer:"Noun",end:Ni,ped:Pi,ffy:bi,ify:yi,ing:"Gerund",ize:yi,ibe:yi,lar:bi,mum:bi,nes:wi,nny:bi,ous:bi,que:bi,rol:ki,sis:ki,ogy:ki,oid:ki,ian:ki,zes:wi,eld:Pi,ken:Ei,ven:Ei,ten:Ei,ect:yi,ict:yi,ign:yi,ful:bi,bal:bi},{amed:Pi,aped:Pi,ched:Pi,lked:Pi,rked:Pi,reed:Pi,nded:Pi,mned:bi,cted:Pi,dged:Pi,ield:ki,akis:xi,cede:yi,chuk:xi,czyk:xi,ects:wi,ends:Ni,enko:xi,ette:ki,wner:ki,fies:wi,fore:Ai,gate:yi,gone:bi,ices:ji,ints:ji,ruct:yi,ines:ji,ions:ji,less:bi,llen:bi,made:bi,nsen:xi,oses:wi,ould:"Modal",some:bi,sson:xi,tion:ki,tage:"Noun",ique:ki,tive:bi,tors:"Noun",vice:ki,lier:ki,fier:ki,wned:Pi,gent:ki,tist:ki,pist:ki,rist:ki,mist:ki,yist:ki,vist:ki,lite:ki,site:ki,rite:ki,mite:ki,bite:ki,mate:ki,date:ki,ndal:ki,vent:ki,uist:ki,gist:ki,note:ki,cide:ki,wide:bi,vide:yi,ract:yi,duce:yi,pose:yi,eive:yi,lyze:yi,lyse:yi,iant:bi,nary:bi},{elist:ki,holic:ki,phite:ki,tized:Pi,urned:Pi,eased:Pi,ances:ji,bound:bi,ettes:ji,fully:Ai,ishes:wi,ities:ji,marek:xi,nssen:xi,ology:"Noun",osome:ki,tment:ki,ports:ji,rough:bi,tches:wi,tieth:"Ordinal",tures:ji,wards:Ai,where:Ai,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:ki,scent:ki,onist:ki,anist:ki,alist:ki,olist:ki,icist:ki,ounce:yi,iable:bi,borne:bi,gnant:bi,inant:bi,igent:bi,atory:bi,rient:ki,dient:ki},{auskas:xi,parent:ki,cedent:ki,ionary:ki,cklist:ki,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:xi,borough:"Place",sdottir:xi}];const Ti="Adjective";var Ci=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Ti,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Ti,tele:"Noun","pro-":Ti,"mis-":"Verb","dis-":"Verb","pre-":Ti},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Ti,radio:"Noun",tetra:"Noun","omni-":Ti,"post-":Ti},{pseudo:Ti,"extra-":Ti,"hyper-":Ti,"inter-":Ti,"intra-":Ti,"deca-":Ti},{electro:"Noun"}];const Di="Adjective",Oi="Infinitive",Gi="PresentTense",Vi="Singular",Bi="PastTense",zi="Expression",$i="LastName";var Hi={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,$i],[/.[^aeiou]ica$/,Vi,"harmonica"],[/^([hyj]a+)+$/,zi,"haha"]],c:[[/.[^aeiou]ic$/,Di]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Bi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Bi,"rammed"],[/.[aeiou][sg]hed$/,Bi,"gushed"],[/.[aeiou]red$/,Bi,"hired"],[/.[aeiou]r?ried$/,Bi,"hurried"],[/[^aeiou]ard$/,Vi,"steward"],[/[aeiou][^aeiou]id$/,Di,""],[/.[vrl]id$/,Di,"livid"],[/..led$/,Bi,"hurled"],[/.[iao]sed$/,Bi,""],[/[aeiou]n?[cs]ed$/,Bi,""],[/[aeiou][rl]?[mnf]ed$/,Bi,""],[/[aeiou][ns]?c?ked$/,Bi,"bunked"],[/[aeiou]gned$/,Bi],[/[aeiou][nl]?ged$/,Bi],[/.[tdbwxyz]ed$/,Bi],[/[^aeiou][aeiou][tvx]ed$/,Bi],[/.[cdflmnprstv]ied$/,Bi,"emptied"]],e:[[/.[lnr]ize$/,Oi,"antagonize"],[/.[^aeiou]ise$/,Oi,"antagonise"],[/.[aeiou]te$/,Oi,"bite"],[/.[^aeiou][ai]ble$/,Di,"fixable"],[/.[^aeiou]eable$/,Di,"maleable"],[/.[ts]ive$/,Di,"festive"],[/[a-z]-like$/,Di,"woman-like"]],h:[[/.[^aeiouf]ish$/,Di,"cornish"],[/.v[iy]ch$/,$i,"..ovich"],[/^ug?h+$/,zi,"ughh"],[/^uh[ -]?oh$/,zi,"uhoh"],[/[a-z]-ish$/,Di,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,$i,"polish-male"]],k:[[/^(k){2}$/,zi,"kkkk"]],l:[[/.[gl]ial$/,Di,"familial"],[/.[^aeiou]ful$/,Di,"fitful"],[/.[nrtumcd]al$/,Di,"natal"],[/.[^aeiou][ei]al$/,Di,"familial"]],m:[[/.[^aeiou]ium$/,Vi,"magnesium"],[/[^aeiou]ism$/,Vi,"schism"],[/^[hu]m+$/,zi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Di,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,zi,"noooo"],[/^(yo)+$/,zi,"yoo"],[/^wo{2,}[pt]?$/,zi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Vi],[/[^i]fer$/,Oi],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Di],[/[aeiou].*ist$/,Di],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Gi],[/.[rln]ates$/,Gi],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Vi],[/.[aeiou]sks$/,Gi],[/.[aeiou]kes$/,Gi],[/[aeiou][^aeiou]is$/,Vi],[/[a-z]'s$/,"Noun"],[/^yes+$/,zi]],v:[[/.[^aeiou][ai][kln]ov$/,$i]],y:[[/.[cts]hy$/,Di],[/.[st]ty$/,Di],[/.[tnl]ary$/,Di],[/.[oe]ry$/,Vi],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Di],[/...lly$/,"Adverb"],[/.[gk]y$/,Di],[/[bszmp]{2}y$/,Di],[/.[ai]my$/,Di],[/[ea]{2}zy$/,Di],[/.[^aeiou]ity$/,Vi]]};const Fi="Verb",Si="Noun";var Ji={leftTags:[["Adjective",Si],["Possessive",Si],["Determiner",Si],["Adverb",Fi],["Pronoun",Fi],["Value",Si],["Ordinal",Si],["Modal",Fi],["Superlative",Si],["Demonym",Si],["Honorific","Person"]],leftWords:[["i",Fi],["first",Si],["it",Fi],["there",Fi],["not",Fi],["because",Si],["if",Si],["but",Si],["who",Fi],["this",Si],["his",Si],["when",Si],["you",Fi],["very","Adjective"],["old",Si],["never",Fi],["before",Si],["a","Singular"],["the",Si],["been",Fi]],rightTags:[["Copula",Si],["PastTense",Si],["Conjunction",Si],["Modal",Si]],rightWords:[["there",Fi],["me",Fi],["man","Adjective"],["only",Fi],["him",Fi],["it",Fi],["were",Si],["took",Si],["himself",Fi],["went",Si],["who",Si],["jr","Person"]]},Mi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Wi={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Li={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},qi={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Ki={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Ui=/^.([0-9]+)/;var Ri=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Ui);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Ui,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},_i=/^([0-9]+)/,Zi=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(_i);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(_i,"")]}(n[0],n[1])}))};var Xi=function(e={}){return(e=Object.assign({},e)).rules=Zi(e.rules),e.rules=Qi(e.rules),e.rev&&(e.rev=Zi(e.rev),e.rev=Qi(e.rev)),e.exceptions=Zi(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e};var Yi=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const es=Xi({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ts=Xi(qi),ns=Xi(Wi),rs=Xi(Li),as=Yi(es),os=Yi(ts),is=Yi(ns),ss=Yi(rs),ls=Xi(Mi),us=Xi(Ki);var cs={fromPast:es,fromPresent:ts,fromGerund:ns,fromParticiple:rs,toPast:as,toPresent:os,toGerund:is,toParticiple:ss,toComparative:ls,toSuperlative:us,fromComparative:Yi(ls),fromSuperlative:Yi(us)},hs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),ds=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var ms=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(gs[t].forEach((n=>e[n]=t)),e)),{});var fs=gs;var vs=function(e){let t=e.substring(e.length-3);if(!0===fs.hasOwnProperty(t))return fs[t];let n=e.substring(e.length-2);return!0===fs.hasOwnProperty(n)?fs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const bs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var ys=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=vs(e)),bs.hasOwnProperty(e))c=bs[e];else if("Participle"===n)c=Ri(l,i);else if("PastTense"===n)c=Ri(l,r);else if("PresentTense"===n)c=Ri(l,a);else{if("Gerund"!==n)return e;c=Ri(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var ws=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Ri(i,n),PresentTense:Ri(i,r),Gerund:Ri(i,a),FutureTense:"will "+e},u=Ri(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var ks={toInfinitive:ys,conjugate:ws,all:function(e,t){let n=ws(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};var Ps=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const As=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],js={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Ns=function(e){if(js.hasOwnProperty(e))return js[e];let t=Ps(e,As);return t||e+"ly"};const xs=function(e,t){const n=t.two.models.toSuperlative;return Ri(e,n)},Es=function(e,t){const n=t.two.models.toComparative;return Ri(e,n)},Is="ically",Ts=new Set(["analyt"+Is,"chem"+Is,"class"+Is,"clin"+Is,"crit"+Is,"ecolog"+Is,"electr"+Is,"empir"+Is,"frant"+Is,"grammat"+Is,"ident"+Is,"ideolog"+Is,"log"+Is,"mag"+Is,"mathemat"+Is,"mechan"+Is,"med"+Is,"method"+Is,"method"+Is,"mus"+Is,"phys"+Is,"phys"+Is,"polit"+Is,"pract"+Is,"rad"+Is,"satir"+Is,"statist"+Is,"techn"+Is,"technolog"+Is,"theoret"+Is,"typ"+Is,"vert"+Is,"whims"+Is]),Cs=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ds=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Os={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Gs=function(e){return e.endsWith("ly")?Ts.has(e)?e.replace(/ically/,"ical"):Ds.has(e)?null:Os.hasOwnProperty(e)?Os[e]:Ps(e,Cs)||e:null};const Vs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Bs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},zs=new Set(["terrible","annoying"]);var $s={toSuperlative:xs,toComparative:Es,toAdverb:Ns,toNoun:function(e){if(Bs.hasOwnProperty(e))return Bs[e];if(zs.has(e))return null;let t=Ps(e,Vs);return t||e+"ness"},fromAdverb:Gs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Ri(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Ri(e,n)},all:function(e,t){let n=[e];return n.push(xs(e,t)),n.push(Es(e,t)),n.push(Ns(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Hs={noun:ps,verb:ks,adjective:$s},Fs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Ss=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Fs.hasOwnProperty(i)&&Fs[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var Js=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Ls.find((t=>e.endsWith(t)))},Ks={two:{quickSplit:Js,expandLexicon:Ss,transform:Hs,looksPlural:qs}};var Us=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const Rs=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var Qs=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Rs(n,"Infinitive","PastTense"),Object.assign(s,l),l=Rs(r,"Infinitive","Verb"),Object.assign(s,l),l=Rs(a,"Infinitive","Gerund"),Object.assign(s,l),l=Rs(o,"Adjective","Superlative"),Object.assign(s,l),l=Rs(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let _s={two:{models:cs}};const Zs={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},Xs=function(e,t){const n={model:t,methods:Ks};let{lex:r,_multi:a}=Ks.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},Ys=function(e,t,n){let r=ws(e,_s);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},el=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=Zs[o],"Noun|Verb"!==o&&"Person|Verb"!==o||Ys(a,r,!1),"Adj|Present"===o&&(Ys(a,r,!0),function(e,t,n){let r=xs(e,n);t[r]=t[r]||"Superlative";let a=Es(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=ys(a,_s,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=ys(a,_s,"PastTense");r[e]||(n[e]="Infinitive")}})),t=Xs(n,t)};var tl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=Xs(e.one.lexicon,e)).one.lexicon,e),e=el(e.two.switches,e),e=Qs(e),e=Us(e)};let nl={one:{_multiCache:{},lexicon:Vo},two:{irregularPlurals:ko,models:cs,suffixPatterns:Ii,prefixPatterns:Ci,endsWith:Hi,neighbours:Ji,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:Bo,clues:vi,uncountable:{},orgWords:hs}};nl=tl(nl);var rl=nl;const al=/^(under|over|mis|re|un|dis|semi)-?/;var ol=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(al.test(a.normal)){let e=a.normal.replace(al,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var il=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const sl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var ll=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(qs(e.normal)?il(e,"Plural","3-plural-guess"):il(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=vs(e.normal);t&&il(e,t,"3-verb-tense-guess")}}(r)};const ul=/^\p{Lu}[\p{Ll}'’]/u,cl=/[0-9]/,hl=["Date","Month","WeekDay","Unit"],dl=/^[IVXLCDM]{2,}$/,ml=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,pl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var gl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===ul.test(o)&&!1===cl.test(o)?hl.find((e=>r.tags.has(e)))?null:(ll(e,t,n),r.tags.has("Noun")||r.tags.clear(),il(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&dl.test(o)&&ml.test(o)&&!pl[r.normal]?(il(r,"RomanNumeral","2-xvii"),!0):null};const fl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var vl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=fl(r.normal,n.two.suffixPatterns);if(null!==e)return il(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=fl(r.implicit,n.two.suffixPatterns),null!==e))return il(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const bl=/['‘’‛‵′`´]/,yl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return il(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Pl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Al=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Pl.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},jl=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},Nl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var xl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Al(a)||Al(o))return il(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(jl(a)||jl(o))return il(n,"Year","2-tagYear-close");if(Nl(e[t-2])||Nl(e[t+2]))return il(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return il(n,"Year","2-tagYear-noun")}}}return null};const El=/^[A-Z]('s|,)?$/,Il=/^[A-Z-]+$/,Tl=/([A-Z]\.)+[A-Z]?,?$/,Cl=/[A-Z]{2,}('s|,)?$/,Dl=/([a-z]\.)+[a-z]\.?$/,Ol={I:!0,A:!0};var Gl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Il.test(n)||n.length>5||Ol.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Tl.test(n)&&!0!==Dl.test(n)&&!0!==El.test(n)&&!0!==Cl.test(n))}(r,n)?(r.tags.clear(),il(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ol.hasOwnProperty(r.text)&&El.test(r.text)?(r.tags.clear(),il(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(il(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Il.test(r.text)&&r.text.length<=6?(il(r,"Acronym","3-titlecase-acronym"),!0):null};const Vl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Bl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var zl=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Vl(e[t-1],a),l=l||Vl(e[t+1],o),l=l||Bl(e[t-1],r),l=l||Bl(e[t+1],i),l)return il(s,l,"3-[neighbour]"),ll(e,t,n),e[t].confidence=.2,!0}return null};const $l=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Hl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&$l(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&$l(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Fl=function(e,t,n){0===e[t].tags.size&&(il(e[t],"Noun","3-[fallback]"),ll(e,t,n),e[t].confidence=.1)};const Sl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Jl=(e,t,n)=>0!==t||e[1]?null:n,Ml={"Adj|Gerund":(e,t)=>Sl(e,t),"Adj|Noun":(e,t)=>Sl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Sl(e,t),"Adj|Present":(e,t)=>Sl(e,t),"Noun|Gerund":(e,t)=>Sl(e,t),"Noun|Verb":(e,t)=>Sl(e,t)||Jl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Sl(e,t)||Jl(e,t,"PresentTense"),"Person|Noun":(e,t)=>Sl(e,t),"Person|Verb":(e,t)=>0!==t?Sl(e,t):null};var Wl=Ml;const Ll="undefined"!=typeof process&&process.env?process.env:self.env||{},ql=/^(under|over|mis|re|un|dis|semi)-?/,Kl=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Ll.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ul=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&Ll.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var Rl=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(ql.test(l)&&!o[l]&&(l=l.replace(ql,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Kl(e[t+1],n.afterWords);return o=o||Kl(e[t-1],n.beforeWords),o=o||Ul(e[t-1],n.beforeTags,a),o=o||Ul(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Wl[o]&&(u=Wl[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),ll(e,t,r)):Ll.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};var Ql=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(il(o,"Verb","3-[prefix]"),il(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(il(o,"Adjective","3-[prefix]"),il(o,"Prefix","3-[prefix]")))};const _l={tagSwitch:ol,checkSuffix:vl,checkRegex:wl,checkCase:gl,checkPrefix:kl,checkHyphen:Ql,checkYear:xl},Zl={checkAcronym:Gl,neighbours:zl,orgWords:Hl,nounFallback:Fl,switches:Rl},Xl=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var nu=function(e){const t=e.world,n=Object.keys(tu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=pu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=mu};var fu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const vu=/'/;var bu=function(e,t){let n=e[t].normal.split(vu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const yu=/'/;var wu=function(e,t){let n=e[t].normal.split(yu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var ku=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Pu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Au={in:!0,by:!0,for:!0};var ju=(e,t)=>{let n=e[t];if(Pu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===Au[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Nu=/'/,xu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Eu={d:(e,t)=>wu(e,t),t:(e,t)=>ku(e,t),s:(e,t,n)=>ju(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):bu(e,t)},Iu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Tu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Nu.test(r[o].normal)&&([,i]=r[o].normal.split(Nu));let s=null;Eu.hasOwnProperty(i)&&(s=Eu[i](r,o,t)),s&&(s=Iu(s,e),fu(n,[a,o],s),xu(n[a],e,o,s.length))}}))}},Cu={compute:Tu,api:gu,hooks:["contractionTwo"]};const Du="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const Ou=["i","we","they"];let Gu=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"[brand #Gerund?] new",tag:"Adverb",group:0,reason:"brand-new"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Du} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Du} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Du}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past%]",group:0,tag:"Adjective",reason:"do-not-be-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ou,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ou,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ou,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|well|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^[come on] #Noun",group:0,tag:"Expression",reason:"come-on"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let Vu=null;var Bu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Vu=Vu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Vu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const zu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Bu,model:{two:{matches:Gu}},hooks:["postTagger"]};var $u=zu;var Hu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var Fu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Hu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Su={lib:{lazy:Fu}};var Ju=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var Mu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Ju(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Wu={api:function(e){e.prototype.swap=Mu}};v.plugin(cu),v.plugin(Cu),v.plugin($u),v.plugin(Su),v.plugin(Wu);var Lu=function(e){let t=this;return t=function(e){let t=e.parentheses();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.quotations();return t=t.filter((e=>e.wordCount()>=3&&e.has("#Verb")&&e.has("#Noun"))),e.splitOn(t)}(t),t=function(e){let t=e.match("@hasComma");return t=t.filter((e=>{if(1===e.growLeft(".").wordCount())return!1;if(1===e.growRight(". .").wordCount())return!1;let t=e.grow(".");return t=t.ifNo("@hasComma @hasComma"),t=t.ifNo("@hasComma (and|or) ."),t=t.ifNo("(#City && @hasComma) #Country"),t=t.ifNo("(#WeekDay && @hasComma) #Date"),t=t.ifNo("(#Date+ && @hasComma) #Value"),t.found})),e.splitAfter(t)}(t),t=t.splitAfter("(@hasEllipses|@hasSemicolon|@hasDash|@hasColon)"),t=t.splitAfter("^#Pronoun (said|says)"),t=t.splitBefore("(said|says) #ProperNoun$"),t=t.splitBefore(". . if .{4}"),t=t.splitBefore("and while"),t=t.splitBefore("now that"),t=t.splitBefore("ever since"),t=t.splitBefore("(supposing|although)"),t=t.splitBefore("even (while|if|though)"),t=t.splitBefore("(whereas|whose)"),t=t.splitBefore("as (though|if)"),t=t.splitBefore("(til|until)"),"number"==typeof e&&(t=t.get(e)),t};var qu=function(){let e=[],t=null,n=null;this.docs.forEach((r=>{r.forEach((r=>{r.chunk!==n&&(t&&(t[2]=r.index[1],e.push(t)),n=r.chunk,t=[r.index[0],r.index[1]])}))})),t&&e.push(t);let r=this.update(e);return r=r.map((e=>e.has("")?e.nouns():e)),r};var Ku=function(e){e.prototype.chunks=qu,e.prototype.clauses=Lu};const Uu={this:"Noun",then:"Pivot"};var Ru=function(e){for(let t=0;t{for(let r=0;r{if("Verb"===e.chunk){const t=e.terms.find((e=>e.tags.has("Verb")));t||e.terms.forEach((e=>e.chunk=null))}}))};var nc={chunks:function(e){const{document:t,world:n}=e;Ru(t),Qu(t),Xu(e,t,n),ec(t),tc(t)}},rc={compute:nc,api:Ku,hooks:["chunks"]};const ac=/'s$/;var oc=function(e){class Possessives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Possessives"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(ac,""),e.normal=e.normal.replace(ac,"")}))})),this}}e.prototype.possessives=function(e){let t=function(e){let t=e.match("#Possessive+");return t.has("#Person")&&(t=t.growLeft("#Person+")),t.has("#Place")&&(t=t.growLeft("#Place+")),t.has("#Organization")&&(t=t.growLeft("#Organization+")),t}(this);return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Possessives(t.document,t.pointer)}};const ic=/\(/,sc=/\)/,lc=function(e,t){for(;t{e[0].pre=e[0].pre.replace(ic,"");let t=e[e.length-1];t.post=t.post.replace(sc,"")})),e}(this)}}e.prototype.parentheses=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Parentheses(t.document,t.pointer)}};const cc={'"':'"',""":""","'":"'","“":"”","‘":"’","‟":"”","‛":"’","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","`":"´","〟":"〞"},hc=RegExp("("+Object.keys(cc).join("|")+")"),dc=RegExp("("+Object.values(cc).join("|")+")"),mc=function(e,t){const n=e[t].pre.match(hc)[0]||"";if(!n||!cc[n])return null;const r=cc[n];for(;t{e[0].pre=e[0].pre.replace(hc,"");let t=e[e.length-1];t.post=t.post.replace(dc,"")}))}(this)}}e.prototype.quotations=function(e){let t=function(e){let t=[];return e.docs.forEach((e=>{for(let n=0;n"number"==typeof t?e.eq(t):e)(t,e),new Quotations(t.document,t.pointer)}};const gc=/\./g;var fc=function(e){class Acronyms extends e{constructor(e,t,n){super(e,t,n),this.viewType="Acronyms"}strip(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(gc,""),e.normal=e.normal.replace(gc,"")}))})),this}addPeriods(){return this.docs.forEach((e=>{e.forEach((e=>{e.text=e.text.replace(gc,""),e.normal=e.normal.replace(gc,""),e.text=e.text.split("").join(".")+".",e.normal=e.normal.split("").join(".")+"."}))})),this}}e.prototype.acronyms=function(e){let t=this.match("#Acronym");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Acronyms(t.document,t.pointer)}};var vc=function(e){class Adverbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adverbs"}json(e={}){const t=this.methods.two.transform.adjective.fromAdverb;return e.normal=!0,this.map((n=>{let r=n.toView().json(e)[0]||{};return r.adverb={adjective:t(r.normal)},r}),[])}}e.prototype.adverbs=function(e){let t=this.match("#Adverb");return t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),new Adverbs(t.document,t.pointer)}};const bc=(e,t)=>"number"==typeof t?e.eq(t):e,yc=function(e){const{fromComparative:t,fromSuperlative:n}=e.methods.two.transform.adjective;let r=e.text("normal");return e.has("#Comparative")?t(r,e.model):e.has("#Superlative")?n(r,e.model):r};var wc=function(e){class Adjectives extends e{constructor(e,t,n){super(e,t,n),this.viewType="Adjectives"}json(e={}){const{toAdverb:t,toNoun:n,toSuperlative:r,toComparative:a}=this.methods.two.transform.adjective;return e.normal=!0,this.map((o=>{let i=o.toView().json(e)[0]||{},s=yc(o);return i.adjective={adverb:t(s),noun:n(s),superlative:r(s,this.model),comparative:a(s,this.model)},i}),[])}adverbs(){return this.before("#Adverb+$").concat(this.after("^#Adverb+"))}conjugate(e){const{toComparative:t,toSuperlative:n,toNoun:r,toAdverb:a}=this.methods.two.transform.adjective;return bc(this,e).map((e=>{let o=yc(e);return{Adjective:o,Comparative:t(o,this.model),Superlative:n(o,this.model),Noun:r(o,this.model),Adverb:a(o,this.model)}}),[])}toComparative(e){const{toComparative:t}=this.methods.two.transform.adjective;return bc(this,e).map((e=>{let n=yc(e),r=t(n,this.model);return e.replaceWith(r)}))}toSuperlative(e){const{toSuperlative:t}=this.methods.two.transform.adjective;return bc(this,e).map((e=>{let n=yc(e),r=t(n,this.model);return e.replaceWith(r)}))}toAdverb(e){const{toAdverb:t}=this.methods.two.transform.adjective;return bc(this,e).map((e=>{let n=yc(e),r=t(n,this.model);return e.replaceWith(r)}))}toNoun(e){const{toNoun:t}=this.methods.two.transform.adjective;return bc(this,e).map((e=>{let n=yc(e),r=t(n,this.model);return e.replaceWith(r)}))}}e.prototype.adjectives=function(e){let t=this.match("#Adjective");return t=bc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.superlatives=function(e){let t=this.match("#Superlative");return t=bc(t,e),new Adjectives(t.document,t.pointer)},e.prototype.comparatives=function(e){let t=this.match("#Comparative");return t=bc(t,e),new Adjectives(t.document,t.pointer)}};const kc=function(e){let t=this.splitAfter("@hasComma");return t=t.match("#PhoneNumber+"),t=((e,t)=>"number"==typeof t?e.eq(t):e)(t,e),t},Pc=[["hyphenated","@hasHyphen ."],["hashTags","#HashTag"],["emails","#Email"],["emoji","#Emoji"],["emoticons","#Emoticon"],["atMentions","#AtMention"],["urls","#Url"],["pronouns","#Pronoun"],["conjunctions","#Conjunction"],["prepositions","#Preposition"],["abbreviations","#Abbreviation"],["honorifics","#Honorific"]];let Ac=[["emojis","emoji"],["atmentions","atMentions"]];var jc=function(e){Pc.forEach((t=>{e.prototype[t[0]]=function(e){let n=this.match(t[1]);return"number"==typeof e?n.get(e):n}})),e.prototype.phoneNumbers=kc,Ac.forEach((t=>{e.prototype[t[0]]=e.prototype[t[1]]}))},Nc={api:function(e){jc(e),oc(e),uc(e),pc(e),wc(e),vc(e),fc(e)}};const xc=function(e,t){e.docs.forEach((e=>{e.forEach(t)}))};var Ec={case:e=>{xc(e,(e=>{e.text=e.text.toLowerCase()}))},unicode:e=>{const t=e.world,n=t.methods.one.killUnicode;xc(e,(e=>e.text=n(e.text,t)))},whitespace:e=>{xc(e,(e=>{e.post=e.post.replace(/\s+/g," "),e.post=e.post.replace(/\s([.,?!:;])/g,"$1"),e.pre=e.pre.replace(/\s+/g,"")}))},punctuation:e=>{xc(e,(e=>{e.post=e.post.replace(/[–—-]/g," "),e.post=e.post.replace(/[,:;]/g,""),e.post=e.post.replace(/\.{2,}/g,""),e.post=e.post.replace(/\?{2,}/g,"?"),e.post=e.post.replace(/!{2,}/g,"!"),e.post=e.post.replace(/\?!+/g,"?")}));let t=e.docs,n=t[t.length-1];if(n&&n.length>0){let e=n[n.length-1];e.post=e.post.replace(/ /g,"")}},contractions:e=>{e.contractions().expand()},acronyms:e=>{e.acronyms().strip()},parentheses:e=>{e.parentheses().strip()},possessives:e=>{e.possessives().strip()},quotations:e=>{e.quotations().strip()},emoji:e=>{e.emojis().remove()},honorifics:e=>{e.match("#Honorific+ #Person").honorifics().remove()},adverbs:e=>{e.adverbs().remove()},nouns:e=>{e.nouns().toSingular()},verbs:e=>{e.verbs().toInfinitive()},numbers:e=>{e.numbers().toNumber()}};const Ic=e=>e.split("|").reduce(((e,t)=>(e[t]=!0,e)),{}),Tc="unicode|punctuation|whitespace|acronyms",Cc="|case|contractions|parentheses|quotations|emoji|honorifics",Dc={light:Ic(Tc),medium:Ic(Tc+Cc),heavy:Ic(Tc+Cc+"|possessives|adverbs|nouns|verbs")};var Oc={api:function(e){e.prototype.normalize=function(e="light"){return"string"==typeof e&&(e=Dc[e]),Object.keys(e).forEach((t=>{Ec.hasOwnProperty(t)&&Ec[t](this,e[t])})),this}}};var Gc=function(e){let t=e.match(""),n=t.match("@hasComma");return n=n.not("#Place"),n.found&&(t=t.splitAfter(n)),t=t.splitOn("#Expression"),t=t.splitOn("(he|she|we|you|they)"),t=t.splitOn("(#Noun|#Adjective) [#Pronoun]",0),t=t.splitOn("[#Pronoun] (#Determiner|#Value)",0),t=t.splitBefore("#Noun [(the|a|an)] #Adjective? #Noun",0),t=t.splitOn("[(here|there)] #Noun",0),t=t.splitOn("[#Noun] (here|there)",0),t=t.if("#Noun"),t};const Vc=["after","although","as if","as long as","as","because","before","even if","even though","ever since","if","in order that","provided that","since","so that","than","that","though","unless","until","what","whatever","when","whenever","where","whereas","wherever","whether","which","whichever","who","whoever","whom","whomever","whose"];var Bc=function(e){if(e.before("#Preposition$").found)return!0;if(!e.before().found)return!1;for(let t=0;t3&&n.endsWith("s")&&!n.endsWith("ss")};var $c=function(e){let t=function(e){let t=e.clone();return t=t.match("#Noun+"),t=t.remove("(#Adjective|#Preposition|#Determiner|#Value)"),t=t.not("#Possessive"),t=t.first(),t.found?t:e}(e);return{determiner:e.match("#Determiner").eq(0),adjectives:e.match("#Adjective"),number:e.values(),isPlural:zc(e,t),isSubordinate:Bc(e),root:t}};const Hc=e=>e.text(),Fc=e=>e.json({terms:!1,normal:!0}).map((e=>e.normal)),Sc=function(e){if(!e.found)return null;let t=e.values(0);if(t.found){return(t.parse()[0]||{}).num}return null};var Jc=function(e){let t=$c(e);return{root:Hc(t.root),number:Sc(t.number),determiner:Hc(t.determiner),adjectives:Fc(t.adjectives),isPlural:t.isPlural,isSubordinate:t.isSubordinate}};const Mc={tags:!0};var Wc=function(e,t){if(!0===t.isPlural)return e;if(!function(e){let{root:t}=e;return!t.has("^(#Uncountable|#Possessive|#ProperNoun|#Place|#Pronoun)+$")}(t))return e;const{methods:n,model:r}=e.world,{toPlural:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.match(t.root).replaceWith(o,Mc).tag("Plural","toPlural"),t.determiner.has("(a|an)")&&e.replace(t.determiner,"the",Mc),e};const Lc={tags:!0};var qc=function(e,t){if(!1===t.isPlural)return e;const{methods:n,model:r}=e.world,{toSingular:a}=n.two.transform.noun;let o=a(t.root.text("normal"),r);return e.replace(t.root,o,Lc).tag("Singular","toPlural"),e};const Kc=(e,t)=>"number"==typeof t?e.eq(t):e;var Uc=function(e){class Nouns extends e{constructor(e,t,n){super(e,t,n),this.viewType="Nouns"}parse(e){return Kc(this,e).map($c)}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{};return e&&!0!==e.noun&&(n.noun=Jc(t)),n}),[])}isPlural(e){let t=this.filter((e=>$c(e).isPlural));return Kc(t,e)}adjectives(e){let t=this.update([]);return this.forEach((e=>{let n=$c(e).adjectives;n.found&&(t=t.concat(n))})),Kc(t,e)}toPlural(e){return Kc(this,e).map((e=>Wc(e,$c(e))))}toSingular(e){return Kc(this,e).map((e=>{let t=$c(e);return qc(e,t)}))}update(e){let t=new Nouns(this.document,e);return t._cache=this._cache,t}}e.prototype.nouns=function(e){let t=Gc(this);return t=Kc(t,e),new Nouns(this.document,t.pointer)}},Rc={api:Uc};var Qc=function(e,t){let n=e.match("#Fraction+");return n=n.filter((e=>!e.lookBehind("#Value and$").found)),n=n.notIf("#Value seconds"),"number"==typeof t&&(n=n.eq(t)),n};var _c=e=>{const t=[{reg:/^(minus|negative)[\s-]/i,mult:-1},{reg:/^(a\s)?half[\s-](of\s)?/i,mult:.5}];for(let n=0;n{if(Zc.ones.hasOwnProperty(e)){if(t.ones||t.teens)return!1}else if(Zc.teens.hasOwnProperty(e)){if(t.ones||t.teens||t.tens)return!1}else if(Zc.tens.hasOwnProperty(e)&&(t.ones||t.teens||t.tens))return!1;return!0};var Yc=function(e){let t="0.";for(let n=0;ne=(e=(e=(e=(e=(e=(e=(e=e.replace(/1st$/,"1")).replace(/2nd$/,"2")).replace(/3rd$/,"3")).replace(/([4567890])r?th$/,"$1")).replace(/^[$€¥£¢]/,"")).replace(/[%$€¥£¢]$/,"")).replace(/,/g,"")).replace(/([0-9])([a-z\u00C0-\u00FF]{1,2})$/,"$1");const th=/^([0-9,. ]+)\/([0-9,. ]+)$/,nh={"a few":3,"a couple":2,"a dozen":12,"two dozen":24,zero:0},rh=e=>Object.keys(e).reduce(((t,n)=>t+=e[n]),0);var ah=function(e){if(!0===nh.hasOwnProperty(e))return nh[e];if("a"===e||"an"===e)return 1;const t=_c(e);let n=null,r={},a=0,o=!1;const i=(e=t.str).split(/[ -]/);for(let e=0;e#Value+] out of every? [#Value+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();return n&&r?(n=ih(n),r=ih(r),n&&r&&"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null):null}(e)||function(e){let t=e.match("[(#Cardinal|a)+] [#Fraction+]");if(!0!==t.found)return null;let{num:n,den:r}=t.groups();n=n.has("a")?1:ih(n);let a=r.text("reduced");return oh.test(a)&&(a=a.replace(oh,""),r=r.replaceWith(a)),r=sh.hasOwnProperty(a)?sh[a]:ih(r),"number"==typeof n&&"number"==typeof r?{numerator:n,denominator:r}:null}(e)||function(e){let t=e.match("^#Ordinal$");if(!0!==t.found)return null;if(e.lookAhead("^of ."))return{numerator:1,denominator:ih(t)};return null}(e)||null;return null!==t&&t.numerator&&t.denominator&&(t.decimal=t.numerator/t.denominator,t.decimal=(e=>{let t=Math.round(1e3*e)/1e3;return 0===t&&0!==e?e:t})(t.decimal)),t};var uh=function(e){if(e<1e6)return String(e);let t;return t="number"==typeof e?e.toFixed(0):e,-1===t.indexOf("e+")?t:t.replace(".","").split("e+").reduce((function(e,t){return e+Array(t-e.length+2).join(0)}))};const ch=[["ninety",90],["eighty",80],["seventy",70],["sixty",60],["fifty",50],["forty",40],["thirty",30],["twenty",20]],hh=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],dh=[[1e24,"septillion"],[1e20,"hundred sextillion"],[1e21,"sextillion"],[1e20,"hundred quintillion"],[1e18,"quintillion"],[1e17,"hundred quadrillion"],[1e15,"quadrillion"],[1e14,"hundred trillion"],[1e12,"trillion"],[1e11,"hundred billion"],[1e9,"billion"],[1e8,"hundred million"],[1e6,"million"],[1e5,"hundred thousand"],[1e3,"thousand"],[100,"hundred"],[1,"one"]],mh=function(e){let t=[];if(e>100)return t;for(let n=0;n=ch[n][1]&&(e-=ch[n][1],t.push(ch[n][0]));return hh[e]&&t.push(hh[e]),t};var ph=function(e){let t=e.num;if(0===t||"0"===t)return"zero";t>1e21&&(t=uh(t));let n=[];t<0&&(n.push("minus"),t=Math.abs(t));let r=function(e){let t=e,n=[];return dh.forEach((r=>{if(e>=r[0]){let e=Math.floor(t/r[0]);t-=e*r[0],e&&n.push({unit:r[1],count:e})}})),n}(t);for(let e=0;e1&&n.push("and")),n=n.concat(mh(r[e].count)),n.push(t)}return n=n.concat((e=>{const t=["zero","one","two","three","four","five","six","seven","eight","nine"];let n=[],r=uh(e).match(/\.([0-9]+)/);if(!r||!r[0])return n;n.push("point");let a=r[0].split("");for(let e=0;ee)),0===n.length&&(n[0]=""),n.join(" ")};var gh=function(e){if(!e.numerator||!e.denominator)return"";return`${ph({num:e.numerator})} out of ${ph({num:e.denominator})}`};const fh={one:"first",two:"second",three:"third",five:"fifth",eight:"eighth",nine:"ninth",twelve:"twelfth",twenty:"twentieth",thirty:"thirtieth",forty:"fortieth",fourty:"fourtieth",fifty:"fiftieth",sixty:"sixtieth",seventy:"seventieth",eighty:"eightieth",ninety:"ninetieth"};var vh=e=>{let t=ph(e).split(" "),n=t[t.length-1];return fh.hasOwnProperty(n)?t[t.length-1]=fh[n]:t[t.length-1]=n.replace(/y$/,"i")+"th",t.join(" ")};var bh=function(e){if(!e.numerator||!e.denominator)return"";let t=ph({num:e.numerator}),n=vh({num:e.denominator});return 2===e.denominator&&(n="half"),t&&n?(1!==e.numerator&&(n+="s"),`${t} ${n}`):""};const yh=(e,t)=>"number"==typeof t?e.eq(t):e;var wh=function(e){class Fractions extends e{constructor(e,t,n){super(e,t,n),this.viewType="Fractions"}parse(e){return yh(this,e).map(lh)}get(e){return yh(this,e).map(lh)}json(e){return yh(this,e).map((t=>{let n=t.toView().json(e)[0],r=lh(t);return n.fraction=r,n}),[])}toDecimal(e){return yh(this,e).forEach((e=>{let{decimal:t}=lh(e);(e=e.replaceWith(String(t),!0)).tag("NumericValue"),e.unTag("Fraction")})),this}toFraction(e){return yh(this,e).forEach((e=>{let t=lh(e);if(t&&"number"==typeof t.numerator&&"number"==typeof t.denominator){let n=`${t.numerator}/${t.denominator}`;this.replace(e,n)}})),this}toOrdinal(e){return yh(this,e).forEach((e=>{let t=lh(e),n=bh(t);e.after("^#Noun").found&&(n+=" of"),e.replaceWith(n)})),this}toCardinal(e){return yh(this,e).forEach((e=>{let t=lh(e),n=gh(t);e.replaceWith(n)})),this}toPercentage(e){return yh(this,e).forEach((e=>{let{decimal:t}=lh(e),n=100*t;n=Math.round(100*n)/100,e.replaceWith(`${n}%`)})),this}}e.prototype.fractions=function(e){let t=Qc(this);return t=yh(t,e),new Fractions(this.document,t.pointer)}};const kh="twenty|thirty|forty|fifty|sixty|seventy|eighty|ninety|fourty";var Ph=function(e){let t=e.match("#Value+");if(t.has("#NumericValue #NumericValue")&&(t.has("#Value @hasComma #Value")?t.splitAfter("@hasComma"):t.has("#NumericValue #Fraction")?t.splitAfter("#NumericValue #Fraction"):t=t.splitAfter("#NumericValue")),t.has("#Value #Value #Value")&&!t.has("#Multiple")&&t.has("("+kh+") #Cardinal #Cardinal")&&(t=t.splitAfter("("+kh+") #Cardinal")),t.has("#Value #Value")){t.has("#NumericValue #NumericValue")&&(t=t.splitOn("#Year")),t.has("("+kh+") (eleven|twelve|thirteen|fourteen|fifteen|sixteen|seventeen|eighteen|nineteen)")&&(t=t.splitAfter("("+kh+")"));let e=t.match("#Cardinal #Cardinal");if(e.found&&!t.has("(point|decimal|#Fraction)")&&!e.has("#Cardinal (#Multiple|point|decimal)")){let n=t.has(`(one|two|three|four|five|six|seven|eight|nine) (${kh})`),r=e.has("("+kh+") #Cardinal"),a=e.has("#Multiple #Value");n||r||a||e.terms().forEach((e=>{t=t.splitOn(e)}))}t.match("#Ordinal #Ordinal").match("#TextValue").found&&!t.has("#Multiple")&&(t.has("("+kh+") #Ordinal")||(t=t.splitAfter("#Ordinal"))),t=t.splitBefore("#Ordinal [#Cardinal]",0),t.has("#TextValue #NumericValue")&&!t.has("("+kh+"|#Multiple)")&&(t=t.splitBefore("#TextValue #NumericValue"))}return t=t.splitAfter("#NumberRange"),t=t.splitBefore("#Year"),t};var Ah=function(e){if("string"==typeof e)return{num:ah(e)};let t=e.text("reduced"),n=e.growRight("#Unit").match("#Unit$").text("machine"),r=/[0-9],[0-9]/.test(e.text("text"));if(1===e.terms().length&&!e.has("#Multiple")){let a=function(e,t){let n=(e=e.replace(/,/g,"")).split(/([0-9.,]*)/),[r,a]=n,o=n.slice(2).join("");return""!==a&&t.length<2?(a=Number(a||e),"number"!=typeof a&&(a=null),o=o||"","st"!==o&&"nd"!==o&&"rd"!==o&&"th"!==o||(o=""),{prefix:r||"",num:a,suffix:o}):null}(t,e);if(null!==a)return a.hasComma=r,a.unit=n,a}let a=e.match("#Fraction{2,}$");a=!1===a.found?e.match("^#Fraction$"):a;let o=null;a.found&&(a.has("#Value and #Value #Fraction")&&(a=a.match("and #Value #Fraction")),o=lh(a),t=(e=(e=e.not(a)).not("and$")).text("reduced"));let i=0;return t&&(i=ah(t)||0),o&&o.decimal&&(i+=o.decimal),{hasComma:r,prefix:"",num:i,suffix:"",isOrdinal:e.has("#Ordinal"),isText:e.has("#TextValue"),isFraction:e.has("#Fraction"),isMoney:e.has("#Money"),unit:n}};var jh=function(e){let t=e.num;if(!t&&0!==t)return null;let n=t%100;if(n>10&&n<20)return String(t)+"th";const r={0:"th",1:"st",2:"nd",3:"rd"};let a=uh(t),o=a.slice(a.length-1,a.length);return a+=r[o]?r[o]:"th",a};const Nh={"¢":"cents",$:"dollars","£":"pounds","¥":"yen","€":"euros","₡":"colón","฿":"baht","₭":"kip","₩":"won","₹":"rupees","₽":"ruble","₺":"liras"},xh={"%":"percent","°":"degrees"};var Eh=function(e){let t={suffix:"",prefix:e.prefix};return Nh.hasOwnProperty(e.prefix)&&(t.suffix+=" "+Nh[e.prefix],t.prefix=""),xh.hasOwnProperty(e.suffix)&&(t.suffix+=" "+xh[e.suffix]),t.suffix&&1===e.num&&(t.suffix=t.suffix.replace(/s$/,"")),!t.suffix&&e.suffix&&(t.suffix+=" "+e.suffix),t};var Ih=function(e,t){if("TextOrdinal"===t){let{prefix:t,suffix:n}=Eh(e);return t+vh(e)+n}if("Ordinal"===t)return e.prefix+jh(e)+e.suffix;if("TextCardinal"===t){let{prefix:t,suffix:n}=Eh(e);return t+ph(e)+n}let n=e.num;return e.hasComma&&(n=n.toLocaleString()),e.prefix+String(n)+e.suffix};const Th=(e,t)=>"number"==typeof t?e.eq(t):e;var Ch=function(e){class Numbers extends e{constructor(e,t,n){super(e,t,n),this.viewType="Numbers"}parse(e){return Th(this,e).map(Ah)}get(e){return Th(this,e).map(Ah).map((e=>e.num))}json(e){return Th(this,e).map((t=>{let n=t.toView().json(e)[0],r=Ah(t);return n.number={prefix:r.prefix,num:r.num,suffix:r.suffix,hasComma:r.hasComma,unit:r.unit},n}),[])}units(){return this.growRight("#Unit").match("#Unit$")}isOrdinal(){return this.if("#Ordinal")}isCardinal(){return this.if("#Cardinal")}toNumber(){return this.if("#TextValue").forEach((e=>{let t=Ah(e);if(null===t.num)return;let n=e.has("#Ordinal")?"Ordinal":"Cardinal",r=Ih(t,n);e.replaceWith(r,{tags:!0}),e.tag("NumericValue")})),this}toLocaleString(){return this.forEach((e=>{let t=Ah(e);if(null===t.num)return;let n=t.num.toLocaleString();if(e.has("#Ordinal")){let e=Ih(t,"Ordinal").match(/[a-z]+$/);e&&(n+=e[0]||"")}e.replaceWith(n,{tags:!0})})),this}toText(){let e=this.map((e=>{if(e.has("#TextValue"))return e;let t=Ah(e);if(null===t.num)return e;let n=e.has("#Ordinal")?"TextOrdinal":"TextCardinal",r=Ih(t,n);return e.replaceWith(r,{tags:!0}),e.tag("TextValue"),e}));return new Numbers(e.document,e.pointer)}toCardinal(){let e=this.map((e=>{if(!e.has("#Ordinal"))return e;let t=Ah(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextCardinal":"Cardinal",r=Ih(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Cardinal"),e}));return new Numbers(e.document,e.pointer)}toOrdinal(){let e=this.map((e=>{if(e.has("#Ordinal"))return e;let t=Ah(e);if(null===t.num)return e;let n=e.has("#TextValue")?"TextOrdinal":"Ordinal",r=Ih(t,n);return e.replaceWith(r,{tags:!0}),e.tag("Ordinal"),e}));return new Numbers(e.document,e.pointer)}isEqual(e){return this.filter((t=>Ah(t).num===e))}greaterThan(e){return this.filter((t=>Ah(t).num>e))}lessThan(e){return this.filter((t=>Ah(t).num{let r=Ah(n).num;return r>e&&r{let n=Ah(t);if(n.num=e,null===n.num)return t;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";t.has("#TextValue")&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Ih(n,r);return n.hasComma&&"Cardinal"===r&&(a=Number(a).toLocaleString()),(t=t.not("#Currency")).replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}add(e){if(!e)return this;"string"==typeof e&&(e=Ah(e).num);let t=this.map((t=>{let n=Ah(t);if(null===n.num)return t;n.num+=e;let r=t.has("#Ordinal")?"Ordinal":"Cardinal";n.isText&&(r=t.has("#Ordinal")?"TextOrdinal":"TextCardinal");let a=Ih(n,r);return t.replaceWith(a,{tags:!0}),t}));return new Numbers(t.document,t.pointer)}subtract(e,t){return this.add(-1*e,t)}increment(e){return this.add(1,e)}decrement(e){return this.add(-1,e)}update(e){let t=new Numbers(this.document,e);return t._cache=this._cache,t}}Numbers.prototype.toNice=Numbers.prototype.toLocaleString,Numbers.prototype.isBetween=Numbers.prototype.between,Numbers.prototype.minus=Numbers.prototype.subtract,Numbers.prototype.plus=Numbers.prototype.add,Numbers.prototype.equals=Numbers.prototype.isEqual,e.prototype.numbers=function(e){let t=Ph(this);return t=Th(t,e),new Numbers(this.document,t.pointer)},e.prototype.percentages=function(e){let t=Ph(this);return t=t.filter((e=>e.has("#Percent")||e.after("^percent"))),t=Th(t,e),new Numbers(this.document,t.pointer)},e.prototype.money=function(e){let t=Ph(this);return t=t.filter((e=>e.has("#Money")||e.after("^#Currency"))),t=Th(t,e),new Numbers(this.document,t.pointer)},e.prototype.values=e.prototype.numbers};var Dh={api:function(e){wh(e),Ch(e)}};const Oh={people:!0,emails:!0,phoneNumbers:!0,places:!0},Gh=function(e={}){return!1!==(e=Object.assign({},Oh,e)).people&&this.people().replaceWith("██████████"),!1!==e.emails&&this.emails().replaceWith("██████████"),!1!==e.places&&this.places().replaceWith("██████████"),!1!==e.phoneNumbers&&this.phoneNumbers().replaceWith("███████"),this},Vh={api:function(e){e.prototype.redact=Gh}};var Bh=Vh;var zh=function(e){const t=/\?/,{document:n}=e;return e.filter((e=>{let r=e.docs[0]||[],a=r[r.length-1];return!(!a||n[a.index[0]].length!==r.length)&&(!!t.test(a.post)||function(e){let t=e.clauses();return!(/\.\.$/.test(e.out("text"))||e.has("^#QuestionWord")&&e.has("@hasComma")||!e.has("or not$")&&!e.has("^#QuestionWord")&&!e.has("^(do|does|did|is|was|can|could|will|would|may) #Noun")&&!e.has("^(have|must) you")&&!t.has("(do|does|is|was) #Noun+ #Adverb? (#Adjective|#Infinitive)$"))}(e))}))};var $h=function(e){let t=e;return 1===t.length?t:(t=t.if("#Verb"),1===t.length?t:(t=t.ifNo("(after|although|as|because|before|if|since|than|that|though|when|whenever|where|whereas|wherever|whether|while|why|unless|until|once)"),t=t.ifNo("^even (if|though)"),t=t.ifNo("^so that"),t=t.ifNo("^rather than"),t=t.ifNo("^provided that"),1===t.length?t:(t=t.ifNo("(that|which|whichever|who|whoever|whom|whose|whomever)"),1===t.length?t:(t=t.ifNo("(despite|during|before|through|throughout)"),1===t.length?t:(0===t.length&&(t=e),t.eq(0))))))};const Hh=function(e){let t=null;return e.has("#PastTense")?t="PastTense":e.has("#FutureTense")?t="FutureTense":e.has("#PresentTense")&&(t="PresentTense"),{tense:t}};var Fh=function(e){let t=e.clauses(),n=$h(t).chunks(),r=e.none(),a=e.none(),o=e.none();return n.forEach(((e,t)=>{0!==t||e.has("")?a.found||!e.has("")?a.found&&(o=o.concat(e)):a=e:r=e})),a.found&&!r.found&&(r=a.before("+").first()),{subj:r,verb:a,pred:o,grammar:Hh(a)}};var Sh=function(e){let t=e.verbs(),n=t.eq(0);if(n.has("#PastTense"))return e;if(n.toPastTense(),t.length>1){t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.if("#PresentTense"),t=t.notIf("#Gerund");let n=e.match("to #Verb+ #Conjunction #Verb").terms();t=t.not(n),t.found&&t.verbs().toPastTense()}return e};var Jh=function(e){let t=e.verbs();return t.eq(0).toPresentTense(),t.length>1&&(t=t.slice(1),t=t.filter((e=>!e.lookBehind("to$").found)),t=t.notIf("#Gerund"),t.found&&t.verbs().toPresentTense()),e};var Mh=function(e){let t=e.verbs();if(t.eq(0).toFutureTense(),t=(e=e.fullSentence()).verbs(),t.length>1){t=t.slice(1);let e=t.filter((e=>!e.lookBehind("to$").found&&(!!e.has("#Copula #Gerund")||!e.has("#Gerund")&&(!!e.has("#Copula")||!(e.has("#PresentTense")&&!e.has("#Infinitive")&&e.lookBefore("(he|she|it|that|which)$").found)))));e.found&&e.forEach((e=>{if(e.has("#Copula"))return e.match("was").replaceWith("is"),void e.match("is").replaceWith("will be");e.toInfinitive()}))}return e};var Wh=function(e){return e.verbs().toInfinitive(),e};const Lh=(e,t)=>"number"==typeof t?e.eq(t):e;var qh=function(e){class Sentences extends e{constructor(e,t,n){super(e,t,n),this.viewType="Sentences"}json(e={}){return this.map((t=>{let n=t.toView().json(e)[0]||{},{subj:r,verb:a,pred:o,grammar:i}=Fh(t);return n.sentence={subject:r.text("normal"),verb:a.text("normal"),predicate:o.text("normal"),grammar:i},n}),[])}toPastTense(e){return Lh(this,e).map((e=>(Fh(e),Sh(e))))}toPresentTense(e){return Lh(this,e).map((e=>(Fh(e),Jh(e))))}toFutureTense(e){return Lh(this,e).map((e=>(Fh(e),e=Mh(e))))}toInfinitive(e){return Lh(this,e).map((e=>(Fh(e),Wh(e))))}toNegative(e){return Lh(this,e).map((e=>(Fh(e),function(e){return e.verbs().first().toNegative().compute("chunks"),e}(e))))}toPositive(e){return Lh(this,e).map((e=>(Fh(e),function(e){return e.verbs().first().toPositive().compute("chunks"),e}(e))))}isQuestion(e){return this.questions(e)}isExclamation(e){let t=this.filter((e=>e.lastTerm().has("@hasExclamation")));return Lh(t,e)}isStatement(e){let t=this.filter((e=>!e.isExclamation().found&&!e.isQuestion().found));return Lh(t,e)}update(e){let t=new Sentences(this.document,e);return t._cache=this._cache,t}}Sentences.prototype.toPresent=Sentences.prototype.toPresentTense,Sentences.prototype.toPast=Sentences.prototype.toPastTense,Sentences.prototype.toFuture=Sentences.prototype.toFutureTense;const t={sentences:function(e){let t=this.map((e=>e.fullSentence()));return t=Lh(t,e),new Sentences(this.document,t.pointer)},questions:function(e){let t=zh(this);return Lh(t,e)}};Object.assign(e.prototype,t)},Kh={api:qh};var Uh=function(e){return e.match("#Honorific+? #Person+")};var Rh=function(e){let t={};t.firstName=e.match("#FirstName+"),t.lastName=e.match("#LastName+"),t.honorific=e.match("#Honorific+");let n=t.lastName,r=t.firstName;return r.found&&n.found||r.found||n.found||!e.has("^#Honorific .$")||(t.lastName=e.match(".$")),t};const Qh="male",_h="female",Zh={mr:Qh,mrs:_h,miss:_h,madam:_h,king:Qh,queen:_h,duke:Qh,duchess:_h,baron:Qh,baroness:_h,count:Qh,countess:_h,prince:Qh,princess:_h,sire:Qh,dame:_h,lady:_h,ayatullah:Qh,congressman:Qh,congresswoman:_h,"first lady":_h,mx:null};var Xh=function(e,t){let{firstName:n,honorific:r}=e;if(n.has("#FemaleName"))return _h;if(n.has("#MaleName"))return Qh;if(r.found){let e=r.text("normal");if(e=e.replace(/\./g,""),Zh.hasOwnProperty(e))return Zh[e];if(/^her /.test(e))return _h;if(/^his /.test(e))return Qh}let a=t.after();if(!a.has("#Person")&&a.has("#Pronoun")){let e=a.match("#Pronoun");if(e.has("(they|their)"))return null;let t=e.has("(he|his)"),n=e.has("(she|her|hers)");if(t&&!n)return Qh;if(n&&!t)return _h}return null};const Yh=(e,t)=>"number"==typeof t?e.eq(t):e;var ed=function(e){class People extends e{constructor(e,t,n){super(e,t,n),this.viewType="People"}parse(e){return Yh(this,e).map(Rh)}json(e){return Yh(this,e).map((t=>{let n=t.toView().json(e)[0],r=Rh(t);return n.person={firstName:r.firstName.text("normal"),lastName:r.lastName.text("normal"),honorific:r.honorific.text("normal"),presumed_gender:Xh(r,t)},n}),[])}update(e){let t=new People(this.document,e);return t._cache=this._cache,t}}e.prototype.people=function(e){let t=Uh(this);return t=Yh(t,e),new People(this.document,t.pointer)}};var td=function(e){let t=e.match("(#Place|#Address)+"),n=t.match("@hasComma");return n=n.filter((e=>!!e.has("(asia|africa|europe|america)$")||(!e.has("(#City|#Region|#ProperNoun)$")||!e.after("^(#Country|#Region)").found))),t=t.splitAfter(n),t};var nd=function(e){e.prototype.places=function(t){let n=td(this);return n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,t),new e(this.document,n.pointer)}};var rd=function(e){e.prototype.organizations=function(e){return((e,t)=>"number"==typeof t?e.eq(t):e)(this.match("#Organization+"),e)}};const ad=function(e){let t=this.clauses(),n=t.people();return n=n.concat(t.places()),n=n.concat(t.organizations()),n=n.not("(someone|man|woman|mother|brother|sister|father)"),n=n.sort("seq"),n=((e,t)=>"number"==typeof t?e.eq(t):e)(n,e),n};var od=function(e){e.prototype.topics=ad};var id={api:function(e){ed(e),nd(e),rd(e),od(e)}};var sd=function(e){let t=e.match("");return t=t.not("(#Conjunction && !to)"),t=t.not("#Preposition"),t=t.splitAfter("@hasComma"),t=t.splitAfter("[(do|did|am|was|is|will)] (is|was)",0),t=t.splitBefore("(#Verb && !#Copula) [being] #Verb",0),t=t.splitBefore("#Verb [to be] #Verb",0),t=t.splitAfter("[help] #PresentTense",0),t=t.splitBefore("(#PresentTense|#PastTense) [#Copula]$",0),t=t.splitBefore("(#PresentTense|#PastTense) [will be]$",0),t=t.not("#Reflexive$"),t=t.if("#Verb"),t.has("(#Verb && !#Auxiliary) #Adverb+? #Copula")&&(t=t.splitBefore("#Copula")),t};var ld=function(e){let t=e;return e.wordCount()>1&&(t=e.not("(#Negative|#Auxiliary|#Modal|#Adverb|#Prefix)")),t.length>1&&!t.has("#Phrasal #Particle")&&(t=t.last()),t=t.not("(want|wants|wanted) to"),t.found||(t=e.not("#Negative")),t};var ud=function(e,t){let n={pre:e.none(),post:e.none()};if(!e.has("#Adverb"))return n;let r=e.splitOn(t);return 3===r.length?{pre:r.eq(0).adverbs(),post:r.eq(2).adverbs()}:r.eq(0).isDoc(t)?(n.post=r.eq(1).adverbs(),n):(n.pre=r.eq(0).adverbs(),n)};const cd=function(e,t){let n=e.splitBefore(t);if(n.length<=1)return e.none();let r=n.eq(0);return r=r.not("(#Adverb|#Negative|#Prefix)"),r},hd=function(e){return e.match("#Negative")},dd=function(e){if(!e.has("(#Particle|#PhrasalVerb)"))return{verb:e.none(),particle:e.none()};let t=e.match("#Particle$");return{verb:e.not(t),particle:t}};var md=function(e){let t=e.clone();t.contractions().expand();const n=ld(t);return{root:n,prefix:t.match("#Prefix"),adverbs:ud(t,n),auxiliary:cd(t,n),negative:hd(t),phrasal:dd(n)}};const pd={tense:"PresentTense"},gd={conditional:!0},fd={tense:"FutureTense"},vd={progressive:!0},bd={tense:"PastTense"},yd={complete:!0,progressive:!1},wd={passive:!0},kd=function(e){let t={};return e.forEach((e=>{Object.assign(t,e)})),t},Pd={imperative:[["#Imperative",[]]],"want-infinitive":[["^(want|wants|wanted) to #Infinitive$",[pd]],["^wanted to #Infinitive$",[bd]],["^will want to #Infinitive$",[fd]]],"gerund-phrase":[["^#PastTense #Gerund$",[bd]],["^#PresentTense #Gerund$",[pd]],["^#Infinitive #Gerund$",[pd]],["^will #Infinitive #Gerund$",[fd]],["^have #PastTense #Gerund$",[bd]],["^will have #PastTense #Gerund$",[bd]]],"simple-present":[["^#PresentTense$",[pd]],["^#Infinitive$",[pd]]],"simple-past":[["^#PastTense$",[bd]]],"simple-future":[["^will #Adverb? #Infinitive",[fd]]],"present-progressive":[["^(is|are|am) #Gerund$",[pd,vd]]],"past-progressive":[["^(was|were) #Gerund$",[bd,vd]]],"future-progressive":[["^will be #Gerund$",[fd,vd]]],"present-perfect":[["^(has|have) #PastTense$",[bd,yd]]],"past-perfect":[["^had #PastTense$",[bd,yd]],["^had #PastTense to #Infinitive",[bd,yd]]],"future-perfect":[["^will have #PastTense$",[fd,yd]]],"present-perfect-progressive":[["^(has|have) been #Gerund$",[bd,vd]]],"past-perfect-progressive":[["^had been #Gerund$",[bd,vd]]],"future-perfect-progressive":[["^will have been #Gerund$",[fd,vd]]],"passive-past":[["(got|were|was) #Passive",[bd,wd]],["^(was|were) being #Passive",[bd,wd]],["^(had|have) been #Passive",[bd,wd]]],"passive-present":[["^(is|are|am) #Passive",[pd,wd]],["^(is|are|am) being #Passive",[pd,wd]],["^has been #Passive",[pd,wd]]],"passive-future":[["will have been #Passive",[fd,wd,gd]],["will be being? #Passive",[fd,wd,gd]]],"present-conditional":[["would be #PastTense",[pd,gd]]],"past-conditional":[["would have been #PastTense",[bd,gd]]],"auxiliary-future":[["(is|are|am|was) going to (#Infinitive|#PresentTense)",[fd]]],"auxiliary-past":[["^did #Infinitive$",[bd,{plural:!1}]],["^used to #Infinitive$",[bd,yd]]],"auxiliary-present":[["^(does|do) #Infinitive$",[pd,yd,{plural:!0}]]],"modal-past":[["^(could|must|should|shall) have #PastTense$",[bd]]],"modal-infinitive":[["^#Modal #Infinitive$",[]]],infinitive:[["^#Infinitive$",[]]]};let Ad=[];Object.keys(Pd).map((e=>{Pd[e].forEach((t=>{Ad.push({name:e,match:t[0],data:kd(t[1])})}))}));var jd=Ad;var Nd=function(e,t){let n={};e=function(e,t){return e=e.clone(),t.adverbs.post&&t.adverbs.post.found&&e.remove(t.adverbs.post),t.adverbs.pre&&t.adverbs.pre.found&&e.remove(t.adverbs.pre),e.has("#Negative")&&(e=e.remove("#Negative")),e.has("#Prefix")&&(e=e.remove("#Prefix")),t.root.has("#PhrasalVerb #Particle")&&e.remove("#Particle$"),e.not("#Adverb")}(e,t);for(let t=0;t!(e.has("^(if|unless|while|but|for|per|at|by|that|which|who|from)")||t>0&&e.has("^#Verb . #Noun+$")||t>0&&e.has("^#Adverb")))),0===t.length?e:t}(t);let n=t.nouns(),r=n.last(),a=r.match("(i|he|she|we|you|they)");if(a.found)return a.nouns();let o=n.if("^(that|this|those)");return o.found||!1===n.found&&(o=t.match("^(that|this|those)"),o.found)?o:(r=n.last(),xd(r)&&(n.remove(r),r=n.last()),xd(r)&&(n.remove(r),r=n.last()),r)}(e);return{subject:t,plural:Ed(t,e)}};const Td=e=>e,Cd=(e,t)=>{let n=Id(e),r=n.subject;return!(!r.has("i")&&!r.has("we"))||n.plural},Dd=function(e,t){if(e.has("were"))return"are";let{subject:n,plural:r}=Id(e);return n.has("i")?"am":n.has("we")||r?"are":"is"},Od=function(e,t){let n=Id(e),r=n.subject;return r.has("i")||r.has("we")||n.plural?"do":"does"},Gd=function(e){return e.has("#Infinitive")?"Infinitive":e.has("#Participle")?"Participle":e.has("#PastTense")?"PastTense":e.has("#Gerund")?"Gerund":e.has("#PresentTense")?"PresentTense":void 0},Vd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb;let r=t.root.text({keepPunct:!1});return r=n(r,e.model,Gd(e)),r&&e.replace(t.root,r),e},Bd=e=>e.has("will not")?e.replace("will not","have not"):e.remove("will"),zd=function(e){if(!e||!e.isView)return[];return e.json({normal:!0,terms:!1,text:!1}).map((e=>e.normal))},$d=function(e){return e&&e.isView?e.text("normal"):""},Hd=function(e){const{toInfinitive:t}=e.methods.two.transform.verb;return t(e.text("normal"),e.model,Gd(e))};var Fd=function(e){let t=md(e);e=e.clone().toView();const n=Nd(e,t);return{root:t.root.text(),preAdverbs:zd(t.adverbs.pre),postAdverbs:zd(t.adverbs.post),auxiliary:$d(t.auxiliary),negative:t.negative.found,prefix:$d(t.prefix),infinitive:Hd(t.root),grammar:n}};const Sd={tags:!0};var Jd=function(e,t){const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;let o=a.terms().harden(),i=r.text("normal");if(i=n(i,e.model,Gd(r)),i&&e.replace(r,i,Sd).tag("Verb").firstTerm().tag("Infinitive"),o.found&&e.remove(o),t.negative.found){e.has("not")||e.prepend("not");let t=Od(e);e.prepend(t)}return e.fullSentence().compute(["lexicon","preTagger","postTagger","chunks"]),e};const Md={tags:!0},Wd={noAux:(e,t)=>(t.auxiliary.found&&(e=e.remove(t.auxiliary)),e),simple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;if(a.has("#Modal"))return e;let o=a.text({keepPunct:!1});return o=r(o,e.model,Gd(a)),o=n(o,e.model).PastTense,o="been"===o?"was":o,"was"===o&&(o=((e,t)=>{let{subject:n,plural:r}=Id(e);return r||n.has("we")?"were":"was"})(e)),o&&e.replace(a,o,Md),e},both:function(e,t){return t.negative.found?(e.replace("will","did"),e):(e=Wd.simple(e,t),e=Wd.noAux(e,t))},hasHad:e=>(e.replace("has","had",Md),e),hasParticiple:(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Gd(a)),n(o,e.model).Participle}},Ld={infinitive:Wd.simple,"simple-present":Wd.simple,"simple-past":Td,"simple-future":Wd.both,"present-progressive":e=>(e.replace("are","were",Md),e.replace("(is|are|am)","was",Md),e),"past-progressive":Td,"future-progressive":(e,t)=>(e.match(t.root).insertBefore("was"),e.remove("(will|be)"),e),"present-perfect":Wd.hasHad,"past-perfect":Td,"future-perfect":(e,t)=>(e.match(t.root).insertBefore("had"),e.has("will")&&(e=Bd(e)),e.remove("have"),e),"present-perfect-progressive":Wd.hasHad,"past-perfect-progressive":Td,"future-perfect-progressive":e=>(e.remove("will"),e.replace("have","had",Md),e),"passive-past":e=>(e.replace("have","had",Md),e),"passive-present":e=>(e.replace("(is|are)","was",Md),e),"passive-future":(e,t)=>(t.auxiliary.has("will be")&&(e.match(t.root).insertBefore("had been"),e.remove("(will|be)")),t.auxiliary.has("will have been")&&(e.replace("have","had",Md),e.remove("will")),e),"present-conditional":e=>(e.replace("be","have been"),e),"past-conditional":Td,"auxiliary-future":e=>(e.replace("(is|are|am)","was",Md),e),"auxiliary-past":Td,"auxiliary-present":e=>(e.replace("(do|does)","did",Md),e),"modal-infinitive":(e,t)=>(e.has("can")?e.replace("can","could",Md):(Wd.simple(e,t),e.match("#Modal").insertAfter("have").tag("Auxiliary")),e),"modal-past":Td,"want-infinitive":e=>(e.replace("(want|wants)","wanted",Md),e.remove("will"),e),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Wd.simple(e,t),Bd(e),e)};var qd=function(e,t,n){return Ld.hasOwnProperty(n)?((e=Ld[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Kd={tags:!0},Ud=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Gd(a)),!1===Cd(e)&&(o=n(o,e.model).PresentTense),a.has("#Copula")&&(o=Dd(e)),o&&(e=e.replace(a,o,Kd)).not("#Particle").tag("PresentTense"),e},Rd=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,a=t.root;let o=a.text("normal");return o=r(o,e.model,Gd(a)),!1===Cd(e)&&(o=n(o,e.model).Gerund),o&&(e=e.replace(a,o,Kd)).not("#Particle").tag("Gerund"),e},Qd={infinitive:Ud,"simple-present":(e,t)=>{const{conjugate:n}=e.methods.two.transform.verb;let{root:r}=t;if(!r.has("#Infinitive"))return Ud(e,t);{let t=Id(e).subject;if(Cd(e)||t.has("i"))return e;let a=r.text("normal"),o=n(a,e.model).PresentTense;a!==o&&e.replace(r,o,Kd)}return e},"simple-past":Ud,"simple-future":(e,t)=>{const{root:n,auxiliary:r}=t;if(r.has("will")&&n.has("be")){let t=Dd(e);e.replace(n,t),(e=e.remove("will")).replace("not "+t,t+" not")}else Ud(e,t),e=e.remove("will");return e},"present-progressive":Td,"past-progressive":(e,t)=>{let n=Dd(e);return e.replace("(were|was)",n,Kd)},"future-progressive":e=>(e.match("will").insertBefore("is"),e.remove("be"),e.remove("will")),"present-perfect":(e,t)=>(Ud(e,t),e=e.remove("(have|had|has)")),"past-perfect":(e,t)=>{let n=Id(e).subject;return Cd(e)||n.has("i")?((e=Vd(e,t)).remove("had"),e):(e.replace("had","has",Kd),e)},"future-perfect":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"present-perfect-progressive":Td,"past-perfect-progressive":e=>e.replace("had","has",Kd),"future-perfect-progressive":e=>(e.match("will").insertBefore("has"),e.remove("have").remove("will")),"passive-past":(e,t)=>{let n=Dd(e);return e.has("(had|have|has)")&&e.has("been")?(e.replace("(had|have|has)",n,Kd),e.replace("been","being"),e):e.replace("(got|was|were)",n)},"passive-present":Td,"passive-future":e=>(e.replace("will","is"),e.replace("be","being")),"present-conditional":Td,"past-conditional":e=>(e.replace("been","be"),e.remove("have")),"auxiliary-future":(e,t)=>(Rd(e,t),e.remove("(going|to)"),e),"auxiliary-past":(e,t)=>{if(t.auxiliary.has("did")){let n=Od(e);return e.replace(t.auxiliary,n),e}return Rd(e,t),e.replace(t.auxiliary,"is"),e},"auxiliary-present":Td,"modal-infinitive":Td,"modal-past":(e,t)=>(((e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,r=t.root;let a=t.root.text("normal");a=n(a,e.model,Gd(r)),a&&(e=e.replace(t.root,a,Kd))})(e,t),e.remove("have")),"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Ud(e,t),e.remove("(will|have)")),"want-infinitive":(e,t)=>{let n="wants";return Cd(e)&&(n="want"),e.replace("(want|wanted|wants)",n,Kd),e.remove("will"),e}};var _d=function(e,t,n){return Qd.hasOwnProperty(n)?((e=Qd[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const Zd={tags:!0},Xd=(e,t)=>{const{toInfinitive:n}=e.methods.two.transform.verb,{root:r,auxiliary:a}=t;if(r.has("#Modal"))return e;let o=r.text("normal");return o=n(o,e.model,Gd(r)),o&&(e=e.replace(r,o,Zd)).not("#Particle").tag("Verb"),e.prepend("will").match("will").tag("Auxiliary"),e.remove(a),e},Yd=(e,t)=>{const{conjugate:n,toInfinitive:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;let i=a.text("normal");return i=r(i,e.model,Gd(a)),i&&(i=n(i,e.model).Gerund,e.replace(a,i,Zd),e.not("#Particle").tag("PresentTense")),e.remove(o),e.prepend("will be").match("will be").tag("Auxiliary"),e},em={infinitive:Xd,"simple-present":Xd,"simple-past":Xd,"simple-future":Td,"present-progressive":Yd,"past-progressive":Yd,"future-progressive":Td,"present-perfect":e=>(e.match("(have|has)").replaceWith("will have"),e),"past-perfect":e=>e.replace("(had|has)","will have"),"future-perfect":Td,"present-perfect-progressive":e=>e.replace("has","will have"),"past-perfect-progressive":e=>e.replace("had","will have"),"future-perfect-progressive":Td,"passive-past":e=>e.has("got")?e.replace("got","will get"):e.has("(was|were)")?(e.replace("(was|were)","will be"),e.remove("being")):e.has("(have|has|had) been")?e.replace("(have|has|had) been","will be"):e,"passive-present":e=>(e.replace("being","will be"),e.remove("(is|are|am)"),e),"passive-future":Td,"present-conditional":e=>e.replace("would","will"),"past-conditional":e=>e.replace("would","will"),"auxiliary-future":Td,"auxiliary-past":e=>e.has("used")&&e.has("to")?(e.replace("used","will"),e.remove("to")):(e.replace("did","will"),e),"auxiliary-present":e=>e.replace("(do|does)","will"),"modal-infinitive":Td,"modal-past":Td,"gerund-phrase":(e,t)=>(t.root=t.root.not("#Gerund$"),Xd(e,t),e.remove("(had|have)")),"want-infinitive":e=>(e.replace("(want|wants|wanted)","will want"),e)};var tm=function(e,t,n){return e.has("will")||e.has("going to")?e:em.hasOwnProperty(n)?((e=em[n](e,t)).fullSentence().compute(["tagger","chunks"]),e):e};const nm={tags:!0};var rm=function(e,t){const{toInfinitive:n,conjugate:r}=e.methods.two.transform.verb,{root:a,auxiliary:o}=t;if(e.has("#Gerund"))return e;let i=a.text("normal");i=n(i,e.model,Gd(a));let s=r(i,e.model).Gerund;return s&&(s=`${Dd(e)} ${s}`,e.replace(a,s,nm)),o.found&&e.remove(o),e.replace("not is","is not"),e.replace("not are","are not"),e.fullSentence().compute(["tagger","chunks"]),e};const am={tags:!0},om=function(e,t){let n=Od(e);return e.prepend(n+" not"),e},im=function(e){let t=e.match("be");return t.found?(t.prepend("not"),e):(t=e.match("(is|was|am|are|will|were)"),t.found?(t.append("not"),e):e)},sm=e=>e.has("(is|was|am|are|will|were|be)"),lm={"simple-present":(e,t)=>!0===sm(e)?im(e):(e=Vd(e,t),e=om(e)),"simple-past":(e,t)=>!0===sm(e)?im(e):((e=Vd(e,t)).prepend("did not"),e),imperative:e=>(e.prepend("do not"),e),infinitive:(e,t)=>!0===sm(e)?im(e):om(e),"passive-past":e=>{if(e.has("got"))return e.replace("got","get",am),e.prepend("did not"),e;let t=e.match("(was|were|had|have)");return t.found&&t.append("not"),e},"auxiliary-past":e=>{if(e.has("used"))return e.prepend("did not"),e;let t=e.match("(did|does|do)");return t.found&&t.append("not"),e},"want-infinitive":(e,t)=>e=(e=om(e)).replace("wants","want",am)};var um=function(e,t,n){if(e.has("#Negative"))return e;if(lm.hasOwnProperty(n))return e=lm[n](e,t);let r=e.matchOne("be");return r.found?(r.prepend("not"),e):!0===sm(e)?im(e):(r=e.matchOne("(will|had|have|has|did|does|do|#Modal)"),r.found?(r.append("not"),e):e)};const cm=(e,t)=>"number"==typeof t?e.eq(t):e;var hm=function(e){class Verbs extends e{constructor(e,t,n){super(e,t,n),this.viewType="Verbs"}parse(e){return cm(this,e).map(md)}json(e,t){let n=cm(this,t).map((t=>{let n=t.toView().json(e)[0]||{};return n.verb=Fd(t),n}),[]);return n}subjects(e){return cm(this,e).map((e=>(md(e),Id(e).subject)))}adverbs(e){return cm(this,e).map((e=>e.match("#Adverb")))}isSingular(e){return cm(this,e).filter((e=>!0!==Id(e).plural))}isPlural(e){return cm(this,e).filter((e=>!0===Id(e).plural))}isImperative(e){return cm(this,e).filter((e=>e.has("#Imperative")))}toInfinitive(e){return cm(this,e).map((e=>{let t=md(e),n=Nd(e,t);return Jd(e,t,n.form)}))}toPresentTense(e){return cm(this,e).map((e=>{let t=md(e),n=Nd(e,t);return _d(e,t,n.form)}))}toPastTense(e){return cm(this,e).map((e=>{let t=md(e),n=Nd(e,t);return qd(e,t,n.form)}))}toFutureTense(e){return cm(this,e).map((e=>{let t=md(e),n=Nd(e,t);return tm(e,t,n.form)}))}toGerund(e){return cm(this,e).map((e=>{let t=md(e),n=Nd(e,t);return rm(e,t,n.form)}))}conjugate(e){return cm(this,e).map((e=>{let t=md(e),n=Nd(e,t);return"imperative"===n.form&&(n.form="simple-present"),{Infinitive:Jd(e.clone(),t,n.form).text("normal"),PastTense:qd(e.clone(),t,n.form).text("normal"),PresentTense:_d(e.clone(),t,n.form).text("normal"),FutureTense:tm(e.clone(),t,n.form).text("normal")}}),[])}isNegative(){return this.if("#Negative")}isPositive(){return this.ifNo("#Negative")}toPositive(){let e=this.match("do not #Verb");return e.found&&e.remove("do not"),this.remove("#Negative")}toNegative(e){return cm(this,e).map((e=>{let t=md(e),n=Nd(e,t);return um(e,t,n.form)}))}update(e){let t=new Verbs(this.document,e);return t._cache=this._cache,t}}Verbs.prototype.toPast=Verbs.prototype.toPastTense,Verbs.prototype.toPresent=Verbs.prototype.toPresentTense,Verbs.prototype.toFuture=Verbs.prototype.toFutureTense,e.prototype.verbs=function(e){let t=sd(this);return t=cm(t,e),new Verbs(this.document,t.pointer)}},dm={api:hm};v.plugin(rc),v.plugin(Nc),v.plugin(Oc),v.plugin(Rc),v.plugin(Dh),v.plugin(Bh),v.plugin(Kh),v.plugin(id),v.plugin(dm);export{v as default}; diff --git a/builds/two/compromise-two.cjs b/builds/two/compromise-two.cjs index d198d394e..0a90af39b 100644 --- a/builds/two/compromise-two.cjs +++ b/builds/two/compromise-two.cjs @@ -1 +1 @@ -var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((a=>{t.compute.hasOwnProperty(a)?n[a](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,a={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let a=this.update([t]);e(a,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let a=this.update([t]),r=e(a,n);return void 0===r?this.none():r}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let a=[];return n.forEach((e=>{a=a.concat(e.fullPointer)})),this.toView(a)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let a=this.update([t]);return e(a,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let a=this.update([t]);return e(a,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let a=this.update([t]);return e(a,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const r={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};r.group=r.groups,r.fullSentence=r.fullSentences,r.sentence=r.fullSentences,r.lastTerm=r.lastTerms,r.firstTerm=r.firstTerms;var o=r;const i=Object.assign({},o,n,a);i.get=i.eq;var s=i;class View{constructor(t,n,a={}){[["document",t],["world",e],["_groups",a],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,a=t||e.map(((e,t)=>[t]));return a.map((e=>{let[t,a,r,o,i]=e;return a=a||0,r=r||(n[t]||[]).length,n[t]&&n[t][a]&&(o=o||n[t][a].id,n[t][r-1]&&(i=i||n[t][r-1].id)),[t,a,r,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[a,r,o]=e;(1===e.length||0===r&&this.document[a].length===o)&&(n[t]=this._cache[a])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),a=new View(n);return a.world=this.world,a.compute(["normal","lexicon"]),this.world.compute.preTagger&&a.compute("preTagger"),a}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,a){const{methods:r,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(r,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>a[t]=e.lib[t])),e.tags&&a.addTags(e.tags),e.words&&a.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:a}=n;let r=new t([]);if(r.world=n,"number"==typeof e&&(e=String(e)),!e)return r;if("string"==typeof e)return new t(a.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return r};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let a=m(e,l,p);return n.contractions&&a.compute(["alias","normal","machine","contractions"]),a},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var b=f,y=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let a=[t,0].concat(n);Array.prototype.splice.apply(e,a)}return e},E=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const a=/[-.?!,;:)–—'"]/g;let r=e[t-1];if(!r)return;let o=r.post;if(a.test(o)){let e=o.match(a).join(""),t=n[n.length-1];t.post=e+t.post,r.post=r.post.replace(a,"")}},I=function(e,t,n,a){let[r,o,i]=t;0===o||i===a[r].length?E(n):(E(n),E([e[t[1]]])),function(e,t,n){let a=e[t];if(0!==t||!P(a.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let r=e[t];r.tags.has("ProperNoun")||r.tags.has("Acronym")||P(r.text)&&r.text.length>1&&(r.text=r.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let G=0;const N=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var D=function(e){let[t,n]=e.index||[0,0];G+=1,G=G>46655?0:G,t=t>46655?0:t,n=n>1294?0:n;let a=N(G.toString(36));a+=N(t.toString(36));let r=n.toString(36);return r=r.length<2?"0"+r:r,a+=r,a+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+a.toUpperCase()};const x=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},T=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:a,world:r}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=a[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:T(e)?T(e[0])?e[0]:e:[]}(e,r);0!==d.length&&(d=function(e){return e.map((e=>(e.id=D(e),e)))}(d),n?(x(t.update([u]).firstTerm()),I(h,u,d,a)):(x(t.update([u]).lastTerm()),function(e,t,n,a){let[r,,o]=t,i=(a[r]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(a,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(z,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,a);let r=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(r.docs[0]||[]).map((e=>Array.from(e.tags)));a.insertAfter(e),r.has("@hasContraction")&&a.contractions&&a.grow("@hasContraction+").contractions().expand(),a.delete(r);let i=a.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let a=this.match(e);return a.found?a.replaceWith(t,n):this}};var F=V,$=function(e,t){t.forEach((t=>{let[n,a,r]=t,o=r-a;e[n]&&(r===e[n].length&&r>1&&function(e,t){let n=e.length-1,a=e[n],r=e[n-t];r&&a&&(r.post+=a.post,r.post=r.post.replace(/ +([.?!,;:])/,"$1"),r.post=r.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(a,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],a=n[n.length-1];a&&(a.post=a.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),a=this;e&&(n=this,a=this.match(e)),n.has("@hasContraction")&&n.contractions&&n.grow("@hasContraction").contractions().expand();let r=n.fullPointer,o=a.fullPointer.reverse(),i=$(this.document,o);return r=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(r,t(o)),n.ptrs=r,n.document=i,n.compute("index"),e?n.toView(r):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let a=n[0];!0===t?a.pre+=e:a.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let a=n[n.length-1];!0===t?a.post+=e:a.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],a=n[n.length-1];return a.post=a.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let a=n[n.length-1];a.post=t+a.post})),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var L=J,M={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,a=t.normal.trim().length;return na?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let a=t[e.normal],r=t[n.normal];return ar?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,a)=>(n=e.update([n]),a=e.update([a]),t(n,a)))),e.ptrs=n,e}(this,e);e=e||"alpha";let a=n||t.map(((e,t)=>[t])),r=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:a[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(r=M.byFreq(r),this.update(r.map((e=>e.pointer)))):"function"==typeof M[e]?(r=r.sort(M[e]),this.update(r.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],a=n[n.length-1];return!1===/ /.test(a.post)&&(a.post+=" "),e=e.concat(t)};var Q={concat:function(e){const{methods:t,document:n,world:a}=this;if("string"==typeof e){let r=t.one.tokenize.fromString(e,a),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,r),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(r=e,"[object Array]"===Object.prototype.toString.call(r)){let t=R(this.document,e);return this.document=t,this.all()}var r;return this}},Z={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const _=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},B,F,H,L,U,Q,Z);var X=function(e){Object.assign(e.prototype,_)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const ae=/'/,re=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(ae)[0];if(re.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,pe=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],a=n.text.match(ge);return null!==a?!0===n.tags.has("PhoneNumber")||pe.test(n.text)?null:[a[1],"to",a[2]]:(a=n.text.match(me),null!==a?[a[1],"to",a[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,ye=new Set(["st","nd","rd","th","am","pm","max"]);var ve=function(e,t){let n=e[t].text.match(be);if(null!==n){let e=n[2].toLowerCase().trim();return ye.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ee={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,a){for(let r=0;r{let{world:t,document:n}=e;const{model:a,methods:r}=t;let o=a.one.contractions||[];new Set(a.one.units||[]),n.forEach(((a,i)=>{for(let s=a.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(a[s].normal)&&([l,u]=a[s].normal.split(we));let c=je(o,a[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](a,s,t)),!c&&Ee.hasOwnProperty(l)&&(c=Ee[l](a,s)),c?(c=Ie(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(a[s].normal)?(c=fe(a,s),c&&(c=Ie(c,e),ne(n,[i,s],c),r.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&r.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ve(a,s),c&&(c=Ie(c,e),ne(n,[i,s],c),r.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},Ne={model:te,compute:{contractions:Ge},hooks:["contractions"]},De=function(e,t,n){const{model:a,methods:r}=n,o=r.one.setTag,i=a.one._multiCache||{},s=a.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,a,r){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===xe.test(l)){let e=l.replace(xe,"");if(i.hasOwnProperty(e)&&e.length>3&&Te.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let r=e[a],o=(a=(a=a.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[a]=t[a]||r})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},ze={addWords:function(e){const t=this.world(),{methods:n,model:a}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:r,_multi:o}=n.two.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:r,_multi:o}=n.one.expandLexicon(e,t);Object.assign(a.one.lexicon,r),Object.assign(a.one._multiCache,o)}else Object.assign(a.one.lexicon,e)}},Ve={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Be}},compute:Oe,lib:ze,hooks:["lexicon"]},Fe=function(e,t){let n=[{}],a=[null],r=[0],o=[],i=0;e.forEach((function(e){let r=0,o=function(e,t){const{methods:n,model:a}=t;return n.one.tokenize.splitTerms(e,a).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=r[i];if(n.hasOwnProperty(i)){let e=n[i][l];r[u]=e,a[e]&&(a[u]=a[u]||[],a[u]=a[u].concat(a[e]))}else r[u]=0}}return{goNext:n,endAs:a,failTo:r}};const $e=function(e,t,n){let a=0,r=[];for(let o=0;o0&&(void 0===t.goNext[a]||!t.goNext[a].hasOwnProperty(i));)a=t.failTo[a]||0;if(t.goNext[a].hasOwnProperty(i)&&(a=t.goNext[a][i],t.endAs[a])){let n=t.endAs[a];for(let t=0;t0&&(a=a.concat(l))}return e.update(a)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Le=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const Me={buildTrie:function(e){const t=Fe(e,this.world());return Le(t)}};Me.compile=Me.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(a=e,"[object Object]"===Object.prototype.toString.call(a)?e:Fe(e,this.world));var a;let r=He(this,n,t);return r=r.settle(),r}},lib:Me};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},qe=function(e,t){let{ptrs:n,byGroup:a}=e;return n=Ke(n,t),Object.keys(a).forEach((e=>{a[e]=Ke(a[e],t)})),{ptrs:n,byGroup:a}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,Ze=function(e,t,n){const a=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=a.killUnicode(e,n),e=a.parseMatch(e,t,n)),e};var _e={matchOne:function(e,t,n){const a=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let r={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const a=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let r={regs:e=Ze(e,n,this.world),group:t},o=a.match(this.docs,r,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const a=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let r={regs:e=Ze(e,n,this.world),group:t,justOne:!0};return a.match(this.docs,r,this._cache).ptrs.length>0},if:function(e,t,n){const a=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let r={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return a.match(n.docs,r,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:a}=this,r=a.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ze(e,n,this.world);let o=this._cache||[],i=this.filter(((n,a)=>{let i={regs:e,group:t,justOne:!0};return 0===r.match(n.docs,i,o[a]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},Xe={before:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&r.push([t[0],0,t[1]])}));let i=this.toView(r);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:a}=this.methods.one.pointer;let r=[],o=a(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,a]=t;a{let o=n.before(e,t);if(o.found){let e=o.terms();a[r][1]-=e.length,a[r][3]=e.docs[0][0].id}})),this.update(a)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let a=this.fullPointer;return this.forEach(((n,r)=>{let o=n.after(e,t);if(o.found){let e=o.terms();a[r][2]+=e.length,a[r][4]=null}})),this.update(a)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Ye=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(a=e,"[object Array]"===Object.prototype.toString.call(a))?t.match(e,n):e||t.none();var a},tt=function(e,t){let[n,a,r]=e;return t.document[n]&&t.document[n][a]&&(e[3]=e[3]||t.document[n][a].id,t.document[n][r-1]&&(e[4]=e[4]||t.document[n][r-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Ye(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let a=et(e,this,t).fullPointer,r=n(this.fullPointer,a),o=[];return r.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Ye(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var at=nt;const rt=Object.assign({},_e,Xe,at);rt.lookBehind=rt.before,rt.lookBefore=rt.before,rt.lookAhead=rt.after,rt.lookAfter=rt.after,rt.notIf=rt.ifNo;var ot=function(e){Object.assign(e.prototype,rt)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let a=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?a.push(e):a=a.concat(e.split(lt))})),a=ct(a),a};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),pt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),yt=e=>e.substring(1),vt=e=>e.substring(0,e.length-1),wt=function(e){return e=yt(e),e=vt(e)},kt=function(e,t){let n={};for(let a=0;a<2;a+=1){if("$"===ft(e)&&(n.end=!0,e=vt(e)),"^"===bt(e)&&(n.start=!0,e=yt(e)),("["===bt(e)||"]"===ft(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=vt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=vt(e)),"?"===ft(e)&&(n.optional=!0,e=vt(e)),"!"===bt(e)&&(n.negative=!0,e=yt(e)),"~"===bt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===bt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=yt(n.choices[0]);let a=n.choices.length-1;n.choices[a]=vt(n.choices[a]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===bt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===bt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===bt(e)&&">"===ft(e))return e=wt(e),n.chunk=pt(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,a)=>(void 0===a?(n.min=Number(t),n.max=Number(t)):(a=a.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(a)):(n.min=Number(t),n.max=Number(a||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===bt(e)?(n.tag=yt(e),n.tag=pt(n.tag),n):"@"===bt(e)?(n.method=yt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var Et=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let a=e[t];if(a.word&&At.test(a.word)){let r=a.word.split(/[-–—]/g);if(n.hasOwnProperty(r[0]))continue;r=r.filter((e=>e)).reverse(),e.splice(t,1),r.forEach((n=>{let r=Object.assign({},a);r.word=n,e.splice(t,0,r)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},a=e.root;return n?n(a,t.model):[]},It=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Gt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Nt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(It(e,t)):"Adjective"===e.pos&&(n=n.concat(Gt(e,t))):(n=n.concat(jt(e,t)),n=n.concat(It(e,t)),n=n.concat(Gt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},Dt=function(e){return e=function(e){let t=0,n=null;for(let a=0;a(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},xt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let a=ht(e);return a=a.map((e=>Pt(e,t))),a=Et(a,n),a=Nt(a,n),a=Dt(a),a};const Tt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?a:n)+1;if(Math.abs(n-a)>(r||100))return r||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[r-1][o]+1,(c=h[r][o-1]+1)1&&o>1&&i===t[o-2]&&e[r-2]===s&&(c=h[r-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Bt.test(e.pre)||zt.test(e.post),hasComma:e=>$t(e,","),hasPeriod:e=>!0===$t(e,".")&&!1===$t(e,"..."),hasExclamation:e=>$t(e,"!"),hasQuestionMark:e=>$t(e,"?")||$t(e,"¿"),hasEllipses:e=>$t(e,"..")||$t(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>$t(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Vt.test(e.post)||Vt.test(e.pre),hasDash:e=>Ft.test(e.post)||Ft.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Jt=Ht;let Lt=function(){};Lt=function(e,t,n,a){let r=function(e,t,n,a){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==a-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Jt[t.method]&&!0===Jt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Lt(e,t,n,a))):t.choices.some((t=>Lt(e,t,n,a))))}(e,t,n,a);return!0===t.negative?!r:r};var Mt=Lt;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Kt(e,e.t).length=a-e.t),e.t=a,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],a=!1;for(let o=0;o{let r=0,o=e.t+a+t+r;if(void 0===e.terms[o])return!1;let i=Mt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let a=n.every(((t,n)=>{let a=e.t+n;return void 0!==e.terms[a]&&Mt(e.terms[a],t,a,e.phrase_length)}));return!0===a&&n.length>t&&(t=n.length),a}))&&t}(e);if(a){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Kt(e,e.t).length+=a),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=a,!0}return!!n.optional||null},Zt=function(e,t,n){let a=0;for(let r=e.t;ra||(e.t+=a,0))},_t=function(e){const{regs:t}=e;let n=t[e.r],a=Object.assign({},n);if(a.negative=!1,Mt(e.terms[e.t],a,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Mt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Mt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Zt(e,a,t[e.r+1]):(e.t+=1,!0)},Xt=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=Mt(a,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||r){let n=e.terms[e.t+1];n&&Mt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Yt=function(e){const{regs:t,phrase_length:n}=e;let a=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),a=e.t;for(;e.te.t?null:!0!==a.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],a=e.terms[e.t],r=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&Xt(e),a.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Yt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const a=Kt(e,t);e.t>1&&n.greedy?a.length+=e.t-t:a.length++}(e,r),!0):null)},nn=function(e,t,n,a){if(0===e.length||0===t.length)return null;let r={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:a,inGroup:null};for(;r.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Wt(e,r)){if(e.negative){if(!_t(r))return null}else if(!0!==Mt(r.terms[r.t],e,r.start_i+r.t,r.phrase_length)){if(!0!==e.optional)return null}else if(!tn(r))return null}else if(!tn(r))return null}else{if(e.negative&&e.anything)return null;if(!tn(r))return null}else if(!Qt(r))return null}else if(!Rt(r))return null}else if(!qt(r))return null}let o=[null,n,r.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(r.groups).forEach((e=>{let t=r.groups[e],a=n+t.start;i[e]=[null,a,a+t.length]})),{pointer:o,groups:i}},an=function(e,t){let n=[],a={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{a[t]=a[t]||[],a[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:a}};const rn=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let a=nn(e,t,0,e.length);return a?(a=rn(a,n),a):null};var sn=function(e,t,n){n=n||[];let{regs:a,group:r,justOne:o}=t,i=[];if(!a||0===a.length)return{ptrs:[],byGroup:{}};const s=a.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(r,a,t);e&&i.push(e)}}return!0===a[a.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=an(i,r),i.ptrs.forEach((t=>{let[n,a,r]=t;t[3]=e[n][a].id,t[4]=e[n][r-1].id})),i},ln={api:ot,methods:{one:{termMethods:Jt,parseMatch:xt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let a=n.methods.one.killUnicode;return a&&(e=a(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},a={};return Object.keys(t).forEach((r=>{let o=t[r],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(r);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let r=e[e.length-1].id;a[r]=a[r]||[],a[r].push(i.end)}))})),{starts:n,ends:a}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),a="";return this.docs.forEach((e=>{for(let r=0;r{let n=e.pre||"",r=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(r)&&(r=" "),r=r.replace(pn,""),r=r.replace(/\?!+/,"?"),r=r.replace(/!+/,"!"),r=r.replace(/\?+/,"?"),r=r.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(r=r.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),r=r.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),r="-"===r?" ":r.replace(gn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||r&&bn.test(r)||(r+=" "),a+=n+o+r})),!1===n&&(a=a.trim()),!0===t.lowerCase&&(a=a.toLowerCase()),a},vn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};vn.clean=vn.normal,vn.reduced=vn.root;var wn=vn;let kn=[],Pn=0;for(;Pn<64;)kn[Pn]=0|4294967296*Math.sin(++Pn%Math.PI);function An(e){let t,n,a,r=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Pn=i=0;Pn>4]+kn[i]+~~o[Pn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|a>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)r[--i]+=s[i]}for(e="";i<32;)e+=(r[i>>3]>>4*(1^i++)&15).toString(16);return e}const En={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const In=function(e,t){return Object.assign({},e,t)},Gn={text:e=>yn(e,{keepPunct:!0},!1),normal:e=>yn(e,In(wn.normal,{keepPunct:!0}),!1),implicit:e=>yn(e,In(wn.implicit,{keepPunct:!0}),!1),machine:e=>yn(e,jn,!1),root:e=>yn(e,In(jn,{form:"root"}),!1),hash:e=>An(yn(e,{keepPunct:!0},!1)),offset:e=>{let t=Gn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};Gn.sentences=Gn.sentence,Gn.clean=Gn.normal,Gn.reduced=Gn.root;const Nn={json:function(e){let t=(n=this,"string"==typeof(a=(a=e)||{})&&(a={}),(a=Object.assign({},En,a)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let r={};return Object.keys(a).forEach((o=>{a[o]&&Gn[o]&&(r[o]=Gn[o](e,n,t))})),r})));var n,a;return"number"==typeof e?t[e]:t}};Nn.data=Nn.json;var Dn=Nn,xn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Tn="";var Cn={green:e=>""+e+Tn,red:e=>""+e+Tn,blue:e=>""+e+Tn,magenta:e=>""+e+Tn,cyan:e=>""+e+Tn,yellow:e=>""+e+Tn,black:e=>""+e+Tn,dim:e=>""+e+Tn,i:e=>""+e+Tn},On=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Cn.blue("\n ──────")),t.forEach((e=>{console.log(Cn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],a=e.text||"-";e.sense&&(a="{"+e.sense+"}"),e.implicit&&(a="["+e.implicit+"]"),a=Cn.yellow(a);let r="'"+a+"'";r=r.padEnd(18);let o=Cn.blue(" │ ")+Cn.i(r)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Cn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Bn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Cn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Cn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Cn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Cn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},zn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let a=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{a=function(e,t,n){let a=((e,t,n)=>{let a=9*n,r=t.start+a,o=r+t.length;return[e.substring(0,r),e.substring(r,o),e.substring(o,e.length)]})(e,t,n);return`${a[0]}${Cn.blue(a[1])}${a[2]}`}(a,e.offset,t)})),console.log(a)}))},Vn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(xn(t),t):(!1!==e.tags&&(On(t),console.log("\n")),!0===e.chunks&&(Bn(t),console.log("\n")),!0===e.highlight&&(zn(t),console.log("\n")),t)};const Fn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var $n=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((a=>{e.match(a).fullPointer.forEach((e=>{n[e[3]]={fn:t[a],end:e[2]}}))})),n}(e,t),a="";return e.docs.forEach(((t,r)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Hn=Sn,Jn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let a=0;ar||r<=n&&o>n},qn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=qn(t),a=[];return e.forEach((e=>{let[t]=e,r=n[t]||[];if(r=r.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===r.length)return void a.push({passthrough:e});r=r.sort(((e,t)=>e[1]-t[1]));let o=e;r.forEach(((e,t)=>{let n=function(e,t){let[n,a]=e,r=t[1],o=t[2],i={};if(ao&&(i.after=[n,o,e[2]]),i}(o,e);r[t+1]?(a.push({before:n.before,match:n.match}),n.after&&(o=n.after)):a.push(n)}))})),a},Rn=function(e,t){let n=[];return e.forEach(((a,r)=>{if(!a)return;let[o,i,s,l,u]=a,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let a=0;a<20;a+=1){if(t[n-a]){let r=t[n-a].findIndex((t=>t.id===e));if(-1!==r)return[n-a,r]}if(t[n+a]){let r=t[n+a].findIndex((t=>t.id===e));if(-1!==r)return[n+a,r]}}return null}(l,t,o);if(null!==n){let a=s-i;c=t[n[0]].slice(n[1],n[1]+a);let o=c[0]?c[0].id:null;e[r]=[n[0],n[1],n[1]+a,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,a,,,r]=e,o=t[n],i=o.findIndex((e=>e.id===r));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(a,e[2]+1)}(a,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},Qn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===a[t].length)return void r.push(e);let n=a[t].filter((t=>Kn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);r.push(o)})),r=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},Xn=function(e,t){let n=qn(t),a=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Kn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},ea=function(e,t){return e.map((e=>{let[n,a]=e;return t[n]&&t[n][a]&&(e[3]=t[n][a].id),e}))},ta={union:function(e){e=Yn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=ea(t,this.document),this.toView(t)}};ta.and=ta.union,ta.intersection=function(e){e=Yn(e,this);let t=Xn(this.fullPointer,e.fullPointer);return t=ea(t,this.document),this.toView(t)},ta.not=function(e){e=Yn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=ea(t,this.document),this.toView(t)},ta.difference=ta.not,ta.complement=function(){let e=this.all(),t=_n(e.fullPointer,this.fullPointer);return t=ea(t,this.document),this.toView(t)},ta.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Zn(e,[t])})),e=ea(e,this.document),this.update(e)};var na=function(e){Object.assign(e.prototype,ta)},aa={methods:Qn,api:na},ra=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:a}=this,{methods:r}=n;let o=r.one.bulkMatch(a,e,this.methods,t);!1!==t.tagger&&r.one.bulkTagger(o,a,this.world),o=o.map((e=>{let t=e.pointer,n=a[t[0]][t[1]],r=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+r]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const oa=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ia=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(oa(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(oa(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:a,count:r}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=oa(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=a,e.minWant=r,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},sa=function(e,t){e=ia(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let a=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:a}},la=function(e,t){return e.map(((n,a)=>{let r=[];Object.keys(t).forEach((n=>{e[a].has(n)&&(r=r.concat(t[n]))}));let o={};return r=r.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),r}))},ua=function(e,t){return e.map(((e,n)=>{let a=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>a.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>a.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>a.has(e))).length>=e.minWant))}))},ca=function(e,t,n,a,r){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===r.matchOne))return[o[0]]}return o},ha=function(e,t,n,a={}){let r=n.one.cacheDoc(e),o=la(r,t.hooks);return o=ua(o,r),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let a=t[n].length;return e=e.filter((e=>a>=e.minWords)),e}))}(o,e),ca(o,e,r,n,a)},da=function(e,t,n){let a=n.one.tagSet;if(!a.hasOwnProperty(t))return!0;let r=a[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let r=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===da(u,e.tag,a))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${r}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,r),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},ma={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ra,methods:{one:{buildNet:sa,bulkMatch:ha,bulkTagger:ga}}};const pa=/ /,fa=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},ba=function(e,t,n,a){if(!0===e.tags.has(t))return null;if("."===t)return null;let r=n[t];if(r){if(r.not&&r.not.length>0)for(let t=0;t0)for(let t=0;t{let a=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,r),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),pa.test(t))!function(e,t,n,a){let r=t.split(pa);e.forEach(((e,t)=>{let o=r[t];o&&(o=o.replace(/^#/,""),ba(e,o,n,a))}))}(e,t,o,a);else{t=t.replace(/^#/,"");for(let n=0;nya(e,t,n,a)))};var va=ya,wa=function(e,t,n){t=t.trim().replace(/^#/,"");for(let a=0;a0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>ka({id:e}))),t}return[ka({id:e})]}(e))})),n=n.filter((e=>e));let a=n[0];for(let e=1;e{let n=[],a=[e];for(;a.length>0;){let e=a.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),a.push(n)}))}return n},ja=e=>"[object Array]"===Object.prototype.toString.call(e),Ia=e=>(e=e||"").trim(),Ga=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Pa.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Aa(e)})}));let a=function(e){let t={children:[]};return e.forEach(((n,a)=>{0===n.indent?t.children=t.children.concat(n.node):e[a-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=ka({});return e.forEach((e=>{if((e=ka(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ea(t=e).forEach(ka),t);var t},Na=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let a="";return Ea(e).forEach(((e,r)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===r&&!e.id)return;let i=e._cache.parents.length;a+=" ".repeat(i)+n+o+"\n"})),a},Da=function(e){let t=Ea(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},xa={text:Na,txt:Na,array:Da,flat:Da},Ta=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Na(e,!0)),null):xa.hasOwnProperty(t)?xa[t](e):e},Ca=e=>{Ea(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Oa=/\//;let Ba=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Ia(e),!Oa.test(e)){let t=this.json.children.find((t=>t.id===e));return new Ba(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!a)return null;e=a}return e})(this.json,e)||ka({});return new Ba(t)}add(e,t={}){if(ja(e))return e.forEach((e=>this.add(Ia(e),t))),this;e=Ia(e);let n=ka({id:e,props:t});return this.json.children.push(n),new Ba(n)}remove(e){return e=Ia(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ea(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ea(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ea(this.json)}fillDown(){var e;return e=this.json,Ea(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let a=e[n]||new Set;e[n]=new Set([...a,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let a=e[n]||{};e[n]=Object.assign({},t[n],a)}else ja(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Ca(this.json);let e=Ea(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Ca(this.json),Ta(this.json,e)}debug(){return Ca(this.json),Ta(this.json,"debug"),this}};const za=function(e){let t=Ga(e);return new Ba(t)};za.prototype.plugin=function(e){e(this)};var Va={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Fa=function(e){if(Va.hasOwnProperty(e.id))return Va[e.id];if(Va.hasOwnProperty(e.is))return Va[e.is];let t=e._cache.parents.find((e=>Va[e]));return Va[t]};var $a=function(e){const t={};return e.forEach((e=>{let{not:n,also:a,is:r,novel:o}=e.props,i=e._cache.parents;a&&(i=i.concat(a)),t[e.id]={is:r,not:n,novel:o,also:a,parents:i,children:e._cache.children,color:Fa(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Sa=function(e){return e?"string"==typeof e?[e]:e:[]};var Ha=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Sa(e[t].children),e[t].not=Sa(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Ja=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Ha(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const a={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:a,children:[]}}));return za(t).cache().fillDown().out("array")}(Object.assign({},t,e));return $a(n)},La={one:{setTag:va,unTag:wa,addTags:Ja}};const Ma=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Wa={tag:function(e,t="",n){if(!this.found||!e)return this;let a=this.termList();if(0===a.length)return this;const{methods:r,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Ma(e)?e.forEach((e=>r.one.setTag(a,e,i,n,t))):r.one.setTag(a,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:a,verbose:r,model:o}=this;!0===r&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Ma(e)?e.forEach((e=>a.one.unTag(n,e,i))):a.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],a=[];this.document.forEach(((e,t)=>{e.forEach(((e,r)=>{n.find((t=>e.tags.has(t)))&&a.push([t,r,r+1])}))}));let r=this.update(a);return this.difference(r)}};var Ka=Wa,qa=function(e){Object.assign(e.prototype,Ka)},Ua={addTags:function(e){const{model:t,methods:n}=this.world(),a=t.one.tagSet;let r=(0,n.one.addTags)(e,a);return t.one.tagSet=r,this}};const Ra=new Set(["Auxiliary","Possessive"]);var Qa=function(e){const{document:t,world:n}=e,a=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Ra.has(e)||!t.hasOwnProperty(n))return 1;if(Ra.has(n)||!t.hasOwnProperty(e))return-1;let a=t[e].children||[],r=a.length;return a=t[n].children||[],r-a.length})),e}(t,a)}))}))},Za={model:{one:{tagSet:{}}},compute:{tagRank:Qa},methods:La,api:qa,lib:Ua};const _a=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Xa=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Ya=/((?:\r?\n|\r)+)/;var er=function(e){let t=[],n=e.split(Ya);for(let e=0;e0&&(r.push(o),e[t]="")}return r};const or={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ir=RegExp("("+Object.keys(or).join("|")+")","g"),sr=RegExp("("+Object.values(or).join("|")+")","g"),lr=function(e){if(!e)return!1;let t=e.match(sr);return null!==t&&1===t.length};var ur=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var jr=function(e,t){let n=[],a=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const r=e.split(Ar);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wr(n),n=yr(n),n=n.filter((e=>e)),n};let Ir=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Gr=new RegExp(`^[${["%","_"].join("")}]+`,"");const Nr=/[\p{Punctuation}\s]+$/u,Dr=/^[\p{Punctuation}\s]+/u,xr=/['’]/,Tr=/^[a-z]\.([a-z]\.)+/i,Cr=/^'[0-9]{2}/;var Or=function(e){let t=e,n="",a="";return e=e.replace(Dr,(t=>{let a=t.match(Ir);return a?(n=t.replace(Ir,""),a):"'"===n&&Cr.test(e)?(n="",t):(n=t,"")})),e=e.replace(Nr,(r=>{let o=r.match(Gr);return o?(a=r.replace(Gr,""),o):xr.test(r)&&/[sn]['’]$/.test(t)&&!1===xr.test(n)?(a=a.replace(xr,""),"'"):!0===Tr.test(e)?(a=r.replace(/^\./,""),"."):(a=r,"")})),""===e&&(t=t.replace(/ *$/,(e=>(a=e||"",""))),e=t,n=""),{str:e,pre:n,post:a}},Br=function(e,t){const n=t.model.one.unicode||{};let a=(e=e||"").split("");return a.forEach(((e,t)=>{n[e]&&(a[t]=n[e])})),a.join("")},zr=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Vr=/([A-Z]\.)+[A-Z]?,?$/,Fr=/^[A-Z]\.,?$/,$r=/[A-Z]{2,}('s|,)?$/,Sr=/([a-z]\.)+[a-z]\.?$/;var Hr=function(e){return function(e){return!0===Vr.test(e)||!0===Sr.test(e)||!0===Fr.test(e)||!0===$r.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Jr=function(e,t){const n=t.methods.one.killUnicode;let a=e.text||"";a=zr(a),a=n(a,t),a=Hr(a),e.normal=a},Lr=function(e,t){const{methods:n,model:a}=t,{splitSentences:r,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=r(e=e||"",t).map((e=>{let n=o(e,a);return n=n.map(i),n.forEach((e=>{Jr(e,t)})),n})),e};const Mr=/[ .][A-Z]\.? *$/i,Wr=/(?:\u2026|\.{2,}) *$/,Kr=/\p{L}/u,qr=/^[A-Z]\. $/;var Ur={one:{killUnicode:Br,tokenize:{splitSentences:pr,isSentence:function(e,t){if(!1===Kr.test(e))return!1;if(!0===Mr.test(e))return!1;if(3===e.length&&qr.test(e))return!1;if(!0===Wr.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),a=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(a)},splitTerms:jr,splitWhitespace:e=>{let{str:t,pre:n,post:a}=Or(e);return{text:t,pre:n,post:a,tags:new Set}},fromString:Lr}}},Rr={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qr={},Zr={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qr[t]=!0,Zr[t]="Abbreviation",void 0!==e[1]&&(Zr[t]=[Zr[t],e[1]])}))}));var _r=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Xr={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Yr={};Object.keys(Xr).forEach((function(e){Xr[e].split("").forEach((function(t){Yr[t]=e}))}));const eo=/\//,to=/[a-z]\.[a-z]/i,no=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const a=t.model.one.aliases;if(a.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(a[n])),eo.test(n)&&!to.test(n)&&!no.test(n)){let t=n.split(eo);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ro=/^\p{Letter}+-\p{Letter}+$/u;var oo=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ro.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},io=function(e){let t=e.docs,n={};for(let e=0;eco(e,ao),machine:e=>co(e,oo),normal:e=>co(e,Jr),freq:io,offset:so,index:lo,wordCount:uo},methods:Ur,model:{one:{aliases:Rr,abbreviations:Qr,prefixes:_r,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Zr,unicode:Yr}},hooks:["alias","machine","index","id"]},go={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let a=n[n.length-1]||[],r=a[a.length-1];if(!r.post&&t.hasOwnProperty(r.normal)){let n=t[r.normal];r.implicit=n,r.machine=n,r.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const mo=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var po=function(e){e.prototype.autoFill=mo},fo=function(e,t,n){let a={},r=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete a[e]})),a};const bo={safe:!0,min:3};var yo={typeahead:function(e=[],t={}){let n=this.model();var a;t=Object.assign({},bo,t),a=e,"[object Object]"===Object.prototype.toString.call(a)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let r=fo(e,t,this.world());return Object.keys(r).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=r[e]})),this}},vo={model:{one:{typeahead:{}}},api:po,lib:yo,compute:go,hooks:["typeahead"]};b.extend(ee),b.extend(Wn),b.extend(ln),b.extend(aa),b.extend(Za),b.plugin(Ne),b.extend(ho),b.plugin(k),b.extend(We),b.extend(vo),b.extend(Ve),b.extend(ma);var wo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ko={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Po=36,Ao="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Eo=Ao.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var jo=function(e){if(void 0!==Eo[e])return Eo[e];let t=0,n=1,a=Po,r=1;for(;n=0;n--,r*=Po){let a=e.charCodeAt(n)-48;a>10&&(a-=7),t+=a*r}return t},Io=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[a];"!"===o[0]&&(t.push(r),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const a=No(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Do(ko[e]);Oo.test(e)?Object.keys(t).forEach((t=>{if(zo[t]=e,"Noun|Verb"===e){let e=Co(t,Vo);zo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Bo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Bo[e]="Emoticon")),delete Bo[""],delete Bo.null,delete Bo[" "];const Fo="Adjective";var $o={beforeTags:{Determiner:Fo,Possessive:Fo},afterTags:{Adjective:Fo},beforeWords:{seem:Fo,seemed:Fo,seems:Fo,feel:Fo,feels:Fo,felt:Fo,appear:Fo,appears:Fo,appeared:Fo,also:Fo,over:Fo,under:Fo,too:Fo,it:Fo,but:Fo,still:Fo,really:Fo,quite:Fo,well:Fo,very:Fo,deeply:Fo,profoundly:Fo,extremely:Fo,so:Fo,badly:Fo,mostly:Fo,totally:Fo,awfully:Fo,rather:Fo,nothing:Fo,something:Fo,anything:Fo,not:Fo,me:Fo},afterWords:{too:Fo,also:Fo,or:Fo}};const So="Gerund";var Ho={beforeTags:{Adverb:So,Preposition:So,Conjunction:So},afterTags:{Adverb:So,Possessive:So,Person:So,Pronoun:So,Determiner:So,Copula:So,Preposition:So,Conjunction:So,Comparative:So},beforeWords:{been:So,keep:So,continue:So,stop:So,am:So,be:So,me:So,began:So,start:So,starts:So,started:So,stops:So,stopped:So,help:So,helps:So,avoid:So,avoids:So,love:So,loves:So,loved:So,hate:So,hates:So,hated:So},afterWords:{you:So,me:So,her:So,him:So,them:So,their:So,it:So,this:So,there:So,on:So,about:So,for:So}},Jo={beforeTags:Object.assign({},$o.beforeTags,Ho.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},$o.afterTags,Ho.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},$o.beforeWords,Ho.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},$o.afterWords,Ho.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Lo="Singular";var Mo={beforeTags:{Determiner:Lo,Possessive:Lo,Acronym:Lo,Noun:Lo,Adjective:Lo,PresentTense:Lo,Gerund:Lo,PastTense:Lo,Infinitive:Lo,Date:Lo},afterTags:{Value:Lo,Modal:Lo,Copula:Lo,PresentTense:Lo,PastTense:Lo,Demonym:Lo},beforeWords:{the:Lo,with:Lo,without:Lo,of:Lo,for:Lo,any:Lo,all:Lo,on:Lo,cut:Lo,cuts:Lo,save:Lo,saved:Lo,saves:Lo,make:Lo,makes:Lo,made:Lo,minus:Lo,plus:Lo,than:Lo,another:Lo,versus:Lo,neither:Lo,favorite:Lo,best:Lo,daily:Lo,weekly:Lo,linear:Lo,binary:Lo,mobile:Lo,lexical:Lo,technical:Lo,computer:Lo,scientific:Lo,formal:Lo},afterWords:{of:Lo,system:Lo,aid:Lo,method:Lo,utility:Lo,tool:Lo,reform:Lo,therapy:Lo,philosophy:Lo,room:Lo,authority:Lo,says:Lo,said:Lo,wants:Lo,wanted:Lo}};const Wo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Ko={beforeTags:Object.assign({},$o.beforeTags,Mo.beforeTags,Wo.beforeTags),afterTags:Object.assign({},$o.afterTags,Mo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Mo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Mo.afterWords)};const qo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Uo={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},Ro={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Qo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Zo={beforeTags:Object.assign({},$o.beforeTags,qo),afterTags:Object.assign({},$o.afterTags,Uo),beforeWords:Object.assign({},$o.beforeWords,Ro),afterWords:Object.assign({},$o.afterWords,Qo)};const _o="Infinitive";var Xo={beforeTags:{Modal:_o,Adverb:_o,Negative:_o,Plural:_o},afterTags:{Determiner:_o,Adverb:_o,Possessive:_o,Preposition:_o},beforeWords:{i:_o,we:_o,you:_o,they:_o,to:_o,please:_o,will:_o,have:_o,had:_o,would:_o,could:_o,should:_o,do:_o,did:_o,does:_o,can:_o,must:_o,us:_o,me:_o,he:_o,she:_o,it:_o,being:_o},afterWords:{the:_o,me:_o,you:_o,him:_o,her:_o,them:_o,it:_o,a:_o,an:_o,up:_o,down:_o,by:_o,out:_o,off:_o,under:_o,when:_o,all:_o,to:_o,because:_o,although:_o,before:_o,how:_o,otherwise:_o,together:_o,though:_o,yet:_o}};const Yo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var ei={beforeTags:Object.assign({},$o.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},$o.afterTags,Xo.afterTags,Yo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Xo.afterWords,{to:void 0})};const ti={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ni={},ai={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ri={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var oi={beforeTags:Object.assign({},Ho.beforeTags,Mo.beforeTags,ti),afterTags:Object.assign({},Ho.afterTags,Mo.afterTags,ni),beforeWords:Object.assign({},Ho.beforeWords,Mo.beforeWords,ai),afterWords:Object.assign({},Ho.afterWords,Mo.afterWords,ri)},ii={beforeTags:Object.assign({},Xo.beforeTags,Mo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xo.afterTags,Mo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xo.beforeWords,Mo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xo.afterWords,Mo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const si="Person";var li={beforeTags:{Honorific:si,Person:si,Preposition:si},afterTags:{Person:si,ProperNoun:si,Verb:si},ownTags:{ProperNoun:si},beforeWords:{hi:si,hey:si,yo:si,dear:si,hello:si},afterWords:{said:si,says:si,told:si,tells:si,feels:si,felt:si,seems:si,thinks:si,thought:si,spends:si,spendt:si,plays:si,played:si,sing:si,sang:si,learn:si,learned:si,wants:si,wanted:si}};const ui="Month",ci={beforeTags:{Date:ui,Value:ui},afterTags:{Date:ui,Value:ui},beforeWords:{by:ui,in:ui,on:ui,during:ui,after:ui,before:ui,between:ui,until:ui,til:ui,sometime:ui,of:ui,this:ui,next:ui,last:ui,previous:ui,following:ui},afterWords:{sometime:ui,in:ui,of:ui,until:ui,the:ui}};var hi={beforeTags:Object.assign({},li.beforeTags,ci.beforeTags),afterTags:Object.assign({},li.afterTags,ci.afterTags),beforeWords:Object.assign({},li.beforeWords,ci.beforeWords),afterWords:Object.assign({},li.afterWords,ci.afterWords)};const di={Place:"Place"},gi={Place:"Place",Abbreviation:"Place"},mi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},pi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let fi="Unit";const bi="Honorific";let yi={first:bi,general:bi,royal:bi,vice:bi,rear:bi,major:bi};const vi={"Adj|Gerund":Jo,"Adj|Noun":Ko,"Adj|Past":Zo,"Adj|Present":ei,"Noun|Verb":ii,"Noun|Gerund":oi,"Person|Noun":{beforeTags:Object.assign({},Mo.beforeTags,li.beforeTags),afterTags:Object.assign({},Mo.afterTags,li.afterTags),beforeWords:Object.assign({},Mo.beforeWords,li.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Mo.afterWords,li.afterWords)},"Person|Date":hi,"Person|Verb":{beforeTags:Object.assign({},li.beforeTags,Xo.beforeTags),afterTags:Object.assign({},li.afterTags,Xo.afterTags),beforeWords:Object.assign({},li.beforeWords,Xo.beforeWords),afterWords:Object.assign({},li.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},di,li.beforeTags),afterTags:Object.assign({},gi,li.afterTags),beforeWords:Object.assign({},mi,li.beforeWords),afterWords:Object.assign({},pi,li.afterWords)},"Unit|Noun":{beforeTags:{Value:fi},afterTags:{},beforeWords:{per:fi,every:fi,each:fi,square:fi,cubic:fi,sq:fi,metric:fi},afterWords:{per:fi,squared:fi,cubed:fi,long:fi}},"Honorific|Noun":{beforeTags:{Honorific:bi,ProperNoun:bi,Ordinal:bi},afterTags:{Person:bi,ProperNoun:bi},beforeWords:Object.assign({},yi,{honorable:bi,honourable:bi,worship:bi,excellency:bi,majesty:bi,right:bi}),afterWords:yi}},wi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};vi["Plural|Verb"]={beforeWords:wi(vi["Noun|Verb"].beforeWords,{}),afterWords:wi(vi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:wi(vi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:wi(vi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var ki=vi;const Pi="Adjective",Ai="Infinitive",Ei="PresentTense",ji="Singular",Ii="PastTense",Gi="Adverb",Ni="Plural",Di="Actor",xi="Verb",Ti="Noun",Ci="LastName",Oi="Modal",Bi="Participle";var zi=[null,null,{ea:ji,ia:Ti,ic:Pi,ly:Gi,"'n":xi,"'t":xi},{oed:Ii,ued:Ii,xed:Ii," so":Gi,"'ll":Oi,"'re":"Copula",azy:Pi,eer:Ti,end:xi,ped:Ii,ffy:Pi,ify:Ai,ing:"Gerund",ize:Ai,ibe:Ai,lar:Pi,mum:Pi,nes:Ei,nny:Pi,ous:Pi,que:Pi,rol:ji,sis:ji,ogy:ji,oid:ji,ian:ji,zes:Ei,eld:Ii,ken:Bi,ven:Bi,ten:Bi,ect:Ai,ict:Ai,ign:Ai,ful:Pi,bal:Pi},{amed:Ii,aped:Ii,ched:Ii,lked:Ii,rked:Ii,reed:Ii,nded:Ii,mned:Pi,cted:Ii,dged:Ii,ield:ji,akis:Ci,cede:Ai,chuk:Ci,czyk:Ci,ects:Ei,ends:xi,enko:Ci,ette:ji,wner:ji,fies:Ei,fore:Gi,gate:Ai,gone:Pi,ices:Ni,ints:Ni,ruct:Ai,ines:Ni,ions:Ni,less:Pi,llen:Pi,made:Pi,nsen:Ci,oses:Ei,ould:Oi,some:Pi,sson:Ci,tion:ji,tage:Ti,ique:ji,tive:Pi,tors:Ti,vice:ji,lier:ji,fier:ji,wned:Ii,gent:ji,tist:ji,pist:ji,rist:ji,mist:ji,yist:ji,vist:ji,lite:ji,site:ji,rite:ji,mite:ji,bite:ji,mate:ji,date:ji,ndal:ji,vent:ji,uist:ji,gist:ji,note:ji,cide:ji,wide:Pi,vide:Ai,ract:Ai,duce:Ai,pose:Ai,eive:Ai,lyze:Ai,lyse:Ai,iant:Pi,nary:Pi},{elist:ji,holic:ji,phite:ji,tized:Ii,urned:Ii,eased:Ii,ances:Ni,bound:Pi,ettes:Ni,fully:Gi,ishes:Ei,ities:Ni,marek:Ci,nssen:Ci,ology:Ti,osome:ji,tment:ji,ports:Ni,rough:Pi,tches:Ei,tieth:"Ordinal",tures:Ni,wards:Gi,where:Gi,archy:Ti,pathy:Ti,opoly:Ti,embly:Ti,phate:Ti,ndent:ji,scent:ji,onist:ji,anist:ji,alist:ji,olist:ji,icist:ji,ounce:Ai,iable:Pi,borne:Pi,gnant:Pi,inant:Pi,igent:Pi,atory:Pi,rient:ji,dient:ji},{auskas:Ci,parent:ji,cedent:ji,ionary:ji,cklist:ji,keeper:Di,logist:Di,teenth:"Value"},{opoulos:Ci,borough:"Place",sdottir:Ci}];const Vi="Adjective",Fi="Noun",$i="Verb";var Si=[null,null,{},{neo:Fi,bio:Fi,"de-":$i,"re-":$i,"un-":$i},{anti:Fi,auto:Fi,faux:Vi,hexa:Fi,kilo:Fi,mono:Fi,nano:Fi,octa:Fi,poly:Fi,semi:Vi,tele:Fi,"pro-":Vi,"mis-":$i,"dis-":$i,"pre-":Vi},{anglo:Fi,centi:Fi,ethno:Fi,ferro:Fi,grand:Fi,hepta:Fi,hydro:Fi,intro:Fi,macro:Fi,micro:Fi,milli:Fi,nitro:Fi,penta:Fi,quasi:Vi,radio:Fi,tetra:Fi,"omni-":Vi,"post-":Vi},{pseudo:Vi,"extra-":Vi,"hyper-":Vi,"inter-":Vi,"intra-":Vi,"deca-":Vi},{electro:Fi}];const Hi="Adjective",Ji="Infinitive",Li="PresentTense",Mi="Singular",Wi="PastTense",Ki="Adverb",qi="Expression",Ui="Actor",Ri="Verb",Qi="Noun",Zi="LastName";var _i={a:[[/.[aeiou]na$/,Qi,"tuna"],[/.[oau][wvl]ska$/,Zi],[/.[^aeiou]ica$/,Mi,"harmonica"],[/^([hyj]a+)+$/,qi,"haha"]],c:[[/.[^aeiou]ic$/,Hi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Wi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Wi,"rammed"],[/.[aeiou][sg]hed$/,Wi,"gushed"],[/.[aeiou]red$/,Wi,"hired"],[/.[aeiou]r?ried$/,Wi,"hurried"],[/[^aeiou]ard$/,Mi,"steward"],[/[aeiou][^aeiou]id$/,Hi,""],[/.[vrl]id$/,Hi,"livid"],[/..led$/,Wi,"hurled"],[/.[iao]sed$/,Wi,""],[/[aeiou]n?[cs]ed$/,Wi,""],[/[aeiou][rl]?[mnf]ed$/,Wi,""],[/[aeiou][ns]?c?ked$/,Wi,"bunked"],[/[aeiou]gned$/,Wi],[/[aeiou][nl]?ged$/,Wi],[/.[tdbwxyz]ed$/,Wi],[/[^aeiou][aeiou][tvx]ed$/,Wi],[/.[cdflmnprstv]ied$/,Wi,"emptied"]],e:[[/.[lnr]ize$/,Ji,"antagonize"],[/.[^aeiou]ise$/,Ji,"antagonise"],[/.[aeiou]te$/,Ji,"bite"],[/.[^aeiou][ai]ble$/,Hi,"fixable"],[/.[^aeiou]eable$/,Hi,"maleable"],[/.[ts]ive$/,Hi,"festive"],[/[a-z]-like$/,Hi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Hi,"cornish"],[/.v[iy]ch$/,Zi,"..ovich"],[/^ug?h+$/,qi,"ughh"],[/^uh[ -]?oh$/,qi,"uhoh"],[/[a-z]-ish$/,Hi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Zi,"polish-male"]],k:[[/^(k){2}$/,qi,"kkkk"]],l:[[/.[gl]ial$/,Hi,"familial"],[/.[^aeiou]ful$/,Hi,"fitful"],[/.[nrtumcd]al$/,Hi,"natal"],[/.[^aeiou][ei]al$/,Hi,"familial"]],m:[[/.[^aeiou]ium$/,Mi,"magnesium"],[/[^aeiou]ism$/,Mi,"schism"],[/^[hu]m+$/,qi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Hi,"republican"],[/[^aeiou]ician$/,Ui,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,qi,"noooo"],[/^(yo)+$/,qi,"yoo"],[/^wo{2,}[pt]?$/,qi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Mi],[/[^i]fer$/,Ji],[/.[^aeiou][ao]pher$/,Ui],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Hi],[/[aeiou].*ist$/,Hi],[/^[a-z]et$/,Ri]],s:[[/.[^aeiou]ises$/,Li],[/.[rln]ates$/,Li],[/.[^z]ens$/,Ri],[/.[lstrn]us$/,Mi],[/.[aeiou]sks$/,Li],[/.[aeiou]kes$/,Li],[/[aeiou][^aeiou]is$/,Mi],[/[a-z]'s$/,Qi],[/^yes+$/,qi]],v:[[/.[^aeiou][ai][kln]ov$/,Zi]],y:[[/.[cts]hy$/,Hi],[/.[st]ty$/,Hi],[/.[tnl]ary$/,Hi],[/.[oe]ry$/,Mi],[/[rdntkbhs]ly$/,Ki],[/.(gg|bb|zz)ly$/,Hi],[/...lly$/,Ki],[/.[gk]y$/,Hi],[/[bszmp]{2}y$/,Hi],[/.[ai]my$/,Hi],[/[ea]{2}zy$/,Hi],[/.[^aeiou]ity$/,Mi]]};const Xi="Verb",Yi="Noun";var es={leftTags:[["Adjective",Yi],["Possessive",Yi],["Determiner",Yi],["Adverb",Xi],["Pronoun",Xi],["Value",Yi],["Ordinal",Yi],["Modal",Xi],["Superlative",Yi],["Demonym",Yi],["Honorific","Person"]],leftWords:[["i",Xi],["first",Yi],["it",Xi],["there",Xi],["not",Xi],["because",Yi],["if",Yi],["but",Yi],["who",Xi],["this",Yi],["his",Yi],["when",Yi],["you",Xi],["very","Adjective"],["old",Yi],["never",Xi],["before",Yi],["a","Singular"],["the",Yi],["been",Xi]],rightTags:[["Copula",Yi],["PastTense",Yi],["Conjunction",Yi],["Modal",Yi]],rightWords:[["there",Xi],["me",Xi],["man","Adjective"],["only",Xi],["him",Xi],["it",Xi],["were",Yi],["took",Yi],["himself",Xi],["went",Yi],["who",Yi],["jr","Person"]]},ts={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},ns={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},as={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},rs={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},os={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const is=/^.([0-9]+)/;var ss=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],a=n.match(is);if(null===a)return t.exceptions[e];let r=Number(a[1])||0;return e.substr(0,r)+n.replace(is,"")}(e,t);let a=t.rules;t.reversed&&(a=t.rev),a=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,a);for(let t=0;t{let n=e[0]||"",a=n[n.length-1]||"";t[a]=t[a]||[],t[a].push(e)})),t},us=/^([0-9]+)/,cs=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(us);if(null===n)return[e,t];let a=Number(n[1])||0,r=e.substring(0,a);return[e,r+t.replace(us,"")]}(n[0],n[1])}))};var hs=function(e={}){return(e=Object.assign({},e)).rules=cs(e.rules),e.rules=ls(e.rules),e.rev&&(e.rev=cs(e.rev),e.rev=ls(e.rev)),e.exceptions=cs(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},ds=function(e){let{rules:t,exceptions:n,rev:a}=e;var r;return r=n,n=Object.entries(r).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:a}};const gs=hs({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),ms=hs(rs),ps=hs(ns),fs=hs(as),bs=ds(gs),ys=ds(ms),vs=ds(ps),ws=ds(fs),ks=hs(ts),Ps=hs(os);var As={fromPast:gs,fromPresent:ms,fromGerund:ps,fromParticiple:fs,toPast:bs,toPresent:ys,toGerund:vs,toParticiple:ws,toComparative:ks,toSuperlative:Ps,fromComparative:ds(ks),fromSuperlative:ds(Ps)},Es=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),js=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],Is=function(e,t){const{irregularPlurals:n}=t.two;let a=(r=n,Object.keys(r).reduce(((e,t)=>(e[r[t]]=t,e)),{}));var r;if(a.hasOwnProperty(e))return a[e];for(let t=0;t(Ns[t].forEach((n=>e[n]=t)),e)),{});var Ds=Ns,xs=function(e){let t=e.substring(e.length-3);if(!0===Ds.hasOwnProperty(t))return Ds[t];let n=e.substring(e.length-2);return!0===Ds.hasOwnProperty(n)?Ds[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ts={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var Cs=function(e,t,n){const{fromPast:a,fromPresent:r,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",a={};t.one&&t.one.prefixes&&(a=t.one.prefixes);let[r,o]=e.split(/ /);return o&&!0===a[r]&&(n=r,r=o,o=""),{prefix:n,verb:r,particle:o}}(e,t),c="";if(n||(n=xs(e)),Ts.hasOwnProperty(e))c=Ts[e];else if("Participle"===n)c=ss(l,i);else if("PastTense"===n)c=ss(l,a);else if("PresentTense"===n)c=ss(l,r);else{if("Gerund"!==n)return e;c=ss(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Os=function(e,t){const{toPast:n,toPresent:a,toGerund:r,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:ss(i,n),PresentTense:ss(i,a),Gerund:ss(i,r),FutureTense:"will "+e},u=ss(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Bs={toInfinitive:Cs,conjugate:Os,all:function(e,t){let n=Os(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},zs=function(e="",t=[]){const n=e.length;for(let a=n<=6?n-1:6;a>=1;a-=1){let r=e.substring(n-a,e.length);if(!0===t[r.length].hasOwnProperty(r))return e.slice(0,n-a)+t[r.length][r]}return null};const Vs=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Fs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var $s=function(e){if(Fs.hasOwnProperty(e))return Fs[e];let t=zs(e,Vs);return t||e+"ly"};const Ss=function(e,t){const n=t.two.models.toSuperlative;return ss(e,n)},Hs=function(e,t){const n=t.two.models.toComparative;return ss(e,n)},Js="ically",Ls=new Set(["analyt"+Js,"chem"+Js,"class"+Js,"clin"+Js,"crit"+Js,"ecolog"+Js,"electr"+Js,"empir"+Js,"frant"+Js,"grammat"+Js,"ident"+Js,"ideolog"+Js,"log"+Js,"mag"+Js,"mathemat"+Js,"mechan"+Js,"med"+Js,"method"+Js,"method"+Js,"mus"+Js,"phys"+Js,"phys"+Js,"polit"+Js,"pract"+Js,"rad"+Js,"satir"+Js,"statist"+Js,"techn"+Js,"technolog"+Js,"theoret"+Js,"typ"+Js,"vert"+Js,"whims"+Js]),Ms=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Ws=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ks={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var qs=function(e){return e.endsWith("ly")?Ls.has(e)?e.replace(/ically/,"ical"):Ws.has(e)?null:Ks.hasOwnProperty(e)?Ks[e]:zs(e,Ms)||e:null};const Us=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Rs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},Qs=new Set(["terrible","annoying"]);var Zs={toSuperlative:Ss,toComparative:Hs,toAdverb:$s,toNoun:function(e){if(Rs.hasOwnProperty(e))return Rs[e];if(Qs.has(e))return null;let t=zs(e,Us);return t||e+"ness"},fromAdverb:qs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return ss(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return ss(e,n)},all:function(e,t){let n=[e];return n.push(Ss(e,t)),n.push(Hs(e,t)),n.push($s(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},_s={noun:Gs,verb:Bs,adjective:Zs},Xs={Singular:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.noun.toPlural(e,a);r[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,a)=>{let r=a.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,a);r[s]||(t[s]=t[s]||"Superlative");let l=i(e,a);r[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,a)=>{let r=n.two.transform.noun.toPlural(e,a);t[r]=t[r]||["Demonym","Plural"]},Infinitive:(e,t,n,a)=>{let r=a.one.lexicon,o=n.two.transform.verb.conjugate(e,a);Object.entries(o).forEach((e=>{r[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,a)=>{let r=a.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=a.one._multiCache,[i,s]=e.split(" ");r[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,a);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||r[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Ys=function(e,t){const{methods:n,model:a}=t;let r={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Xs.hasOwnProperty(i)&&Xs[i](t,r,n,a),r[t]=r[t]||i})),delete r[""],delete r.null,delete r[" "],{lex:r,_multi:o}},el=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let a=0;e.forEach(((r,o)=>{t.test(r.post)&&function(e,t){const n=/^[0-9]+$/;let a=e[t];if(!a)return!1;const r=new Set(["may","april","august","jan"]);if("like"===a.normal||r.has(a.normal))return!1;if(a.tags.has("Place")||a.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||r.has(e[t-1].normal)))return!1;let o=a.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(a,o+1)),a=o+1)})),ae.endsWith(t))):"s"===t&&!al.find((t=>e.endsWith(t)))},ol={two:{quickSplit:el,expandLexicon:Ys,transform:_s,looksPlural:rl}},il=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const sl=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,a)=>(t&&(e[a[0]]=t),e[a[1]]=n,e)),{})};var ll=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:a,toGerund:r,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=sl(n,"Infinitive","PastTense"),Object.assign(s,l),l=sl(a,"Infinitive","Verb"),Object.assign(s,l),l=sl(r,"Infinitive","Gerund"),Object.assign(s,l),l=sl(o,"Adjective","Superlative"),Object.assign(s,l),l=sl(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let ul={two:{models:As}};const cl={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},hl=function(e,t){const n={model:t,methods:ol};let{lex:a,_multi:r}=ol.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,a),Object.assign(t.one._multiCache,r),t},dl=function(e,t,n){let a=Os(e,ul);t[a.PastTense]=t[a.PastTense]||"PastTense",t[a.Gerund]=t[a.Gerund]||"Gerund",!0===n&&(t[a.PresentTense]=t[a.PresentTense]||"PresentTense")},gl=function(e,t){let n={};const a=t.one.lexicon;return Object.keys(e).forEach((r=>{const o=e[r];if(n[r]=cl[o],"Noun|Verb"!==o&&"Person|Verb"!==o||dl(r,a,!1),"Adj|Present"===o&&(dl(r,a,!0),function(e,t,n){let a=Ss(e,n);t[a]=t[a]||"Superlative";let r=Hs(e,n);t[r]=t[r]||"Comparative"}(r,a,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=Cs(r,ul,"Gerund");a[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=Cs(r,ul,"PastTense");a[e]||(n[e]="Infinitive")}})),t=hl(n,t)};var ml=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=hl(e.one.lexicon,e)).one.lexicon,e),e=gl(e.two.switches,e),e=ll(e),e=il(e)};let pl={one:{_multiCache:{},lexicon:Bo},two:{irregularPlurals:wo,models:As,suffixPatterns:zi,prefixPatterns:Si,endsWith:_i,neighbours:es,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:zo,clues:ki,uncountable:{},orgWords:Es}};pl=ml(pl);var fl=pl;const bl=/^(under|over|mis|re|un|dis|semi)-?/;var yl=function(e,t,n){const a=n.two.switches;let r=e[t];if(a.hasOwnProperty(r.normal))r.switch=a[r.normal];else if(bl.test(r.normal)){let e=r.normal.replace(bl,"");e.length>3&&a.hasOwnProperty(e)&&(r.switch=a[e])}},vl=function(e,t,n){if(!t||0===t.length)return;const a="undefined"!=typeof process&&process.env?process.env:self.env||{};a&&a.DEBUG_TAGS&&((e,t,n="")=>{let a=e.text||"["+e.implicit+"]";var r;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(r=a,""+r+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const wl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var kl=function(e,t,n){let a=e[t],r=Array.from(a.tags);for(let e=0;ee.tags.has(t)))||(rl(e.normal)?vl(e,"Plural","3-plural-guess"):vl(e,"Singular","3-singular-guess"))}(a),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=xs(e.normal);t&&vl(e,t,"3-verb-tense-guess")}}(a)};const Pl=/^\p{Lu}[\p{Ll}'’]/u,Al=/[0-9]/,El=["Date","Month","WeekDay","Unit"],jl=/^[IVXLCDM]{2,}$/,Il=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,Gl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var Nl=function(e,t,n){let a=e[t];a.index=a.index||[0,0];let r=a.index[1],o=a.text||"";return 0!==r&&!0===Pl.test(o)&&!1===Al.test(o)?El.find((e=>a.tags.has(e)))?null:(kl(e,t,n),a.tags.has("Noun")||a.tags.clear(),vl(a,"ProperNoun","2-titlecase"),!0):o.length>=2&&jl.test(o)&&Il.test(o)&&!Gl[a.normal]?(vl(a,"RomanNumeral","2-xvii"),!0):null};const Dl=function(e="",t=[]){const n=e.length;let a=7;n<=a&&(a=n-1);for(let r=a;r>1;r-=1){let a=e.substring(n-r,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null};var xl=function(e,t,n){let a=e[t];if(0===a.tags.size){let e=Dl(a.normal,n.two.suffixPatterns);if(null!==e)return vl(a,e,"2-suffix"),a.confidence=.7,!0;if(a.implicit&&(e=Dl(a.implicit,n.two.suffixPatterns),null!==e))return vl(a,e,"2-implicit-suffix"),a.confidence=.7,!0}return null};const Tl=/['‘’‛‵′`´]/,Cl=function(e,t){for(let n=0;nn-3&&(a=n-3);for(let n=a;n>2;n-=1){let a=e.substring(0,n);if(!0===t[a.length].hasOwnProperty(a))return t[a.length][a]}return null}(a.normal,n.two.prefixPatterns);if(null!==e)return vl(a,e,"2-prefix"),a.confidence=.5,!0}return null};const zl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Vl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!zl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Fl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},$l=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Sl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let a=Number(n.normal);if(a&&!isNaN(a)&&a>1400&&a<2100){let r=e[t-1],o=e[t+1];if(Vl(r)||Vl(o))return vl(n,"Year","2-tagYear");if(a>=1920&&a<2025){if(Fl(r)||Fl(o))return vl(n,"Year","2-tagYear-close");if($l(e[t-2])||$l(e[t+2]))return vl(n,"Year","2-tagYear-far");if(r&&(r.tags.has("Determiner")||r.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return vl(n,"Year","2-tagYear-noun")}}}return null};const Hl=/^[A-Z]('s|,)?$/,Jl=/^[A-Z-]+$/,Ll=/([A-Z]\.)+[A-Z]?,?$/,Ml=/[A-Z]{2,}('s|,)?$/,Wl=/([a-z]\.)+[a-z]\.?$/,Kl={I:!0,A:!0};var ql=function(e,t,n){let a=e[t];return a.tags.has("RomanNumeral")||a.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Jl.test(n)||n.length>5||Kl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Ll.test(n)&&!0!==Wl.test(n)&&!0!==Hl.test(n)&&!0!==Ml.test(n))}(a,n)?(a.tags.clear(),vl(a,["Acronym","Noun"],"3-no-period-acronym"),!0):!Kl.hasOwnProperty(a.text)&&Hl.test(a.text)?(a.tags.clear(),vl(a,["Acronym","Noun"],"3-one-letter-acronym"),!0):a.tags.has("Organization")&&a.text.length<=3?(vl(a,"Acronym","3-org-acronym"),!0):a.tags.has("Organization")&&Jl.test(a.text)&&a.text.length<=6?(vl(a,"Acronym","3-titlecase-acronym"),!0):null};const Ul=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Rl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var Ql=function(e,t,n){const{leftTags:a,leftWords:r,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ul(e[t-1],r),l=l||Ul(e[t+1],o),l=l||Rl(e[t-1],a),l=l||Rl(e[t+1],i),l)return vl(s,l,"3-[neighbour]"),kl(e,t,n),e[t].confidence=.2,!0}return null};const Zl=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var _l=function(e,t,n){const a=n.model.two.orgWords,r=n.methods.one.setTag;let o=e[t];if(!0===a[o.machine||o.normal]&&Zl(e[t-1])){r([e[t]],"Organization",n,null,"3-[org-word]");for(let a=t;a>=0&&Zl(e[a],a);a-=1)r([e[a]],"Organization",n,null,"3-[org-word]")}return null},Xl=function(e,t,n){0===e[t].tags.size&&(vl(e[t],"Noun","3-[fallback]"),kl(e,t,n),e[t].confidence=.1)};const Yl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,eu=(e,t,n)=>0!==t||e[1]?null:n,tu={"Adj|Gerund":(e,t)=>Yl(e,t),"Adj|Noun":(e,t)=>Yl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Yl(e,t),"Adj|Present":(e,t)=>Yl(e,t),"Noun|Gerund":(e,t)=>Yl(e,t),"Noun|Verb":(e,t)=>Yl(e,t)||eu(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Yl(e,t)||eu(e,t,"PresentTense"),"Person|Noun":(e,t)=>Yl(e,t),"Person|Verb":(e,t)=>0!==t?Yl(e,t):null};var nu=tu;const au="undefined"!=typeof process&&process.env?process.env:self.env||{},ru=/^(under|over|mis|re|un|dis|semi)-?/,ou=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,a=null;return t.hasOwnProperty(n)&&(a=t[n]),a&&au.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),a},iu=(e,t={},n)=>{if(!e||!t)return null;let a=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),r=a.find((e=>t[e]));return r&&au.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${r}) `),r=t[r],r};var su=function(e,t,n){const a=n.model,r=n.methods.one.setTag,{switches:o,clues:i}=a.two,s=e[t];let l=s.normal||s.implicit||"";if(ru.test(l)&&!o[l]&&(l=l.replace(ru,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,a){if(!n)return null;const r=a.one.tagSet;let o=ou(e[t+1],n.afterWords);return o=o||ou(e[t-1],n.beforeWords),o=o||iu(e[t-1],n.beforeTags,r),o=o||iu(e[t+1],n.afterTags,r),o}(e,t,i[o],a);nu[o]&&(u=nu[o](e,t)||u),u?(r([s],u,n,null,`3-[switch] (${o})`),kl(e,t,a)):au.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},lu=function(e,t,n){let a=e[t+1];if(!a)return;let{prefixes:r}=n.one,o=e[t];!0===r[o.normal]&&(a.tags.has("Verb")&&(vl(o,"Verb","3-[prefix]"),vl(o,"Prefix","3-[prefix]")),a.tags.has("Adjective")&&(vl(o,"Adjective","3-[prefix]"),vl(o,"Prefix","3-[prefix]")))};const uu={tagSwitch:yl,checkSuffix:xl,checkRegex:Ol,checkCase:Nl,checkPrefix:Bl,checkHyphen:lu,checkYear:Sl},cu={checkAcronym:ql,neighbours:Ql,orgWords:_l,nounFallback:Xl,switches:su},hu=function(e,t,n){for(let a=0;a{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var pu=function(e){const t=e.world,n=Object.keys(mu);e.docs.forEach((e=>{for(let a=0;a{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=Gu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Iu},Du=function(e,t,n){let[a,r]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[a,r+t],e))),n[0]&&(n[0].pre=e[a][r].pre,n[n.length-1].post=e[a][r].post,n[0].text=e[a][r].text,n[0].normal=e[a][r].normal),e[a].splice(r,1,...n))};const xu=/'/;var Tu=function(e,t){let n=e[t].normal.split(xu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let a=e[t+1];if(a&&a.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const Cu=/'/;var Ou=function(e,t){let n=e[t].normal.split(Cu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Bu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const zu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Vu={in:!0,by:!0,for:!0};var Fu=(e,t)=>{let n=e[t];if(zu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let a=e[t+1];if(!a)return!0;if(a.tags.has("Verb"))return!!a.tags.has("Infinitive")||!!a.tags.has("PresentTense");if(a.tags.has("Noun")){let e=a.machine||a.normal;return!("here"===e||"there"===e||"everywhere"===e||a.tags.has("Possessive")||a.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Vu[e[t-1].normal])return!0;let r=e[t+2];return!(!r||!r.tags.has("Noun")||r.tags.has("Pronoun"))||(a.tags.has("Adjective")||a.tags.has("Adverb")||a.tags.has("Verb"),!1)};const $u=/'/,Su=function(e,t,n,a){let r=t.update();r.document=[e];let o=n+a;n>0&&(n-=1),e[o]&&(o+=1),r.ptrs=[[0,n,o]],r.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Hu={d:(e,t)=>Ou(e,t),t:(e,t)=>Bu(e,t),s:(e,t,n)=>Fu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Tu(e,t)},Ju=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Lu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((a,r)=>{for(let o=a.length-1;o>=0;o-=1){if(a[o].implicit)return;let i=null;!0===$u.test(a[o].normal)&&([,i]=a[o].normal.split($u));let s=null;Hu.hasOwnProperty(i)&&(s=Hu[i](a,o,t)),s&&(s=Ju(s,e),Du(n,[r,o],s),Su(n[r],e,o,s.length))}}))}},Mu={compute:Lu,api:Nu,hooks:["contractionTwo"]};const Wu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Ku=["i","we","they"];let qu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Wu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Wu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Wu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Ku,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Ku,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Uu=null;var Ru={postTagger:function(e){const{world:t}=e,{model:n,methods:a}=t;Uu=Uu||a.one.buildNet(n.two.matches,t);let r=a.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(r);return o.cache(),o.sweep(Uu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const Qu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ru,model:{two:{matches:qu}},hooks:["postTagger"]};var Zu=Qu,_u=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let a=e._cache;return e.filter(((e,t)=>n.some((e=>a[t].has(e)))))},Xu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let a=this.tokenize(e),r=_u(a,n);return r.found?(r.compute(["index","tagger"]),r.match(t)):a.none()},Yu={lib:{lazy:Xu}},ec=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},tc=function(e,t,n){let a=e.split(/ /g).map((e=>`{${e}}`)).join(" "),r=this.match(a);return n&&(r=r.if(n)),r.has("#Verb")?ec(r,t):r.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(r,t):r.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let a=n(t);a&&e.replaceWith(a)}(r,t):r.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:a}=e.methods.two.transform.adjective;let r=t;e.has("#Comparative")?r=n(r,e.model):e.has("#Superlative")&&(r=a(r,e.model)),r&&e.replaceWith(r)}(r,t):this},nc={api:function(e){e.prototype.swap=tc}};return b.plugin(Au),b.plugin(Mu),b.plugin(Zu),b.plugin(Yu),b.plugin(nc),b},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); +var e,t;e=this,t=function(){var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t,r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2]))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e)return new t(r.one.tokenize.fromString(e,n));if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.6.0";var b=f,y=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},E=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},I=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?E(n):(E(n),E([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=a.text.replace(/^\p{Lu}/u,(e=>e.toLowerCase())))}(e,o,n),A(e,o,n)};let N=0;const D=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var x=function(e){let[t,n]=e.index||[0,0];N+=1,N=N>46655?0:N,t=t>46655?0:t,n=n>1294?0:n;let r=D(N.toString(36));r+=D(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const T=function(e){e.has("@hasContraction")&&"function"==typeof e.contractions&&e.grow("@hasContraction").contractions().expand()},C=e=>"[object Array]"===Object.prototype.toString.call(e),G=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:C(e)?C(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=x(e),e)))}(d),n?(T(t.update([u]).firstTerm()),I(h,u,d,r)):(T(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(z,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));r.insertAfter(e),a.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction+").contractions().expand(),r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},replace:function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this}};var V=H,F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const $={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;r.has("@hasContraction")&&r.contractions&&r.grow("@hasContraction").contractions().expand();let o=n.fullPointer,i=r.fullPointer.reverse(),s=F(this.document,i);return o=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};$.delete=$.remove;var S=$;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var M=J,L={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(a=L.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof L[e]?(a=a.sort(L[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var Q={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}},Z={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const X=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},B,V,S,M,U,Q,Z);var _=function(e){Object.assign(e.prototype,X)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null},le=function(e,t){return"ain't"===e[t].normal||"aint"===e[t].normal?null:[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,pe=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(ge);return null!==r?!0===n.tags.has("PhoneNumber")||pe.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,ye=new Set(["st","nd","rd","th","am","pm","max","°","s","e"]);var ve=function(e,t){let n=e[t].text.match(be);if(null!==n){let e=n[2].toLowerCase().trim();return ye.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ee={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=je(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ee.hasOwnProperty(l)&&(c=Ee[l](r,s)),c?(c=Ie(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=fe(r,s),c&&(c=Ie(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ve(r,s),c&&(c=Ie(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))},De={model:te,compute:{contractions:Ne},hooks:["contractions"]},xe=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e)return o([s],i[e],n,!1,"1-lexicon-alias"),!0}if(!0===Te.test(l)){let e=l.replace(Te,"");if(i.hasOwnProperty(e)&&e.length>3&&Ce.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null},Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}},ze={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}},He={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Be}},compute:Oe,lib:ze,hooks:["lexicon"]},Ve=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const Le={buildTrie:function(e){const t=Ve(e,this.world());return Me(t)}};Le.compile=Le.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ve(e,this.world));var r;let a=Se(this,n,t);return a=a.settle(),a}},lib:Le};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},qe=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ke(n,t),Object.keys(r).forEach((e=>{r[e]=Ke(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,Ze=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Xe={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Ze(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e))return e.fullPointer.length>0;if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ze(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}},_e={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Ye=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Ye(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Ye(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Xe,_e,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),pt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),yt=e=>e.substring(1),vt=e=>e.substring(0,e.length-1),wt=function(e){return e=yt(e),e=vt(e)},kt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=vt(e)),"^"===bt(e)&&(n.start=!0,e=yt(e)),("["===bt(e)||"]"===ft(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=vt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=vt(e)),"?"===ft(e)&&(n.optional=!0,e=vt(e)),"!"===bt(e)&&(n.negative=!0,e=yt(e)),"~"===bt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===bt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=yt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=vt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===bt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===bt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===bt(e)&&">"===ft(e))return e=wt(e),n.chunk=pt(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===bt(e)?(n.tag=yt(e),n.tag=pt(n.tag),n):"@"===bt(e)?(n.method=yt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var Et=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},It=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Nt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Dt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(It(e,t)):"Adjective"===e.pos&&(n=n.concat(Nt(e,t))):(n=n.concat(jt(e,t)),n=n.concat(It(e,t)),n=n.concat(Nt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))},xt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e},Tt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>Pt(e,t))),r=Et(r,n),r=Dt(r,n),r=xt(r),r};const Ct=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Gt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),$t=(e,t)=>-1!==e.pre.indexOf(t),St={hasQuote:e=>Bt.test(e.pre)||zt.test(e.post),hasComma:e=>Ft(e,","),hasPeriod:e=>!0===Ft(e,".")&&!1===Ft(e,"..."),hasExclamation:e=>Ft(e,"!"),hasQuestionMark:e=>Ft(e,"?")||Ft(e,"¿"),hasEllipses:e=>Ft(e,"..")||Ft(e,"…")||$t(e,"..")||$t(e,"…"),hasSemicolon:e=>Ft(e,";"),hasColon:e=>Ft(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ht.test(e.post)||Ht.test(e.pre),hasDash:e=>Vt.test(e.post)||Vt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};St.hasQuotation=St.hasQuote;var Jt=St;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Jt[t.method]&&!0===Jt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Lt=Mt;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max?(e.t=e.t+n.max,!0):(!0===e.hasGroup&&(Kt(e,e.t).length=r-e.t),e.t=r,!0)};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Lt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Lt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup&&(Kt(e,e.t).length+=r),!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null},Zt=function(e,t,n){let r=0;for(let a=e.t;ar||(e.t+=r,0))},Xt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Lt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];n&&(Lt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length)?e.r+=1:n.optional&&t[e.r+2]&&Lt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2))}return n.greedy?Zt(e,r,t[e.r+1]):(e.t+=1,!0)},_t=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Lt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Lt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}},Yt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null},en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}},tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;return!!(n.optional&&t[e.r+1]&&n.negative)||(n.optional&&t[e.r+1]&&_t(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy?null:!0!==n.greedy||Yt(e)?(!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Kt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0):null)},nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy){if(void 0===e.choices||"or"!==e.operator){if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything){if(!0!==Wt(e,a)){if(e.negative){if(!Xt(a))return null}else if(!0!==Lt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else if(!tn(a))return null}else if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else if(!Qt(a))return null}else if(!Rt(a))return null}else if(!qt(a))return null}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}},rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i},ln={api:ot,methods:{one:{termMethods:Jt,parseMatch:Tt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(a)&&(a=" "),a=a.replace(pn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(gn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&bn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},vn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};vn.clean=vn.normal,vn.reduced=vn.root;var wn=vn;let kn=[],Pn=0;for(;Pn<64;)kn[Pn]=0|4294967296*Math.sin(++Pn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Pn=i=0;Pn>4]+kn[i]+~~o[Pn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const En={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const In=function(e,t){return Object.assign({},e,t)},Nn={text:e=>yn(e,{keepPunct:!0},!1),normal:e=>yn(e,In(wn.normal,{keepPunct:!0}),!1),implicit:e=>yn(e,In(wn.implicit,{keepPunct:!0}),!1),machine:e=>yn(e,jn,!1),root:e=>yn(e,In(jn,{form:"root"}),!1),hash:e=>An(yn(e,{keepPunct:!0},!1)),offset:e=>{let t=Nn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};Nn.sentences=Nn.sentence,Nn.clean=Nn.normal,Nn.reduced=Nn.root;const Dn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},En,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&Nn[o]&&(a[o]=Nn[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};Dn.data=Dn.json;var xn=Dn,Tn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};const Cn="";var Gn={green:e=>""+e+Cn,red:e=>""+e+Cn,blue:e=>""+e+Cn,magenta:e=>""+e+Cn,cyan:e=>""+e+Cn,yellow:e=>""+e+Cn,black:e=>""+e+Cn,dim:e=>""+e+Cn,i:e=>""+e+Cn},On=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Gn.blue("\n ──────")),t.forEach((e=>{console.log(Gn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Gn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Gn.blue(" │ ")+Gn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Gn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))},Bn=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Gn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Gn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Gn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Gn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))},zn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Gn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))},Hn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Tn(t),t):(!1!==e.tags&&(On(t),console.log("\n")),!0===e.chunks&&(Bn(t),console.log("\n")),!0===e.highlight&&(zn(t),console.log("\n")),t)};const Vn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Fn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Sn=$n,Jn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},t,e)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},qn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var Un=function(e,t){let n=qn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r},Rn=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n},Qn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Kn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n},_n=function(e,t){let n=qn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Kn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},er=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},tr={union:function(e){e=Yn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)}};tr.and=tr.union,tr.intersection=function(e){e=Yn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.not=function(e){e=Yn(e,this);let t=Xn(this.fullPointer,e.fullPointer);return t=er(t,this.document),this.toView(t)},tr.difference=tr.not,tr.complement=function(){let e=this.all(),t=Xn(e.fullPointer,this.fullPointer);return t=er(t,this.document),this.toView(t)},tr.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Zn(e,[t])})),e=er(e,this.document),this.update(e)};var nr=function(e){Object.assign(e.prototype,tr)},rr={methods:Qn,api:nr},ar=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const or=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var ir=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(or(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(or(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=or(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e},sr=function(e,t){e=ir(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}},lr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))},ur=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>0===e.wants.length||e.wants.filter((e=>r.has(e))).length>=e.minWant))}))},cr=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o},hr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=lr(a,t.hooks);return o=ur(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),cr(o,e,a,n,r)},dr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===dr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))})))},mr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:ar,methods:{one:{buildNet:sr,bulkMatch:hr,bulkTagger:gr}}};const pr=/ /,fr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},br=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),1!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),pr.test(t))!function(e,t,n,r){let a=t.split(pr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),br(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nyr(e,t,n,r)))};var vr=yr,wr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>kr({id:e}))),t}return[kr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},jr=e=>"[object Array]"===Object.prototype.toString.call(e),Ir=e=>(e=e||"").trim(),Nr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||Pr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Ar(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=kr({});return e.forEach((e=>{if((e=kr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Er(t=e).forEach(kr),t);var t},Dr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Er(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},xr=function(e){let t=Er(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Tr={text:Dr,txt:Dr,array:xr,flat:xr},Cr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Dr(e,!0)),null):Tr.hasOwnProperty(t)?Tr[t](e):e},Gr=e=>{Er(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Or=/\//;let Br=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=Ir(e),!Or.test(e)){let t=this.json.children.find((t=>t.id===e));return new Br(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||kr({});return new Br(t)}add(e,t={}){if(jr(e))return e.forEach((e=>this.add(Ir(e),t))),this;e=Ir(e);let n=kr({id:e,props:t});return this.json.children.push(n),new Br(n)}remove(e){return e=Ir(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Er(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Er(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Er(this.json)}fillDown(){var e;return e=this.json,Er(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else jr(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Gr(this.json);let e=Er(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Gr(this.json),Cr(this.json,e)}debug(){return Gr(this.json),Cr(this.json,"debug"),this}};const zr=function(e){let t=Nr(e);return new Br(t)};zr.prototype.plugin=function(e){e(this)};var Hr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Vr=function(e){if(Hr.hasOwnProperty(e.id))return Hr[e.id];if(Hr.hasOwnProperty(e.is))return Hr[e.is];let t=e._cache.parents.find((e=>Hr[e]));return Hr[t]};var Fr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:Vr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const $r=function(e){return e?"string"==typeof e?[e]:e:[]};var Sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=$r(e[t].children),e[t].not=$r(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e},Jr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Sr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return zr(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Fr(n)},Mr={one:{setTag:vr,unTag:wr,addTags:Jr}};const Lr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Wr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Lr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Lr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Kr=Wr,qr=function(e){Object.assign(e.prototype,Kr)},Ur={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Rr=new Set(["Auxiliary","Possessive"]);var Qr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Rr.has(e)||!t.hasOwnProperty(n))return 1;if(Rr.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Zr={model:{one:{tagSet:{}}},compute:{tagRank:Qr},methods:Mr,api:qr,lib:Ur};const Xr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,_r=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Yr=/((?:\r?\n|\r)+)/;var ea=function(e){let t=[],n=e.split(Yr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const oa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},ia=RegExp("("+Object.keys(oa).join("|")+")","g"),sa=RegExp("("+Object.values(oa).join("|")+")","g"),la=function(e){if(!e)return!1;let t=e.match(sa);return null!==t&&1===t.length};var ua=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var ja=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Aa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=wa(n),n=ya(n),n=n.filter((e=>e)),n};let Ia=new RegExp(`[${["#","@","_","+","."].join("")}]+$`,""),Na=new RegExp(`^[${["%","_","°"].join("")}]+`,"");const Da=/[\p{Punctuation}\s]+$/u,xa=/^[\p{Punctuation}\s]+/u,Ta=/['’]/,Ca=/^[a-z]\.([a-z]\.)+/i,Ga=/^'[0-9]{2}/,Oa=/^-[0-9]/;var Ba=function(e){let t=e,n="",r="";return e=e.replace(xa,(t=>{let r=t.match(Ia);return r?(n=t.replace(Ia,""),r):"'"===n&&Ga.test(e)?(n="",t):"-"===t&&Oa.test(e)?t:(n=t,"")})),e=e.replace(Da,(a=>{let o=a.match(Na);return o?(r=a.replace(Na,""),o):Ta.test(a)&&/[sn]['’]$/.test(t)&&!1===Ta.test(n)?(r=r.replace(Ta,""),"'"):!0===Ca.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}},za=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")},Ha=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Va=/([A-Z]\.)+[A-Z]?,?$/,Fa=/^[A-Z]\.,?$/,$a=/[A-Z]{2,}('s|,)?$/,Sa=/([a-z]\.)+[a-z]\.?$/;var Ja=function(e){return function(e){return!0===Va.test(e)||!0===Sa.test(e)||!0===Fa.test(e)||!0===$a.test(e)}(e)&&(e=e.replace(/\./g,"")),e},Ma=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ha(r),r=n(r,t),r=Ja(r),e.normal=r},La=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Ma(e,t)})),n})),e};const Wa=/[ .][A-Z]\.? *$/i,Ka=/(?:\u2026|\.{2,}) *$/,qa=/\p{L}/u,Ua=/^[A-Z]\. $/;var Ra={one:{killUnicode:za,tokenize:{splitSentences:pa,isSentence:function(e,t){if(!1===qa.test(e))return!1;if(!0===Wa.test(e))return!1;if(3===e.length&&Ua.test(e))return!1;if(!0===Ka.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},splitTerms:ja,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ba(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:La}}},Qa={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Za={},Xa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Za[t]=!0,Xa[t]="Abbreviation",void 0!==e[1]&&(Xa[t]=[Xa[t],e[1]])}))}));var _a=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let Ya={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},eo={};Object.keys(Ya).forEach((function(e){Ya[e].split("").forEach((function(t){eo[t]=e}))}));const to=/\//,no=/[a-z]\.[a-z]/i,ro=/[0-9]/;var ao=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),to.test(n)&&!no.test(n)&&!ro.test(n)){let t=n.split(to);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const oo=/^\p{Letter}+-\p{Letter}+$/u;var io=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),oo.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)},so=function(e){let t=e.docs,n={};for(let e=0;eho(e,ao),machine:e=>ho(e,io),normal:e=>ho(e,Ma),freq:so,offset:lo,index:uo,wordCount:co},methods:Ra,model:{one:{aliases:Qa,abbreviations:Za,prefixes:_a,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Xa,unicode:eo}},hooks:["alias","machine","index","id"]},mo={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const po=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var fo=function(e){e.prototype.autoFill=po},bo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const yo={safe:!0,min:3};var vo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},yo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=bo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}},wo={model:{one:{typeahead:{}}},api:fo,lib:vo,compute:mo,hooks:["typeahead"]};b.extend(ee),b.extend(Wn),b.extend(ln),b.extend(rr),b.extend(Zr),b.plugin(De),b.extend(go),b.plugin(k),b.extend(We),b.extend(wo),b.extend(He),b.extend(mr);var ko={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},Po={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦unless",Conjunction:"true¦aXbTcuz,evenRhowPiHjust00lest,noEoCp8supposing,t5wh0yet;at,e2il1o0;evOse;e,st;nevMre0thM; if,vL;h0o;erefOo0;!uU;lus,rovide0; 1d0;! 0;th9;r0therwiJ;! not; mattBr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mFcaCorder t0;h0o;at;! 0;only,t0w0;hen;!ev0;er;! 0;if,t8;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;here nLsk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBeAi8o2u0;h,mph,rra0zzB;h,y;ly1o0;r5y8;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh,ye;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;e1ich,o0y;!m;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6J;G:6C;a8Lb74c66d61e60f4Yg4Hh3Wiron0j3Sk3Nl34m2Qn2Oo2Mp23quietEr1Os0HtXuVvacuum 1wKyammerAzH;ero Dip IonH;e0k0;by,up;aOeJhIiHor7Writ38;mp0n35pe0r8s8;eel Dip 8Q;aJiHn2T;gh Hrd0;in,up;n Dr H;d2in,oF;it 6Hk8lk Irm 0Zsh Ht7Av5F;aw3d2o5up;aw3in,o85;rgeAsH;e 1herG;aWeUhSiOoNrJuHypM;ckGrn H;d2in,oFup;aIiHot0y 2P;ckleEp 8B;ckEdH;e 0O;neEp 30s4Z;ck JdIe Hghte5Yme0p o0Jre0;aw3ba4d2in,up;e 6Iy 1;by,oC;ink Hrow 6V;ba4ov6up;aHe 6Gll5G;m 1r 53;ckAke Ilk H;ov6shit,u5H;aHba4d2in,oFup;ba4ft6p5Mw3;a0Mc0Le0Fh0Bi08l04m03n02o01pWquar4XtNuLwH;earJiH;ngItch H;aw3ba4o7P; by;ck Hit 1m 1ss0;in,o7Cup;aNe11iMoKrIuH;c37d2P;aigh23iH;ke 6Xn3L;p Hrm25;by,in,oC;n32r 1tc44;c31mp0nd Hr7Gve9y 1;ba4d2up;ar2ZeKiJlIrHurA;ingAuc8;a3Rit 5S;l18n 1;e6All0;ber 1rt0und like;ap 56ow D;ash 5Xoke0;eep IiHow 7;c1Mp 1;in,oH;ff,v6;de13gn IngHt 5Sz8; al5Nle0;in,o5up;aJoHu5B;ot Hut0w 6V;aw3ba4f3SoC;c2HdeGk5Qve9;e Lll1Hnd Krv8tH; Htl4W;d2f5Cin,o5upH;!on;aw3ba4d2in,o2Nup;o6Eto;al5Jout0rap5J;il9v8;aUeRiQoMuH;b 5Cle0n Hstl8;aJba4d2inIoHt3Lu0Y;ut,v6;!to;c2HrBw3;ll Jot IuH;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Jp9;aHel9inGnt0;c5Sd H;o3Bup;c1Ut0;aVeUiSlQoOrLsyc2RuH;ll Jt H;aHba4d2in,oFt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess IiKoH;p 1;ah1Zon;iHp 5Xr4DurEwer 5X;nt0;ay4TuH;gGmp 7;ck Hg0leAn 7p4Q;oFup;el 50ncilG;c4Iir 2Xn0ss JtIy H;ba4oC; d2c2E;aw3ba4in,oF;pHw4D;e4Ct D;arrowEerd0oH;d9teE;aReOiNoJuH;ddl8lH;l 3X;c13nkeyJp 7uth9ve H;aHd2in,o5up;l42w3; wi3Z;ss0x 1;asur8lIss H;a1Oup;t 7;ke In 7rHs1Xx0;k 7ry9;do,o4Wup;aXeSiNoHuck0;aLc3Vg KoHse0;k Hse3T;aft6ba4d2forw2Sin4Jov6uH;nd6p;in,oF;d 7;e 05ghtKnJsIvH;e 3F;ten 4Z;e 1k 1; 1e3K;ave Jt IvelH; o4I;d2go,in,o5up;in,oH;pen,ut;c8p 1sh HtchAugh9y26;in44o5;eIick9nock H;d2o4Bup;eHyG;l 2Zp H;aw3ba4d2fZin,oFto,up;aJoIuH;ic8mpG;ke3CtE;c3Lzz 1;aWeRiOoLuH;nIrrHsh 7;y 1;kerEt H;arBd2;lHneGrse35;d He 1;ba4d2fast,o04up;de It H;ba4on,up;aw3o5;aHlp0;d Jl 2Hr Ht 1;fHof;rom;in,oWu1K;cKm 1nIve Hz2C;it,to;d Hg 2NkerK;d2in,o5;k 1;aUeOive Nloss 28oJrIunH; f0O;in3Oow 2I; Hof 27;aIb1Fit,oHrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oFrise,up,w3;ar 7ek0t H;aIb1Ad2in,oHrBup;ff,n,ut,v6;cIhHl25rBt,w3;ead;ross;d aInH;g 1;bo5;a0Be04iVlRoNrJuH;ck He2A;arBup;eIighten HownAy 1;aw3oC;eHshe1W; 1z8;lJol H;aHwi1P;bo5rB;d 7low 1;aIeHip0;sh0;g 7ke0mHrHttenE;e 30;gOlMnKrIsHzzle0;h 2Y;e Hm 1;aw3ba4up;d0isH;h 1;e Hl 1I;aw3fMin,o5;ht ba4ure0;eMnIsH;s 1;cJd H;fHoC;or;e D;dZl 1;cLll Hrm0t15;ap08bJd2in,oItH;hrough;ff,ut,v6;a4ehi29;e H;d2oCup;a0Ndge0nd 0Ry8;oKrH;aIess 7op H;aw3bXin,o1W;gAwA; 0Kubl10;a01hYleaXoKrHut 18;ackAeep Hoss D;by,d2in,oHup;n,ut;me KoIuntH; o1Y;k 7l H;d2oC;aNbMforKin,oJtIuH;nd6;ogeth6;n,ut,v6;th,wH;ard;a4y;pHrBw3;art;n 7;eHipG;ck Der H;on,up;lPncel0rLsJtch IveG; in;o1Gup;h Dt H;doubt,oC;ry IvH;e 04;aw3oF;ff,n,ut;l ImE; d2;aHba4d2o17up;rBw3;a0Ne0Fl08oZrMuH;bblJckl00il06lk 7ndl00rHst WtIy 17zz9;n 0BsH;t D;e H;ov6;anSeaQiIush H;oCup;ghMng H;aJba4d2fHin,o5up;orH;th;bo5lHrBw3;ong;teH;n 1;k H;d2in,o5up;ch0;arOg 7iMn8oKssJttlIunce Hx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aMeed0oHurt0;cJw H;aw3ba4d2o5up;ck;k H;in,oY;ck0nk0st9; oMaKef 1nd H;d2ov6up;er;up;r0t H;d2in,oRup;ff,nH;to;ck Nil0nJrgIsH;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oHup;ff,ut;ay;cQdMsk Juction9; oC;ff;arBo5;ouH;nd;d H;d2oHup;ff,n;own;t H;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4x;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ea6Dit2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Km1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Com2C;f0i4Wt0Dy9;! arou4F;arn4GeAo9;cabula41l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aHeGhi8iEoDrBuAv9;! show;m2Jn5rntIto15;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etD;am,mp3A;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n28st4Q;ab2Q;bAnri1Bper bowl,r9;f0roga2;st3Etot1;aCepBipe3Ro1CrAudent9;! lo1L;ang0i8;fa1Gmo1G;ff0t31;loi42meo17;elet14i9;er,ll,rm3M;ack,or49;ab0Vcurity gu2E;e4ho9;l30ol;la33ndwi0J;av0XeChetor5iAo9;de4om;te,v9;erb0O;bCcBf9publ5r0Pspi2;er9orm0;e4r1;it1ord label;a2u42;estion mark,ot29;aMeKhJiHlFort1rAu9yram1D;ddi8ppy,rpo0K;eCie3Io9;bl3Vs9;pe6t9;a2itu2;diction,mi0Froga7ss relea0F;a9ebisci2;q28te,y0;cn5e9g;!r;armaci39otocoH;dest1ncil,r9t1;cen3Hsp3I;nAr2Ste9;!nt;el2Sop3;bj3EcApia2rde1thers,ve9wn0;n,rview;cu9e0G;pi0;aAit25ot9umb0;a26hi8;n2Arra7;aFeEiDoAu9é0H;m0Tr1;mAnopo3pRrni8sq1Qt9u14;h0i36;!my;li0Xn0A;d5nu,t1;mm1nAte9yf3;ri1;!d11;aurea2iBu9;ddi2n9;ch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦-,aMbJcIdHexcept,fFinEmid,notwithstandiSoCpTqua,sBt7u4v2w0;/o,hereOith0;! whEin,oS;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that,uch D;f0n1ut;!f;!to;or,r0;om;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2T;1:20;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt8v6w2;a4i3oo2;d,l;ldlife,ne;rm7t25;ernacul1Ui2;neg1Tol0Otae;eAh8oothpas1Nr3un2yranny;a,gst1V;aff29ea18o3ue nor2;th;oZu2;ble2se1Ft;!shoot1X;er2und1V;e,mod2B;a,nnis;aBcene0IeAh9il8ki7o6p5t3u2weepstak1;g1Hnshi11;ati01e2;am,el;ace23eci1;ap,cc1N;n,ttl1;k,v1L;eep,ingl1;na14ri1;d0Nfe1Vl2nd,t0B;m1Kt;a5e3ic2;e,ke0V;c2laxa0Ssearch;ogni0Rrea0R;bi1in;aVe6hys0last1Ko4re2;amble,mis1s2ten1K;en1Jsu0C;l2rk;it0yB;a1Otr06;bstetr0vercrowd16xyg0Z;a2ews;il polWtional securi1G;a9e7o4u2;m2s1A;ps;n2o19;ey,o2;gamy;a2chan0rchandi16tallurgy;sl1t;chine2themat0; learn0Ury;aught0Se5i4ogi3u2;ck,g0W;c,st0;ce,ghtn0Qngui19teraRv0P;ath0OisuRss;ara08indergart0Hnowled0T;azz,ewelC;ce,gnor7mp4n2;formaYter2;net,sta04;a2ort4;ti2;en0Y;an0X;a5eHisto4o2;ckey,mework,ne2rserad6spitali0Q;s0Py;ry;ir,libXppiFs2;h2te;ish;ene5l4o3r2um,ymna0R;aCeed;lf,re;utYyce0C; 2t0;edit03po2;ol;aLicElour,o4urni2;tu2;re;od,rgive2uriXwl;ne2;ss;conom0duca8lectr7n5quip6th0very3xper2;ti03;body,o2thT;ne;joy2tertain2;ment;ici01on0;tiQ;e8i5o3raugh2ynasZ;ts;pe,wnstai2;rs;abet1s2;honTrepu2;te;b2miP;ut;aAelci9h6iv0l4o2urrency;al,ld w2nfusiFral,ttFusco8;ar;ass0oth1;es;aos,e3ick2;en;eGw7;us;d,rI;a7eef,i5lood,read,u2;nt3tt2;er;ing;lliarDs2;on;g2ss;ga2;ge;cDdviCeroAir9m5ni4ppeal court,rithmet3spi2thlet0;rin;ic;se;en4n2;es2;ty;ds;craft;b0d2naut0;ynam0;ce;id,ou2;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:95;1:80;2:7X;3:8W;4:8Q;5:6E;6:81;7:86;8:8R;9:8D;A:5W;a7Mb77c6Pd67e5Qf58g50h4Pi3Rjuni44k3Pl3Fm33n2To2Ep1Wquart63r1Ls0Rt0JuMvIwBye1J;ast54eFholeEiDoB;man5oBrthwhi6u0F;d7Hzy;despr8Fs6E;!sa6;ather13eBll o5Jste2Q;!k5;aDeCiBola5D;b95ce versa,gi2Q;ng4Vrsa5B;ca0lu54;lt06nHpDrCsBttermo8X;ef75u4;b67ge0; Db2ApCsBti7Y;ca6et,ide dO;er,i4L;f3Tto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4E;e6Zi2FoDpCuB;pervis1spect2;e0ok6X;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6O;mploy1nd2xpect1;eBue;cid1rB;!a6RcovAly2sDwB;aBei7C;tAy;iz1to43;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Gra;aGeDhough59ip 1PoCrB;anspa6Yi3;gethAle83rp9;ena6FmpCrB;r3Ftia6P;e8o6N;leBst3Q;nt1;a03c01eZhYiWkiVmug,nobb3ZoPpMqueam3ZtGuBymb70;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb50;eq73tanda7P;atu69eFi0UrByl3T;aBin4D;ightBy; fBfB;or5X;adfa7Hri6;arCeBirit1lend9ot on;c2Ye34;k5se; caGlub6mbAphisticFrEuCvB;erei5Iiet;ndBth0X;pro6F;d9ry;at1;ll1;g1WnB;ce57g6;am30eA;at1co1Hem5lf3AnBre7;so5V;ath2holBient2K;ar5;cr1me,tisfac5M;aJeEheumato9iCoB;bu6Xtt58y4;ghtBv4;-w2f54;bYcEdu6OlDnown1sBtard1;is3DoB;lu3na0;e1Buc3B;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6NrCuB;bl5Vnjabi;eGiEoB;!b2QfCmi3BpBv4Vxi1Z;er,ort60;a7u63;maBor,sti7va3;!ry;ci60exist2mBpa9;a1Oi63;c9id;ac28rBti3;fe67ma32ti32v5V;i28rCsB;s5Qt;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni58seas,t,wB;ei57rou57;ll;do0Wer;d2Ug1M; bBbBgo2li7;oa60;fashion1school;!ay; gua5XbBli7;eat;eCsB;ce7er0Co0R;dia0se;aJeIiHoBuanc1;nDrthBt1V;!eB;rn;chaCdescri5Lprof29sB;top;la0;ght5;arby,cessa4Bighbor5xt;k1usiat2;aIeHinGoCuB;d14ltip6;deDl13nBot,st;ochroBth5;me;rn,st;dblRi;nac2re;cDgenta,in,j03keshift,mmCnBscu4E;da3Uy;ali2Ioth;ab37ho;aJeGiEoCuB;mber2sh;ngBut19;stand2term;ghtwei44teraB;l,te;ft-w2gBssAth4;al,eBi0B;nda3P;ngu9ps1st;aput,ind5nB;ow2;gno4Xll03mVnDpso 25rB;a3releB;va0; QaPcoMdJe2AfIhibi3CiWnHoGsDtBvalu0V;a4KeB;n48rdep1U;a7igColBuboD;ub6ve0;nifica0;rdi41;a3er;eriCluenOreq3X;eCiEoB;or;fini3p1Ltermi3W;mpCnside8rB;re48;le3;ccu8deq3Xppr36;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe40;ti4;aCeBi0T;d2Yn3M;tu22;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3I;me ma2BnCrrBs04ur5;if30;e3Qo2I;ghfalut1LspB;an2X;lUpf1W;lCnBrdZtI;dy;f,low1;aiHener2Siga25lob4oGraDuB;ilBng ho;ty;cCtB;ef1Ois;ef1N;od;nf1L;aPeMinLlJoErB;aCeBoz1L;q2Ptf1I;gi6nt2H;olErB; keeps,eBge0FmAtu2Owa38;go2i1BseeB;ab6;ish;ag37uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Hmiliar,r Bux;oBreach2;ff;aOfficie0lMmJnHqu4re2Pthere4veryday,xB;a2Oem2RplEquisi3traDuB;be2WlB;ta0;!va1G;icB;it; Bti0O;rou3sui3;erCiB;ne0;ge0;dBe18;er5;gAsB;t,ygo2;er;aQeHiCoBrea15ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0A;a0ni3;as1;an;facto;i5ngeroX;ly;arRePivil,oErCuB;nn2stoma0M;aBu0Iystal0Y;v02z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic09ry;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efM;aMeFizarEliKoCrBuck nak1;and new,isk,on1F;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0ZrrB;en;!wards; priori,b0Qc0Nd0Gf0Ag08h07l00mp6ntiquXpRrLsleep,ttracti09uHvEwB;aCkB;wa0X;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntX;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohFiJkaDl,oCriBterP;ght;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt","Adj|Past":"true¦0:2V;1:2M;2:2P;a2Eb29c1Rd19e13f0Ygift0h0Vi0Oj0Nknown,l0Km0Fn0Do0Ap03qua02rTsDt9u7v5w3;arp0ea3or5;kHth2O;a3e0U;ri0;ni3pd1s0;fi0t0;ar5hreatCr3wi2N;a3ou18;ck0in0pp0;get0ni1L;aGcaFeEhDimCm00oak0pAt6u3;bsid24gge2Is3;pe3ta1P;ct0nd0;at0e5r3uU;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al1Wfi0;pHul1;ar0ut;al0c1Gle2t1O;r0tt22;t3ut0;is1Hur1;aAe3;c7duc0f1Ag6l1new0qu5s3;pe2t3;or0ri2;e1Zir0;ist1Uul1;eiv0o3;mme09rd0v1S;lli0ti18;li17;arallel0l7o6r3ump0;e4o3;ce0Ilo0Hnou1Qpos0te2;fe0Koc8pY;i1Dli0Q;a3e16;nn0;c4rgan18verlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3;di0Tt0F;as0Olt0;n3rk0;ag0ufact0M;eft,i4o3;ad0st;cens0mit0st0;agg0us0L;mp8n3sol1;br0debt0f6t3volv0;e3ox0D;gr1n3re15;d0si0H;e2oW;li0oLrov0;amm0Xe1o3;ok0r3;ri0C;aNe6i5lavo07ocus0r3;a3i0;ct05g0Jm0;niWx0;ar0;duc1mbarraKn7quipp0stabliUx3;p3te5;a4e3;ct0rie0P;nd0;ha0NsX;aIeAi3;gniZminiNre2s3;a7c5grun02t3;o3reBurb0;rt0;iplQou3;nt0rD;bl0;cenTdMf7lay0pre6ra5t3velop0;a3ermM;il0;ng0;ss0;e4o3;rm0;rr0;m3t0;ag0;alcul1eGharg0lFo8r5u3;lt3stomQ;iv1;a4owd0u3;sh0;ck0mp0;d0lo8m5n3ok0vV;centr1s3troll0;idTolid1;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralA;a6i5o3roken,urn0;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k36l2Xm2Rnou3Uo2Mp25qu24r1As08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Gc0Fe0Dh09i07l05m04n03o01pWquVtOuJwG;all6YeeHiG;m,ng;p,t5;bIccumb,ffHggeBmm8Zp2DrG;mouFvi2;er,i3;li7Wmer9siGveD;de,st;aKe7PiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Pi8;awn,eJiIlHoGri68;il,of;ay,it;ll,t;ak,nd;lGot6Iw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5CoHriGun;nk,v5O;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Hv0w;!k,m;aven9ul7V;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2YsLtJvG;amp,eHiGo2N;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1TrG;a5QiCuctu7;de,gn,st;el,hra1lGreseF;a3e63;d0ew,o02;a5Le2To2;a6eFiGoad,y;e2nq3Dve;mbur1nf2M;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Dla3GoGyc4;gni54nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Kit,o6;aUerSiRlumm0SoQrIuG;b3Hke,ni8rGt;poDs6R;eKoG;cId,fe31hibEnoHpo1sp0truAvG;e,iAo4P;un3;la32u7;a5Bc1LdHf0ocSsup0CvG;a5GeF;etermi3ZiC;a58rt4Q;er3npoiF;cei2fo39i8mea6plex,sGvaA;eve7iB;mp0n11rGtrol,ve,y;a5Mt5I;bser2cJpIutHverGwe;lap,s13tu64u1;gr4Jnu1Upa3;era6i3Ppo1;cupy;aKe06iHoGultiply;leBu5Z;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u33;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng1Zu18;eep,nG;e3Kow;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Ao=36,Eo="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",jo=Eo.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Io=function(e){if(void 0!==jo[e])return jo[e];let t=0,n=1,r=Ao,a=1;for(;n=0;n--,a*=Ao){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t},No=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=xo(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=To(Po[e]);Bo.test(e)?Object.keys(t).forEach((t=>{if(Ho[t]=e,"Noun|Verb"===e){let e=Oo(t,Vo);Ho[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{zo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","zo[e]="Emoticon")),delete zo[""],delete zo.null,delete zo[" "];const Fo="Adjective";var $o={beforeTags:{Determiner:Fo,Possessive:Fo},afterTags:{Adjective:Fo},beforeWords:{seem:Fo,seemed:Fo,seems:Fo,feel:Fo,feels:Fo,felt:Fo,appear:Fo,appears:Fo,appeared:Fo,also:Fo,over:Fo,under:Fo,too:Fo,it:Fo,but:Fo,still:Fo,really:Fo,quite:Fo,well:Fo,very:Fo,deeply:Fo,profoundly:Fo,extremely:Fo,so:Fo,badly:Fo,mostly:Fo,totally:Fo,awfully:Fo,rather:Fo,nothing:Fo,something:Fo,anything:Fo,not:Fo,me:Fo,is:Fo},afterWords:{too:Fo,also:Fo,or:Fo}};const So="Gerund";var Jo={beforeTags:{Adverb:So,Preposition:So,Conjunction:So},afterTags:{Adverb:So,Possessive:So,Person:So,Pronoun:So,Determiner:So,Copula:So,Preposition:So,Conjunction:So,Comparative:So},beforeWords:{been:So,keep:So,continue:So,stop:So,am:So,be:So,me:So,began:So,start:So,starts:So,started:So,stops:So,stopped:So,help:So,helps:So,avoid:So,avoids:So,love:So,loves:So,loved:So,hate:So,hates:So,hated:So},afterWords:{you:So,me:So,her:So,him:So,them:So,their:So,it:So,this:So,there:So,on:So,about:So,for:So}},Mo={beforeTags:Object.assign({},$o.beforeTags,Jo.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},$o.afterTags,Jo.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},$o.beforeWords,Jo.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},$o.afterWords,Jo.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Lo="Singular";var Wo={beforeTags:{Determiner:Lo,Possessive:Lo,Acronym:Lo,Noun:Lo,Adjective:Lo,PresentTense:Lo,Gerund:Lo,PastTense:Lo,Infinitive:Lo,Date:Lo},afterTags:{Value:Lo,Modal:Lo,Copula:Lo,PresentTense:Lo,PastTense:Lo,Demonym:Lo},beforeWords:{the:Lo,with:Lo,without:Lo,of:Lo,for:Lo,any:Lo,all:Lo,on:Lo,cut:Lo,cuts:Lo,save:Lo,saved:Lo,saves:Lo,make:Lo,makes:Lo,made:Lo,minus:Lo,plus:Lo,than:Lo,another:Lo,versus:Lo,neither:Lo,favorite:Lo,best:Lo,daily:Lo,weekly:Lo,linear:Lo,binary:Lo,mobile:Lo,lexical:Lo,technical:Lo,computer:Lo,scientific:Lo,formal:Lo},afterWords:{of:Lo,system:Lo,aid:Lo,method:Lo,utility:Lo,tool:Lo,reform:Lo,therapy:Lo,philosophy:Lo,room:Lo,authority:Lo,says:Lo,said:Lo,wants:Lo,wanted:Lo,is:Lo}};const Ko={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var qo={beforeTags:Object.assign({},$o.beforeTags,Wo.beforeTags,Ko.beforeTags),afterTags:Object.assign({},$o.afterTags,Wo.afterTags),beforeWords:Object.assign({},$o.beforeWords,Wo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Wo.afterWords)};let Uo="PastTense";const Ro={beforeTags:{Adverb:Uo,Pronoun:Uo,ProperNoun:Uo,Auxiliary:Uo,Noun:Uo},afterTags:{Possessive:Uo,Pronoun:Uo,Determiner:Uo,Adverb:Uo,Comparative:Uo,Date:Uo},beforeWords:{be:Uo,who:Uo,get:"Adjective",had:Uo,has:Uo,have:Uo,been:Uo,it:Uo,as:Uo,for:"Adjective"},afterWords:{by:Uo,back:Uo,out:Uo,in:Uo,up:Uo,down:Uo,for:Uo,the:Uo,with:Uo,as:Uo,on:Uo,at:Uo}};var Qo={beforeTags:Object.assign({},$o.beforeTags,Ro.beforeTags),afterTags:Object.assign({},$o.afterTags,Ro.afterTags),beforeWords:Object.assign({},$o.beforeWords,Ro.beforeWords),afterWords:Object.assign({},$o.afterWords,Ro.afterWords)};const Zo="Infinitive";var Xo={beforeTags:{Modal:Zo,Adverb:Zo,Negative:Zo,Plural:Zo},afterTags:{Determiner:Zo,Adverb:Zo,Possessive:Zo,Preposition:Zo},beforeWords:{i:Zo,we:Zo,you:Zo,they:Zo,to:Zo,please:Zo,will:Zo,have:Zo,had:Zo,would:Zo,could:Zo,should:Zo,do:Zo,did:Zo,does:Zo,can:Zo,must:Zo,us:Zo,me:Zo,he:Zo,she:Zo,it:Zo,being:Zo},afterWords:{the:Zo,me:Zo,you:Zo,him:Zo,her:Zo,them:Zo,it:Zo,a:Zo,an:Zo,up:Zo,down:Zo,by:Zo,out:Zo,off:Zo,under:Zo,when:Zo,all:Zo,to:Zo,because:Zo,although:Zo,before:Zo,how:Zo,otherwise:Zo,together:Zo,though:Zo,yet:Zo}};const _o={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Yo={beforeTags:Object.assign({},$o.beforeTags,Xo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},$o.afterTags,Xo.afterTags,_o.afterTags),beforeWords:Object.assign({},$o.beforeWords,Xo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},$o.afterWords,Xo.afterWords,{to:void 0})};const ei={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ti={},ni={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ri={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ai={beforeTags:Object.assign({},Jo.beforeTags,Wo.beforeTags,ei),afterTags:Object.assign({},Jo.afterTags,Wo.afterTags,ti),beforeWords:Object.assign({},Jo.beforeWords,Wo.beforeWords,ni),afterWords:Object.assign({},Jo.afterWords,Wo.afterWords,ri)},oi={beforeTags:Object.assign({},Xo.beforeTags,Wo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Xo.afterTags,Wo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Xo.beforeWords,Wo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Xo.afterWords,Wo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ii="Person";var si={beforeTags:{Honorific:ii,Person:ii,Preposition:ii},afterTags:{Person:ii,ProperNoun:ii,Verb:ii},ownTags:{ProperNoun:ii},beforeWords:{hi:ii,hey:ii,yo:ii,dear:ii,hello:ii},afterWords:{said:ii,says:ii,told:ii,tells:ii,feels:ii,felt:ii,seems:ii,thinks:ii,thought:ii,spends:ii,spendt:ii,plays:ii,played:ii,sing:ii,sang:ii,learn:ii,learned:ii,wants:ii,wanted:ii}};const li="Month",ui={beforeTags:{Date:li,Value:li},afterTags:{Date:li,Value:li},beforeWords:{by:li,in:li,on:li,during:li,after:li,before:li,between:li,until:li,til:li,sometime:li,of:li,this:li,next:li,last:li,previous:li,following:li},afterWords:{sometime:li,in:li,of:li,until:li,the:li}};var ci={beforeTags:Object.assign({},si.beforeTags,ui.beforeTags),afterTags:Object.assign({},si.afterTags,ui.afterTags),beforeWords:Object.assign({},si.beforeWords,ui.beforeWords),afterWords:Object.assign({},si.afterWords,ui.afterWords)};const hi="Place",di={beforeTags:{Place:hi},afterTags:{Place:hi,Abbreviation:hi},beforeWords:{in:hi,by:hi,near:hi,from:hi,to:hi},afterWords:{in:hi,by:hi,near:hi,from:hi,to:hi,government:hi,council:hi,region:hi,city:hi}};let gi="Unit";const mi="Honorific";let pi={first:mi,general:mi,royal:mi,vice:mi,rear:mi,major:mi};const fi={"Adj|Gerund":Mo,"Adj|Noun":qo,"Adj|Past":Qo,"Adj|Present":Yo,"Noun|Verb":oi,"Noun|Gerund":ai,"Person|Noun":{beforeTags:Object.assign({},Wo.beforeTags,si.beforeTags),afterTags:Object.assign({},Wo.afterTags,si.afterTags),beforeWords:Object.assign({},Wo.beforeWords,si.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Wo.afterWords,si.afterWords)},"Person|Date":ci,"Person|Verb":{beforeTags:Object.assign({},si.beforeTags,Xo.beforeTags),afterTags:Object.assign({},si.afterTags,Xo.afterTags),beforeWords:Object.assign({},si.beforeWords,Xo.beforeWords),afterWords:Object.assign({},si.afterWords,Xo.afterWords)},"Person|Place":{beforeTags:Object.assign({},di.beforeTags,si.beforeTags),afterTags:Object.assign({},di.afterTags,si.afterTags),beforeWords:Object.assign({},di.beforeWords,si.beforeWords),afterWords:Object.assign({},di.afterWords,si.afterWords)},"Unit|Noun":{beforeTags:{Value:gi},afterTags:{},beforeWords:{per:gi,every:gi,each:gi,square:gi,cubic:gi,sq:gi,metric:gi},afterWords:{per:gi,squared:gi,cubed:gi,long:gi}},"Honorific|Noun":{beforeTags:{Honorific:mi,ProperNoun:mi,Ordinal:mi},afterTags:{Person:mi,ProperNoun:mi},beforeWords:Object.assign({},pi,{honorable:mi,honourable:mi,worship:mi,excellency:mi,majesty:mi,right:mi}),afterWords:pi}},bi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};fi["Plural|Verb"]={beforeWords:bi(fi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:bi(fi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:bi(fi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:bi(fi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yi=fi;const vi="Adjective",wi="Infinitive",ki="PresentTense",Pi="Singular",Ai="PastTense",Ei="Adverb",ji="Plural",Ii="Actor",Ni="Verb",Di="Noun",xi="LastName",Ti="Modal",Ci="Participle";var Gi=[null,null,{ea:Pi,ia:Di,ic:vi,ly:Ei,"'n":Ni,"'t":Ni},{oed:Ai,ued:Ai,xed:Ai," so":Ei,"'ll":Ti,"'re":"Copula",azy:vi,eer:Di,end:Ni,ped:Ai,ffy:vi,ify:wi,ing:"Gerund",ize:wi,ibe:wi,lar:vi,mum:vi,nes:ki,nny:vi,ous:vi,que:vi,rol:Pi,sis:Pi,ogy:Pi,oid:Pi,ian:Pi,zes:ki,eld:Ai,ken:Ci,ven:Ci,ten:Ci,ect:wi,ict:wi,ign:wi,ful:vi,bal:vi},{amed:Ai,aped:Ai,ched:Ai,lked:Ai,rked:Ai,reed:Ai,nded:Ai,mned:vi,cted:Ai,dged:Ai,ield:Pi,akis:xi,cede:wi,chuk:xi,czyk:xi,ects:ki,ends:Ni,enko:xi,ette:Pi,wner:Pi,fies:ki,fore:Ei,gate:wi,gone:vi,ices:ji,ints:ji,ruct:wi,ines:ji,ions:ji,less:vi,llen:vi,made:vi,nsen:xi,oses:ki,ould:Ti,some:vi,sson:xi,tion:Pi,tage:Di,ique:Pi,tive:vi,tors:Di,vice:Pi,lier:Pi,fier:Pi,wned:Ai,gent:Pi,tist:Pi,pist:Pi,rist:Pi,mist:Pi,yist:Pi,vist:Pi,lite:Pi,site:Pi,rite:Pi,mite:Pi,bite:Pi,mate:Pi,date:Pi,ndal:Pi,vent:Pi,uist:Pi,gist:Pi,note:Pi,cide:Pi,wide:vi,vide:wi,ract:wi,duce:wi,pose:wi,eive:wi,lyze:wi,lyse:wi,iant:vi,nary:vi},{elist:Pi,holic:Pi,phite:Pi,tized:Ai,urned:Ai,eased:Ai,ances:ji,bound:vi,ettes:ji,fully:Ei,ishes:ki,ities:ji,marek:xi,nssen:xi,ology:Di,osome:Pi,tment:Pi,ports:ji,rough:vi,tches:ki,tieth:"Ordinal",tures:ji,wards:Ei,where:Ei,archy:Di,pathy:Di,opoly:Di,embly:Di,phate:Di,ndent:Pi,scent:Pi,onist:Pi,anist:Pi,alist:Pi,olist:Pi,icist:Pi,ounce:wi,iable:vi,borne:vi,gnant:vi,inant:vi,igent:vi,atory:vi,rient:Pi,dient:Pi},{auskas:xi,parent:Pi,cedent:Pi,ionary:Pi,cklist:Pi,keeper:Ii,logist:Ii,teenth:"Value"},{opoulos:xi,borough:"Place",sdottir:xi}];const Oi="Adjective",Bi="Noun",zi="Verb";var Hi=[null,null,{},{neo:Bi,bio:Bi,"de-":zi,"re-":zi,"un-":zi},{anti:Bi,auto:Bi,faux:Oi,hexa:Bi,kilo:Bi,mono:Bi,nano:Bi,octa:Bi,poly:Bi,semi:Oi,tele:Bi,"pro-":Oi,"mis-":zi,"dis-":zi,"pre-":Oi},{anglo:Bi,centi:Bi,ethno:Bi,ferro:Bi,grand:Bi,hepta:Bi,hydro:Bi,intro:Bi,macro:Bi,micro:Bi,milli:Bi,nitro:Bi,penta:Bi,quasi:Oi,radio:Bi,tetra:Bi,"omni-":Oi,"post-":Oi},{pseudo:Oi,"extra-":Oi,"hyper-":Oi,"inter-":Oi,"intra-":Oi,"deca-":Oi},{electro:Bi}];const Vi="Adjective",Fi="Infinitive",$i="PresentTense",Si="Singular",Ji="PastTense",Mi="Adverb",Li="Expression",Wi="Actor",Ki="Verb",qi="Noun",Ui="LastName";var Ri={a:[[/.[aeiou]na$/,qi,"tuna"],[/.[oau][wvl]ska$/,Ui],[/.[^aeiou]ica$/,Si,"harmonica"],[/^([hyj]a+)+$/,Li,"haha"]],c:[[/.[^aeiou]ic$/,Vi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Ji,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Ji,"rammed"],[/.[aeiou][sg]hed$/,Ji,"gushed"],[/.[aeiou]red$/,Ji,"hired"],[/.[aeiou]r?ried$/,Ji,"hurried"],[/[^aeiou]ard$/,Si,"steward"],[/[aeiou][^aeiou]id$/,Vi,""],[/.[vrl]id$/,Vi,"livid"],[/..led$/,Ji,"hurled"],[/.[iao]sed$/,Ji,""],[/[aeiou]n?[cs]ed$/,Ji,""],[/[aeiou][rl]?[mnf]ed$/,Ji,""],[/[aeiou][ns]?c?ked$/,Ji,"bunked"],[/[aeiou]gned$/,Ji],[/[aeiou][nl]?ged$/,Ji],[/.[tdbwxyz]ed$/,Ji],[/[^aeiou][aeiou][tvx]ed$/,Ji],[/.[cdflmnprstv]ied$/,Ji,"emptied"]],e:[[/.[lnr]ize$/,Fi,"antagonize"],[/.[^aeiou]ise$/,Fi,"antagonise"],[/.[aeiou]te$/,Fi,"bite"],[/.[^aeiou][ai]ble$/,Vi,"fixable"],[/.[^aeiou]eable$/,Vi,"maleable"],[/.[ts]ive$/,Vi,"festive"],[/[a-z]-like$/,Vi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Vi,"cornish"],[/.v[iy]ch$/,Ui,"..ovich"],[/^ug?h+$/,Li,"ughh"],[/^uh[ -]?oh$/,Li,"uhoh"],[/[a-z]-ish$/,Vi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Ui,"polish-male"]],k:[[/^(k){2}$/,Li,"kkkk"]],l:[[/.[gl]ial$/,Vi,"familial"],[/.[^aeiou]ful$/,Vi,"fitful"],[/.[nrtumcd]al$/,Vi,"natal"],[/.[^aeiou][ei]al$/,Vi,"familial"]],m:[[/.[^aeiou]ium$/,Si,"magnesium"],[/[^aeiou]ism$/,Si,"schism"],[/^[hu]m+$/,Li,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Vi,"republican"],[/[^aeiou]ician$/,Wi,"musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,Li,"noooo"],[/^(yo)+$/,Li,"yoo"],[/^wo{2,}[pt]?$/,Li,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Si],[/[^i]fer$/,Fi],[/.[^aeiou][ao]pher$/,Wi],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Vi],[/[aeiou].*ist$/,Vi],[/^[a-z]et$/,Ki]],s:[[/.[^aeiou]ises$/,$i],[/.[rln]ates$/,$i],[/.[^z]ens$/,Ki],[/.[lstrn]us$/,Si],[/.[aeiou]sks$/,$i],[/.[aeiou]kes$/,$i],[/[aeiou][^aeiou]is$/,Si],[/[a-z]'s$/,qi],[/^yes+$/,Li]],v:[[/.[^aeiou][ai][kln]ov$/,Ui]],y:[[/.[cts]hy$/,Vi],[/.[st]ty$/,Vi],[/.[tnl]ary$/,Vi],[/.[oe]ry$/,Si],[/[rdntkbhs]ly$/,Mi],[/.(gg|bb|zz)ly$/,Vi],[/...lly$/,Mi],[/.[gk]y$/,Vi],[/[bszmp]{2}y$/,Vi],[/.[ai]my$/,Vi],[/[ea]{2}zy$/,Vi],[/.[^aeiou]ity$/,Si]]};const Qi="Verb",Zi="Noun";var Xi={leftTags:[["Adjective",Zi],["Possessive",Zi],["Determiner",Zi],["Adverb",Qi],["Pronoun",Qi],["Value",Zi],["Ordinal",Zi],["Modal",Qi],["Superlative",Zi],["Demonym",Zi],["Honorific","Person"]],leftWords:[["i",Qi],["first",Zi],["it",Qi],["there",Qi],["not",Qi],["because",Zi],["if",Zi],["but",Zi],["who",Qi],["this",Zi],["his",Zi],["when",Zi],["you",Qi],["very","Adjective"],["old",Zi],["never",Qi],["before",Zi],["a","Singular"],["the",Zi],["been",Qi]],rightTags:[["Copula",Zi],["PastTense",Zi],["Conjunction",Zi],["Modal",Zi]],rightWords:[["there",Qi],["me",Qi],["man","Adjective"],["only",Qi],["him",Qi],["it",Qi],["were",Zi],["took",Zi],["himself",Qi],["went",Zi],["who",Zi],["jr","Person"]]},_i={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Yi={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},es={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},ts={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},ns={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const rs=/^.([0-9]+)/;var as=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(rs);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(rs,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},is=/^([0-9]+)/,ss=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(is);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(is,"")]}(n[0],n[1])}))};var ls=function(e={}){return(e=Object.assign({},e)).rules=ss(e.rules),e.rules=os(e.rules),e.rev&&(e.rev=ss(e.rev),e.rev=os(e.rev)),e.exceptions=ss(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e},us=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const cs=ls({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),hs=ls(ts),ds=ls(Yi),gs=ls(es),ms=us(cs),ps=us(hs),fs=us(ds),bs=us(gs),ys=ls(_i),vs=ls(ns);var ws={fromPast:cs,fromPresent:hs,fromGerund:ds,fromParticiple:gs,toPast:ms,toPresent:ps,toGerund:fs,toParticiple:bs,toComparative:ys,toSuperlative:vs,fromComparative:us(ys),fromSuperlative:us(vs)},ks=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),Ps=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]],As=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(js[t].forEach((n=>e[n]=t)),e)),{});var Is=js,Ns=function(e){let t=e.substring(e.length-3);if(!0===Is.hasOwnProperty(t))return Is[t];let n=e.substring(e.length-2);return!0===Is.hasOwnProperty(n)?Is[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const Ds={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var xs=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=Ns(e)),Ds.hasOwnProperty(e))c=Ds[e];else if("Participle"===n)c=as(l,i);else if("PastTense"===n)c=as(l,r);else if("PresentTense"===n)c=as(l,a);else{if("Gerund"!==n)return e;c=as(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c},Ts=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:as(i,n),PresentTense:as(i,r),Gerund:as(i,a),FutureTense:"will "+e},u=as(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l},Cs={toInfinitive:xs,conjugate:Ts,all:function(e,t){let n=Ts(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}},Gs=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a))return e.slice(0,n-r)+t[a.length][a]}return null};const Os=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Bs={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var zs=function(e){if(Bs.hasOwnProperty(e))return Bs[e];let t=Gs(e,Os);return t||e+"ly"};const Hs=function(e,t){const n=t.two.models.toSuperlative;return as(e,n)},Vs=function(e,t){const n=t.two.models.toComparative;return as(e,n)},Fs="ically",$s=new Set(["analyt"+Fs,"chem"+Fs,"class"+Fs,"clin"+Fs,"crit"+Fs,"ecolog"+Fs,"electr"+Fs,"empir"+Fs,"frant"+Fs,"grammat"+Fs,"ident"+Fs,"ideolog"+Fs,"log"+Fs,"mag"+Fs,"mathemat"+Fs,"mechan"+Fs,"med"+Fs,"method"+Fs,"method"+Fs,"mus"+Fs,"phys"+Fs,"phys"+Fs,"polit"+Fs,"pract"+Fs,"rad"+Fs,"satir"+Fs,"statist"+Fs,"techn"+Fs,"technolog"+Fs,"theoret"+Fs,"typ"+Fs,"vert"+Fs,"whims"+Fs]),Ss=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Js=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ms={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Ls=function(e){return e.endsWith("ly")?$s.has(e)?e.replace(/ically/,"ical"):Js.has(e)?null:Ms.hasOwnProperty(e)?Ms[e]:Gs(e,Ss)||e:null};const Ws=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Ks={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},qs=new Set(["terrible","annoying"]);var Us={toSuperlative:Hs,toComparative:Vs,toAdverb:zs,toNoun:function(e){if(Ks.hasOwnProperty(e))return Ks[e];if(qs.has(e))return null;let t=Gs(e,Ws);return t||e+"ness"},fromAdverb:Ls,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return as(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return as(e,n)},all:function(e,t){let n=[e];return n.push(Hs(e,t)),n.push(Vs(e,t)),n.push(zs(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Rs={noun:Es,verb:Cs,adjective:Us},Qs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}},Zs=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Qs.hasOwnProperty(i)&&Qs[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}},Xs=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!el.find((t=>e.endsWith(t)))},nl={two:{quickSplit:Xs,expandLexicon:Zs,transform:Rs,looksPlural:tl}},rl=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const al=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var ol=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=al(n,"Infinitive","PastTense"),Object.assign(s,l),l=al(r,"Infinitive","Verb"),Object.assign(s,l),l=al(a,"Infinitive","Gerund"),Object.assign(s,l),l=al(o,"Adjective","Superlative"),Object.assign(s,l),l=al(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let il={two:{models:ws}};const sl={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},ll=function(e,t){const n={model:t,methods:nl};let{lex:r,_multi:a}=nl.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},ul=function(e,t,n){let r=Ts(e,il);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},cl=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=sl[o],"Noun|Verb"!==o&&"Person|Verb"!==o||ul(a,r,!1),"Adj|Present"===o&&(ul(a,r,!0),function(e,t,n){let r=Hs(e,n);t[r]=t[r]||"Superlative";let a=Vs(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=xs(a,il,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=xs(a,il,"PastTense");r[e]||(n[e]="Infinitive")}})),t=ll(n,t)};var hl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=ll(e.one.lexicon,e)).one.lexicon,e),e=cl(e.two.switches,e),e=ol(e),e=rl(e)};let dl={one:{_multiCache:{},lexicon:zo},two:{irregularPlurals:ko,models:ws,suffixPatterns:Gi,prefixPatterns:Hi,endsWith:Ri,neighbours:Xi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:Ho,clues:yi,uncountable:{},orgWords:ks}};dl=hl(dl);var gl=dl;const ml=/^(under|over|mis|re|un|dis|semi)-?/;var pl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(ml.test(a.normal)){let e=a.normal.replace(ml,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}},fl=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const bl=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var yl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(tl(e.normal)?fl(e,"Plural","3-plural-guess"):fl(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=Ns(e.normal);t&&fl(e,t,"3-verb-tense-guess")}}(r)};const vl=/^\p{Lu}[\p{Ll}'’]/u,wl=/[0-9]/,kl=["Date","Month","WeekDay","Unit"],Pl=/^[IVXLCDM]{2,}$/,Al=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,El={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var jl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===vl.test(o)&&!1===wl.test(o)?kl.find((e=>r.tags.has(e)))?null:(yl(e,t,n),r.tags.has("Noun")||r.tags.clear(),fl(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&Pl.test(o)&&Al.test(o)&&!El[r.normal]?(fl(r,"RomanNumeral","2-xvii"),!0):null};const Il=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null};var Nl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=Il(r.normal,n.two.suffixPatterns);if(null!==e)return fl(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=Il(r.implicit,n.two.suffixPatterns),null!==e))return fl(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const Dl=/['‘’‛‵′`´]/,xl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return fl(r,e,"2-prefix"),r.confidence=.5,!0}return null};const Gl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Ol=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!Gl.has(t)||!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun")},Bl=function(e){return!(!e||!e.tags.has("Ordinal")&&!(e.tags.has("Cardinal")&&e.normal.length<3)&&"is"!==e.normal&&"was"!==e.normal)},zl=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Hl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Ol(a)||Ol(o))return fl(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Bl(a)||Bl(o))return fl(n,"Year","2-tagYear-close");if(zl(e[t-2])||zl(e[t+2]))return fl(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return fl(n,"Year","2-tagYear-noun")}}}return null};const Vl=/^[A-Z]('s|,)?$/,Fl=/^[A-Z-]+$/,$l=/([A-Z]\.)+[A-Z]?,?$/,Sl=/[A-Z]{2,}('s|,)?$/,Jl=/([a-z]\.)+[a-z]\.?$/,Ml={I:!0,A:!0};var Ll=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Fl.test(n)||n.length>5||Ml.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==$l.test(n)&&!0!==Jl.test(n)&&!0!==Vl.test(n)&&!0!==Sl.test(n))}(r,n)?(r.tags.clear(),fl(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Ml.hasOwnProperty(r.text)&&Vl.test(r.text)?(r.tags.clear(),fl(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(fl(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Fl.test(r.text)&&r.text.length<=6?(fl(r,"Acronym","3-titlecase-acronym"),!0):null};const Wl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Kl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var ql=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Wl(e[t-1],a),l=l||Wl(e[t+1],o),l=l||Kl(e[t-1],r),l=l||Kl(e[t+1],i),l)return fl(s,l,"3-[neighbour]"),yl(e,t,n),e[t].confidence=.2,!0}return null};const Ul=function(e,t){return!!e&&!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular"))));var n};var Rl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Ul(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Ul(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null},Ql=function(e,t,n){0===e[t].tags.size&&(fl(e[t],"Noun","3-[fallback]"),yl(e,t,n),e[t].confidence=.1)};const Zl=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Xl=(e,t,n)=>0!==t||e[1]?null:n,_l={"Adj|Gerund":(e,t)=>Zl(e,t),"Adj|Noun":(e,t)=>Zl(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Zl(e,t),"Adj|Present":(e,t)=>Zl(e,t),"Noun|Gerund":(e,t)=>Zl(e,t),"Noun|Verb":(e,t)=>Zl(e,t)||Xl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Zl(e,t)||Xl(e,t,"PresentTense"),"Person|Noun":(e,t)=>Zl(e,t),"Person|Verb":(e,t)=>0!==t?Zl(e,t):null};var Yl=_l;const eu="undefined"!=typeof process&&process.env?process.env:self.env||{},tu=/^(under|over|mis|re|un|dis|semi)-?/,nu=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&eu.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},ru=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&eu.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var au=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(tu.test(l)&&!o[l]&&(l=l.replace(tu,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=nu(e[t+1],n.afterWords);return o=o||nu(e[t-1],n.beforeWords),o=o||ru(e[t-1],n.beforeTags,a),o=o||ru(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Yl[o]&&(u=Yl[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),yl(e,t,r)):eu.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}},ou=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(fl(o,"Verb","3-[prefix]"),fl(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(fl(o,"Adjective","3-[prefix]"),fl(o,"Prefix","3-[prefix]")))};const iu={tagSwitch:pl,checkSuffix:Nl,checkRegex:Tl,checkCase:jl,checkPrefix:Cl,checkHyphen:ou,checkYear:Hl},su={checkAcronym:Ll,neighbours:ql,orgWords:Rl,nounFallback:Ql,switches:au},lu=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var du=function(e){const t=e.world,n=Object.keys(hu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=Eu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=Au},Iu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const Nu=/'/;var Du=function(e,t){let n=e[t].normal.split(Nu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const xu=/'/;var Tu=function(e,t){let n=e[t].normal.split(xu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]},Cu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Gu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Ou={in:!0,by:!0,for:!0};var Bu=(e,t)=>{let n=e[t];if(Gu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return!("here"===e||"there"===e||"everywhere"===e||r.tags.has("Possessive")||r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun"))}if(e[t-1]&&!0===Ou[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const zu=/'/,Hu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Vu={d:(e,t)=>Tu(e,t),t:(e,t)=>Cu(e,t),s:(e,t,n)=>Bu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):Du(e,t)},Fu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var $u={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===zu.test(r[o].normal)&&([,i]=r[o].normal.split(zu));let s=null;Vu.hasOwnProperty(i)&&(s=Vu[i](r,o,t)),s&&(s=Fu(s,e),Iu(n,[a,o],s),Hu(n[a],e,o,s.length))}}))}},Su={compute:$u,api:ju,hooks:["contractionTwo"]};const Ju="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)",Mu=["i","we","they"];let Lu=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"[brand #Gerund?] new",tag:"Adverb",group:0,reason:"brand-new"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Ju} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Ju} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Ju}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past%]",group:0,tag:"Adjective",reason:"do-not-be-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Mu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Mu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Mu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|well|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^[come on] #Noun",group:0,tag:"Expression",reason:"come-on"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]),Wu=null;var Ku={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Wu=Wu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Wu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const qu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Ku,model:{two:{matches:Lu}},hooks:["postTagger"]};var Uu=qu,Ru=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))},Qu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Ru(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Zu={lib:{lazy:Qu}},Xu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e},_u=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Xu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model)),e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this},Yu={api:function(e){e.prototype.swap=_u}};return b.plugin(wu),b.plugin(Su),b.plugin(Uu),b.plugin(Zu),b.plugin(Yu),b},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).nlp=t(); diff --git a/builds/two/compromise-two.mjs b/builds/two/compromise-two.mjs index 94d64f2d0..433a01496 100644 --- a/builds/two/compromise-two.mjs +++ b/builds/two/compromise-two.mjs @@ -1 +1 @@ -var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.5.2";var b=f;var v=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},E=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},N=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?E(n):(E(n),E([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let I=0;const G=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var D=function(e){let[t,n]=e.index||[0,0];I+=1,I=I>46655?0:I,t=t>46655?0:t,n=n>1294?0:n;let r=G(I.toString(36));r+=G(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const x=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},T=e=>"[object Array]"===Object.prototype.toString.call(e),C=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:T(e)?T(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=D(e),e)))}(d),n?(x(t.update([u]).firstTerm()),N(h,u,d,r)):(x(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(z,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},V.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?r.replaceWith(t,n):this};var F=V;var $=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const S={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;if(e&&(n=this,r=this.match(e)),n.has("@hasContraction")&&n.contractions){n.grow("@hasContraction").contractions().expand()}let a=n.fullPointer,o=r.fullPointer.reverse(),i=$(this.document,o);return a=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(a,t(o)),n.ptrs=a,n.document=i,n.compute("index"),e?n.toView(a):(this.ptrs=[],n.none())}};S.delete=S.remove;var H=S;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var L=J;var M={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(a=M.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof M[e]?(a=a.sort(M[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var Q={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}};var Z={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const _=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},B,F,H,L,U,Q,Z);var X=function(e){Object.assign(e.prototype,_)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null};var le=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,pe=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(ge);return null!==r?!0===n.tags.has("PhoneNumber")||pe.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,ve=new Set(["st","nd","rd","th","am","pm","max"]);var ye=function(e,t){let n=e[t].text.match(be);if(null!==n){let e=n[2].toLowerCase().trim();return ve.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ee={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=je(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ee.hasOwnProperty(l)&&(c=Ee[l](r,s)),c?(c=Ne(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=fe(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ne(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var Ge={model:te,compute:{contractions:Ie},hooks:["contractions"]};var De=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===xe.test(l)){let e=l.replace(xe,"");if(i.hasOwnProperty(e)&&e.length>3&&Te.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var ze={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}};var Ve={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Be}},compute:Oe,lib:ze,hooks:["lexicon"]};var Fe=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const $e=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Le=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const Me={buildTrie:function(e){const t=Fe(e,this.world());return Le(t)}};Me.compile=Me.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Fe(e,this.world));var r;let a=He(this,n,t);return a=a.settle(),a}},lib:Me};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},qe=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ke(n,t),Object.keys(r).forEach((e=>{r[e]=Ke(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,Ze=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var _e={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Ze(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e)){return e.fullPointer.length>0}if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ze(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var Xe={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Ye=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Ye(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Ye(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},_e,Xe,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),pt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),vt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=vt(e),e=yt(e)},kt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===bt(e)&&(n.start=!0,e=vt(e)),("["===bt(e)||"]"===ft(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===bt(e)&&(n.negative=!0,e=vt(e)),"~"===bt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===bt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=vt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===bt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===bt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===bt(e)&&">"===ft(e))return e=wt(e),n.chunk=pt(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===bt(e)?(n.tag=vt(e),n.tag=pt(n.tag),n):"@"===bt(e)?(n.method=vt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var Et=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},Nt=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},It=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Gt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(Nt(e,t)):"Adjective"===e.pos&&(n=n.concat(It(e,t))):(n=n.concat(jt(e,t)),n=n.concat(Nt(e,t)),n=n.concat(It(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var Dt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var xt=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>Pt(e,t))),r=Et(r,n),r=Gt(r,n),r=Dt(r),r};const Tt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Ct=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),St=(e,t)=>-1!==e.pre.indexOf(t),Ht={hasQuote:e=>Bt.test(e.pre)||zt.test(e.post),hasComma:e=>$t(e,","),hasPeriod:e=>!0===$t(e,".")&&!1===$t(e,"..."),hasExclamation:e=>$t(e,"!"),hasQuestionMark:e=>$t(e,"?")||$t(e,"¿"),hasEllipses:e=>$t(e,"..")||$t(e,"…")||St(e,"..")||St(e,"…"),hasSemicolon:e=>$t(e,";"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Vt.test(e.post)||Vt.test(e.pre),hasDash:e=>Ft.test(e.post)||Ft.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};Ht.hasQuotation=Ht.hasQuote;var Jt=Ht;let Lt=function(){};Lt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Jt[t.method]&&!0===Jt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Lt(e,t,n,r))):t.choices.some((t=>Lt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Mt=Lt;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Kt(e,e.t).length=r-e.t}return e.t=r,!0};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Mt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Mt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Kt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Zt=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var _t=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Mt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Mt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Mt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?Zt(e,r,t[e.r+1]):(e.t+=1,!0)};var Xt=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Mt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Mt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Yt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&Xt(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Yt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Kt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Wt(e,a))if(e.negative){if(!_t(a))return null}else if(!0!==Mt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!tn(a))return null}else{if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else{if(!Qt(a))return null}else{if(!Rt(a))return null}else{if(!qt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}};var rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i};var ln={api:ot,methods:{one:{termMethods:Jt,parseMatch:xt,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(a)&&(a=" "),a=a.replace(pn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(gn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&bn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let kn=[],Pn=0;for(;Pn<64;)kn[Pn]=0|4294967296*Math.sin(++Pn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Pn=i=0;Pn>4]+kn[i]+~~o[Pn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const En={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const Nn=function(e,t){return Object.assign({},e,t)},In={text:e=>vn(e,{keepPunct:!0},!1),normal:e=>vn(e,Nn(wn.normal,{keepPunct:!0}),!1),implicit:e=>vn(e,Nn(wn.implicit,{keepPunct:!0}),!1),machine:e=>vn(e,jn,!1),root:e=>vn(e,Nn(jn,{form:"root"}),!1),hash:e=>An(vn(e,{keepPunct:!0},!1)),offset:e=>{let t=In.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};In.sentences=In.sentence,In.clean=In.normal,In.reduced=In.root;const Gn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},En,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&In[o]&&(a[o]=In[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};Gn.data=Gn.json;var Dn=Gn;var xn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var Tn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var Cn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Tn.blue("\n ──────")),t.forEach((e=>{console.log(Tn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Tn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Tn.blue(" │ ")+Tn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Tn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))};var On=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Tn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Tn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Tn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Tn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Tn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))};var zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(xn(t),t):(!1!==e.tags&&(Cn(t),console.log("\n")),!0===e.chunks&&(On(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const Vn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Fn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var Sn=$n;var Hn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},e,t)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Kn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var qn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r};var Un=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var Rn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Wn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var _n=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Wn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Yn=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},er={union:function(e){e=Xn(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)}};er.and=er.union,er.intersection=function(e){e=Xn(e,this);let t=_n(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.not=function(e){e=Xn(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.difference=er.not,er.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Qn(e,[t])})),e=Yn(e,this.document),this.update(e)};var tr=function(e){Object.assign(e.prototype,er)},nr={methods:Rn,api:tr};var rr=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const ar=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var or=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(ar(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(ar(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=ar(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var ir=function(e,t){e=or(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}};var sr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))};var lr=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var ur=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o};var cr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=sr(a,t.hooks);return o=lr(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),ur(o,e,a,n,r)};var hr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===hr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},gr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:rr,methods:{one:{buildNet:ir,bulkMatch:cr,bulkTagger:dr}}};const mr=/ /,pr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},fr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),mr.test(t))!function(e,t,n,r){let a=t.split(mr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),fr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var vr=br;var yr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>wr({id:e}))),t}return[wr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},Er=e=>"[object Array]"===Object.prototype.toString.call(e),jr=e=>(e=e||"").trim(),Nr=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||kr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Pr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=wr({});return e.forEach((e=>{if((e=wr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ar(t=e).forEach(wr),t);var t},Ir=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Ar(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Gr=function(e){let t=Ar(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},Dr={text:Ir,txt:Ir,array:Gr,flat:Gr},xr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Ir(e,!0)),null):Dr.hasOwnProperty(t)?Dr[t](e):e},Tr=e=>{Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Cr=/\//;let Or=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=jr(e),!Cr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Or(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||wr({});return new Or(t)}add(e,t={}){if(Er(e))return e.forEach((e=>this.add(jr(e),t))),this;e=jr(e);let n=wr({id:e,props:t});return this.json.children.push(n),new Or(n)}remove(e){return e=jr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ar(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ar(this.json)}fillDown(){var e;return e=this.json,Ar(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Er(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Tr(this.json);let e=Ar(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Tr(this.json),xr(this.json,e)}debug(){return Tr(this.json),xr(this.json,"debug"),this}};const Br=function(e){let t=Nr(e);return new Or(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Vr=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Fr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:Vr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const $r=function(e){return e?"string"==typeof e?[e]:e:[]};var Sr=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=$r(e[t].children),e[t].not=$r(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var Hr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=Sr(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Fr(n)},Jr={one:{setTag:vr,unTag:yr,addTags:Hr}};const Lr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Mr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Lr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Lr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Wr=Mr;var Kr=function(e){Object.assign(e.prototype,Wr)};var qr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Ur=new Set(["Auxiliary","Possessive"]);var Rr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Ur.has(e)||!t.hasOwnProperty(n))return 1;if(Ur.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Qr={model:{one:{tagSet:{}}},compute:{tagRank:Rr},methods:Jr,api:Kr,lib:qr};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,_r=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,Xr=/((?:\r?\n|\r)+)/;var Yr=function(e){let t=[],n=e.split(Xr);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const aa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},oa=RegExp("("+Object.keys(aa).join("|")+")","g"),ia=RegExp("("+Object.values(aa).join("|")+")","g"),sa=function(e){if(!e)return!1;let t=e.match(ia);return null!==t&&1===t.length};var la=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Ea=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Pa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=ya(n),n=ba(n),n=n.filter((e=>e)),n};let ja=new RegExp(`[${["#","@","_","\\-","+","."].join("")}]+$`,""),Na=new RegExp(`^[${["%","_"].join("")}]+`,"");const Ia=/[\p{Punctuation}\s]+$/u,Ga=/^[\p{Punctuation}\s]+/u,Da=/['’]/,xa=/^[a-z]\.([a-z]\.)+/i,Ta=/^'[0-9]{2}/;var Ca=function(e){let t=e,n="",r="";return e=e.replace(Ga,(t=>{let r=t.match(ja);return r?(n=t.replace(ja,""),r):"'"===n&&Ta.test(e)?(n="",t):(n=t,"")})),e=e.replace(Ia,(a=>{let o=a.match(Na);return o?(r=a.replace(Na,""),o):Da.test(a)&&/[sn]['’]$/.test(t)&&!1===Da.test(n)?(r=r.replace(Da,""),"'"):!0===xa.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}};var Oa=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")};var Ba=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const za=/([A-Z]\.)+[A-Z]?,?$/,Va=/^[A-Z]\.,?$/,Fa=/[A-Z]{2,}('s|,)?$/,$a=/([a-z]\.)+[a-z]\.?$/;var Sa=function(e){return function(e){return!0===za.test(e)||!0===$a.test(e)||!0===Va.test(e)||!0===Fa.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ha=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=Ba(r),r=n(r,t),r=Sa(r),e.normal=r};var Ja=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Ha(e,t)})),n})),e};const La=/[ .][A-Z]\.? *$/i,Ma=/(?:\u2026|\.{2,}) *$/,Wa=/\p{L}/u,Ka=/^[A-Z]\. $/;var qa={one:{killUnicode:Oa,tokenize:{splitSentences:ma,isSentence:function(e,t){if(!1===Wa.test(e))return!1;if(!0===La.test(e))return!1;if(3===e.length&&Ka.test(e))return!1;if(!0===Ma.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},splitTerms:Ea,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Ca(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Ja}}};var Ua={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Ra={},Qa={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Ra[t]=!0,Qa[t]="Abbreviation",void 0!==e[1]&&(Qa[t]=[Qa[t],e[1]])}))}));var Za=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let _a={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Xa={};Object.keys(_a).forEach((function(e){_a[e].split("").forEach((function(t){Xa[t]=e}))}));const Ya=/\//,eo=/[a-z]\.[a-z]/i,to=/[0-9]/;var no=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),Ya.test(n)&&!eo.test(n)&&!to.test(n)){let t=n.split(Ya);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ro=/^\p{Letter}+-\p{Letter}+$/u;var ao=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ro.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var oo=function(e){let t=e.docs,n={};for(let e=0;euo(e,no),machine:e=>uo(e,ao),normal:e=>uo(e,Ha),freq:oo,offset:io,index:so,wordCount:lo},methods:qa,model:{one:{aliases:Ua,abbreviations:Ra,prefixes:Za,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Qa,unicode:Xa}},hooks:["alias","machine","index","id"]};var ho={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const go=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var mo=function(e){e.prototype.autoFill=go};var po=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const fo={safe:!0,min:3};var bo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},fo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=po(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}};var vo={model:{one:{typeahead:{}}},api:mo,lib:bo,compute:ho,hooks:["typeahead"]};b.extend(ee),b.extend(Mn),b.extend(ln),b.extend(nr),b.extend(Qr),b.plugin(Ge),b.extend(co),b.plugin(k),b.extend(We),b.extend(vo),b.extend(Ve),b.extend(gr);var yo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},wo={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦lest,unless",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;sk,ut tut;eesh,hh,it;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBe9i7o2u0;h,mph,rra0zzB;h,y;ly1o0;r4y8;! 0;cow,moCsmok0;es;!p hip hoor0;ay;ck,e,ll0y;!o;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;at,e1ich,o0y;!m,se;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6D;a8Kb73c66d61e60f4Yg4Gh3Viron0j3Rk3Ml33m2Pn2No2Lp22quietEr1Ns0GtWuUvacuum 1wJyammerAzG;ero Dip HonG;e0k0;by,up;aNeIhHiGor7Vrit37;mp0n34pe0r8s8;eel Dip 8P;aIiGn2S;gh Grd0;in,up;n Dr G;d2in,o4D;it 6Hk8lk Hrm 0Ysh Gt79v5F;aw3d2o5up;aw3in,o84;rgeAsG;e 1herF;aVeThRiNoMrIuGypL;ckFrn G;d2in,o45up;aHiGot0y 2O;ckleEp 8A;ckEdG;e 0N;neEp 2Zs4Z;ck IdHe Gghte5Yme0p o0Ire0;aw3ba4d2in,up;e 6Hy 1;by,oC;ink Grow 6U;ba4ov6up;aGe 6Fll5G;m 1r 53;ckAke Hlk G;ov6shit,u5H;aGba4d2in,o3Pup;ba4ft6p5Mw3;a0Lc0Ke0Eh0Ai07l03m02n01o00pVquar4XtMuKwG;earIiG;ngHtch G;aw3ba4o7O; by;ck Git 1m 1ss0;in,o7Bup;aMe10iLoJrHuG;c36d2O;aigh22iG;ke 6Wn3L;p Grm24;by,in,oC;n31r 1tc44;c30mp0nd Gr7Fve9y 1;ba4d2up;ar2YeJiIlHrGurA;ingAuc8;a3Rit 5R;l17n 1;e69ll0;ber 1rt0und like;ap 56ow D;ash 5Woke0;eep HiGow 7;c1Lp 1;in,oG;ff,v6;de12gn HngGt 5Rz8; al5Mle0;in,o5up;aIoGu5A;ot Gut0w 6U;aw3ba4f3SoC;c2GdeFk5Pve9;e Kll1Gnd Jrv8tG; Gtl4W;d2f5Bin,o5upG;!on;aw3ba4d2in,o2Nup;o6Dto;al5Iout0rap5I;il9v8;aTeQiPoLuG;b 5Ble0n Gstl8;aIba4d2inHoGt3Lu0X;ut,v6;!to;c2HrBw3;ll Iot HuG;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Ip9;aGel9inFnt0;c5Rd G;o3Bup;c1Tt0;aUeTiRlPoNrKsyc2RuG;ll It G;aGba4d2in,o1Zt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess HiJoG;p 1;ah1Zon;iGp 5Wr4CurEwer 5W;nt0;ay4SuG;gFmp 7;ck Gg0leAn 7p4P;o1Oup;el 4ZncilF;c4Hir 2Xn0ss ItHy G;ba4oC; d2c2E;aw3ba4in,o1J;pGw4C;e4Bt D;arrowEerd0oG;d9teE;aQeNiMoIuG;ddl8lG;l 3W;c12nkeyIp 7uth9ve G;aGd2in,o5up;l41w3; wi3Y;ss0x 1;asur8lHss G;a1Oup;t 7;ke Hn 7rGs1Xx0;k 7ry9;do,o4Vup;aWeRiMoGuck0;aKc3Ug JoGse0;k Gse3S;aft6ba4d2forw2Sin4Iov6uG;nd6p;in,o0V;d 7;e 04ghtJnIsHvG;e 3E;ten 4Y;e 1k 1; 1e3J;ave It HvelG; o4H;d2go,in,o5up;in,oG;pen,ut;c8p 1sh GtchAugh9y26;in43o5;eHick9nock G;d2o4Aup;eGyF;l 2Yp G;aw3ba4d2fYin,o0Dto,up;aIoHuG;ic8mpF;ke3BtE;c3Kzz 1;aVeQiNoKuG;nHrrGsh 7;y 1;kerEt G;arBd2;lGneFrse34;d Ge 1;ba4d2fast,o04up;de Ht G;ba4on,up;aw3o5;aGlp0;d Il 2Gr Gt 1;fGof;rom;in,oWu1K;cJm 1nHve Gz2B;it,to;d Gg 2MkerJ;d2in,o5;k 1;aUeOive Mloss 27oIrHunG; f0O;in3Now 2H; Gof 26;aHb1Fit,oGrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oGrise,up,w3;ff,n,ut;ar 7ek0t G;aHb19d2in,oGrBup;ff,n,ut,v6;cHhGl23rBt,w3;ead;ross;d aHnG;g 1;bo5;a0Ae03iUlQoMrIuG;ck Ge28;arBup;eHighten GownAy 1;aw3oC;eGshe1U; 1z8;lIol G;aGwi1N;bo5rB;d 7low 1;aHeGip0;sh0;g 7ke0mGrGttenE;e 2Y;gNlLnJrHsGzzle0;h 2W;e Gm 1;aw3ba4up;d0isG;h 1;e Gl 1G;aw3fLin,o5;ht ba4ure0;eLnHsG;s 1;cId G;fGoC;or;e D;dYl 1;cKll Grm0t13;ap07bId2in,oHtG;hrough;ff,ut,v6;a4ehi27;e G;d2oCup;a0Ldge0nd 0Py8;oJrG;aHess 7op G;aw3bWin,o1U;gAwA; 0Iubl0Y;a00hXleaWoJrGut 16;ackAeep Goss D;by,d2in,oGup;n,ut;me JoHuntG; o1W;k 7l G;d2oC;aMbLforJin,oItHuG;nd6;ogeth6;n,ut,v6;th,wG;ard;a4y;pGrBw3;art;n 7;eGipF;ck Der G;on,up;lNncel0rKsItch HveF; in;o1Eup;h Dt G;doubt,oC;ry HvG;e 02;aw3o19;l HmE; d2;aGba4d2o16up;rBw3;a0Me0El07oYrLuG;bblIcklZil05lk 7ndlZrGst VtHy 16zz9;n 0AsG;t D;e G;ov6;anReaPiHush G;oCup;ghLng G;aIba4d2fGin,o5up;orG;th;bo5lGrBw3;ong;teG;n 1;k G;d2in,o5up;ch0;arNg 7iLn8oJssIttlHunce Gx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aLeed0oGurt0;cIw G;aw3ba4d2o5up;ck;k G;in,oX;ck0nk0st9; oLaJef 1nd G;d2ov6up;er;up;r0t G;d2in,oQup;ff,nG;to;ck Mil0nIrgHsG;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oGup;ff,ut;ay;cPdLsk Iuction9; oC;ff;arBo5;ouG;nd;d G;d2oGup;ff,n;own;t G;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ear,it2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Lm1Bn18o14p0Nqu0Mr0DsUtJuGvCw9;a9ha3Com2C;f0i4Wt0Ey9;! arou4F;arn4GeAo9;cabu07l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aIeHhGiEoDrBuAv9;! show;m2Jn5rntJto16;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etE;ere,i8;am,mp39;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n27st4P;ab2P;bAnri1Aper bowl,r9;f0roga2;st3Dtot1;aCepBipe3Qo1BrAudent9;! lo1K;ang0i8;fa1Fmo1F;ff0t30;loi41meo16;elet13i9;er,ll,rm3L;ack,or48;ab0Ucurity gu2D;e4ho9;l2Zol;la32;av0WeChetor5iAo9;de4om;te,v9;erb0N;bCcBf9publ5r0Ospi2;er9orm0;e4r1;it1ord label;a2u41;estion mark,ot28;aMeKhJiHlFort1rAu9yram1C;ddi8ppy,rpo0J;eCie3Ho9;bl3Us9;pe6t9;a2itu2;diction,mi0Eroga7ss relea0E;a9ebisci2;q27te,y0;cn5e9g;!r;armaci38otocoH;dest1ncil,r9t1;cen3Gsp3H;nAr2Rte9;!nt;el2Rop3;bj3DcApia2rde1thers,ve9wn0;n,rview;cu9e0F;pi0;aAit24ot9umb0;a25hi8;n29rra7;aFeEiDoAu9é0G;m0Sr1;mAnopo3pQrni8sq1Pt9u13;h0i35;!my;li0Wn09;d5nu,t1;mm1nAte9yf3;ri1;!d10;aurea2iAu9;ddi2nch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦'o,-,aLbIcHdGexcept,fFinEmid,notwithstandiRoCpSqua,sBt7u4v2w0;/o,hereNith0;!in,oR;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oI;ans,ince,o that;',f0n1ut;!f;!to;or,rom;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;',bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2S;1:1Z;2:27;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt9v7w3;a5i4oo3;d,l;ldlife,ne;rm8t2;ernacul1Ui3;neg1Tol0Otae;eAh9oothpas1Nr4un3yranny;a,gst1V;aff29ea18o4ue nor3;th;oZu3;ble3se1Ft;!shoot1X;ermod2Cund2;a,nnis;aCcene0JeBhAil9ki8o7p6t4u3weepstak1;g1Inshi12;ati02e3;am,el;ace24eci1;ap,cc2;n,ttl1;k,v2;eep,ingl1;na15ri1;d0Ofe1Wl3nd,t0C;m1Lt;a6e4ic3;e,ke0W;c3laxa0Tsearch;ogni0Srea0S;bi1in;aWe7hys0last1Lo5re3;amble,mis1s3ten1L;en1Ksu0D;l3rk;it0yC;a1Ptr07;bstetr0vercrowd17xyg10;a3ews;il polXtional securi1H;aAe8o5u3;m3s1B;ps;n3o1A;ey,o3;gamy;a3chan0rchandi17tallurgy;sl1t;chine3themat0; learn0Vry;aught2e6i5ogi4u3;ck,g0X;c,st0;ce,ghtn0Rngui1AteraSv2;ath2isuSss;ara09indergart0Inowled0U;azz,ewelD;ce,gnor8mp5n3;formaZter3;net,sta05;a3ort5;ti3;en0Z;an0Y;a6eIisto5o3;ckey,mework,ne3rserad7spitali0R;s0Qy;ry;ir,libYppiGs3;h3te;ish;ene6l5o4r3um,ymna0S;aDeed;lf,re;utZyce0D; 3t0;edit04po3;ol;aMicFlour,o5urni3;tu3;re;od,rgive3uri2wl;ne3;ss;conom0duca9lectr8n6quip7th0very4xper3;ti04;body,o3thU;ne;joy3tertain3;ment;ici02on0;tiR;e9i6o4raugh3ynas00;ts;pe,wnstai3;rs;abet1s3;honUrepu3;te;b3miQ;ut;aBelciAh7iv0l5o3urrency;al,ld w3nfusiGral,ttGusco9;ar;ass0oth1;es;aos,e4ick3;en;eHw8;us;d,rJ;a8eef,i6lood,read,u3;nt4tt2;er;ing;lliarEs3;on;g3ss;ga3;ge;cEdviDeroBirAm6ni5ppeal court,rithmet4spi3thlet0;rin;ic;se;en5n3;es3;ty;ds;craft;b0d3naut0;ynam0;ce;id,ou3;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:97;1:83;2:80;3:8Y;4:8S;5:6G;6:84;7:88;8:8T;9:8F;A:5Y;a7Pb79c6Rd69e5Rf59g51h4Qi3Sjuni45k3Ql3Fm33n2To2Ep1Wquart65r1Ls0Rt0JuMvIwBye1J;ast55eFholeEiDoB;man5oBrthwhi6u0F;d7Kzy;despr8Hs6G;!sa6;ather13eBll o5Kste2Q;!k5;aDeCiBola5E;b97ce versa,gi2Q;ng4Wrsa5C;ca0lu55;lt06nHpDrCsBttermo8Z;ef78u4;b69ge0; Db2ApCsBti36;ca6et,ide dO;er,i4M;f3Uto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4F;e72i2FoDpCuB;pervis1spect2;e0ok70;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6R;mploy1nd2xpect1;eBue;cid1rB;!a6UcovAly2sDwB;aBei2K;tAy;iz1to44;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Hra;aGeDhough5Bip 1PoCrB;anspa71i3;gethAle85rp9;ena6ImpCrB;r3Gtia6S;e8o6Q;leBst3R;nt1;a03c01eZhYiWkiVmug,nobb40oPpMqueam40tGuBymb72;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb52;eq75tanda7R;atu6CeFi0UrByl3U;aBin4F;ightBy; fBfB;or60;adfa7Jri6;arCeBirit1lend9ot on;c2Ze35;k5se; caGlub6mbAphisticFrEuCvB;erei5Liet;ndBth0X;pro6H;d9ry;at1;ll1;g1XnB;ce5Ag6;am31eA;at1co1Iem5lf3BnBre7;so5Y;ath2holBient2L;ar5;cr1me,tisfac5P;aJeEheumato9iCoB;bu6Ztt5By4;ghtBv4;-w2f57;bYcEdu6QlDnown1sBtard1;is3EoB;lu3na0;e1Cuc3C;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6PrCuB;bl5Xnjabi;eGiEoB;!b2RfCmi3DpBv4Yxi20;er,ort62;a7u65;maBor,sti7va3;!ry;ci62exist2mBpa9;a1Pi65;c9id;ac29rBti3;fe69ma34ti34v5X;i29rCsB;s5St;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni0Gseas,t,wB;ei0Frou0F;ll;do0Xer;d2Wg1N; bBbBgo2li7;oa62;fashion1school;!ay; gua5ZbBli7;eat;eCsB;ce7er0Do0S;dia0se;aJeIiHoBuanc1;nDrthBt1W;!eB;rn;chaCdescri5Nprof2AsB;top;la0;ght5;arby,cessa4Eighbor5xt;k1usiat2;aIeHinGoCuB;d15ltip6;deDl14nBot,st;ochroBth5;me;rn,st;dblSi;nac2re;cDgenta,in,j04keshift,mmCnBscu4G;da3Xy;ali2Koth;ab3Aho;aKeHiEoCuB;mber2sh;ngBut1A;stand2term;ghtweiCteraB;l,te;ght;ft-w2gBssAth4;al,eBi0B;nda3R;ngu9ps1st;aput,ind5nB;ow2;gno4Yll03mVnDpso 26rB;a3releB;va0; QaPcoMdJe2BfIhibi3EiWnHoGsDtBvalu0V;a4LeB;n49rdep1V;a7igColBuboD;ub6ve0;nifica0;rdi42;a3er;eriCluenOreq3Y;eCiEoB;or;fini3p1Mtermi3X;mpCnside8rB;re49;le3;ccu8deq3Yppr38;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe41;ti4;aCeBi0U;d30n3N;tu24;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3J;me ma2DnCrrBs04ur5;if31;e3Ro2K;ghfalut1MspB;an2Y;lUpf1Y;lCnBrdZtI;dy;f,low1;aiHener2Tiga27lob4oGraDuB;ilBng ho;ty;cCtB;ef1Qis;ef1P;od;nf1N;aPeMinLlJoErB;aCeBoz1N;q2Qtf1K;gi6nt2I;olErB; keeps,eBge0GmAtu2Pwa39;go2i1DseeB;ab6;ish;ag38uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Imiliar,r Bux;oBreach2;ff;aPfficie0lNmKnIqu4re2Qthere4veHxB;a2Pem2SplEquisi3traDuB;be2XlB;ta0;!va1I;icB;it;n,ryday; Bti0P;rou3sui3;erCiB;ne0;ge0;dBe19;er5;gAsB;t,ygo2;er;aQeHiCoBrea16ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0B;a0ni3;as1;an;facto;i5ngeroY;ly;arRePivil,oErCuB;nn2stoma0N;aBu0Jystal0Y;v03z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic0Ary;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efN;aNeGizarFliLoDrBuck nak1;and new,isk,oB;kMn1E;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0YrrB;en;!wards; priori,b0Pc0Md0Ff09g07h06l00mp6ntiquXpRrLsleep,ttracti08uHvEwB;aCkB;wa0W;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntW;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohEiIkaCl,oBterO;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Conjunction:"true¦aDb9cuz,how7in caCno6o5p4supposing,t1wh0yet;eth7ile;h0o;eref8o0;!uB;lus,rovided that;r,therwi6; matt1r;!ev0;er;e0ut;cau1f0;ore;se;lthou1nd,s 0;far as,if;gh",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k35l2Wm2Qnou3Uo2Lp24qu23r19s08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Fc0Ee0Ch08i06l04m03n02o00pVquUtNuIwG;all6Ye2DiG;m,ng;bIccumb,ffHggeBmm90p2ErG;mouFvi2;er,i3;li7Xmer9siGveD;de,st;aKe7QiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Qi8;awn,eJiIlHoGri69;il,of;ay,it;ll,t;ak,nd;lGot6Jw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5DoHriGun;nk,v5P;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Iv0w;!k,m;aven9ul7W;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2ZsLtJvG;amp,eHiGo2O;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1UrG;a5RiCuctu7;de,gn,st;el,hra1lGreseF;a3e64;d0ew,o02;a5Me2Uo2;a6eFiGoad,y;e2nq3Eve;mbur1nf2N;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Ela3HoGyc4;gni55nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Lit,o6;aUerSiRlumm0ToQrIuG;b3Ike,ni8rGt;poDs6S;eKoG;cId,fe32hibEnoHpo1sp0truAvG;e,iAo4Q;un3;la33u7;a5Cc1MdHf0ocSsup0DvG;a5HeF;etermi40iC;a59rt4R;er3npoiF;cei2fo3Ai8mea6plex,sGvaA;eve7iB;mp0n12rGtrol,ve,y;a5Nt5J;bser2cJpIutHverGwe;lap,s14tu65u1;gr4Knu1Vpa3;era6i3Qpo1;cupy;aKe07iHoGultiply;leBu60;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u34;e,ke,ng0quGv5;eGi63;fy;aInG;d,gG;th5;rn,ve;ng20u19;eHnG;e3Low;ep;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Adj|Past":"true¦0:2T;1:2K;2:2N;3:23;a2Db28c1Qd1Ae14f0Zgift0h0Wi0Pj0Oknown,l0Lm0Gn0Eo0Bp04qua03rUsEtAu8v6w4;arp0ea4or6;kIth2N;a4e0V;ri0;ni4pd1s0;fi0t0;ar6hreatDr4wi2M;a4ou18;ck0in0pp0;get0ni1K;aHcaGeFhEimDm01oak0pBt7u4;bsid23gge2Hs4;pe4ta1O;ct0nd0;at0e6r4uV;ength4ip0;en0;am0reotyp0;eci4ik0ott0;al1Vfi0;pIul1;ar0ut;al0c1Fle2t1N;r0tt21;t4ut0;is3ur1;aBe4;c8duc0f19g7l1new0qu6s4;pe2t4;or0ri2;e1Yir0;ist1Tul1;eiv0o4;mme0Ard0v1R;lli0ti3;li3;arallel0l8o7r4ump0;e5o4;c0Ilo0Hnou1Ppos0te2;fe0Koc9pZ;i1Cli0P;a4e15;nn0;c5rgan17verlo4;ok0;cupi0;e4ot0;ed0gle2;a6e5ix0o4;di3t0E;as0Nlt0;n4rk0;ag0ufact0L;eft,i5o4;ad0st;cens0mit0st0;agg0us0K;mp9n4sol1;br0debt0f7t4volv0;e4ox0C;gr1n4re14;d0si3;e2oW;li0oMrov0;amm0We1o4;ok0r4;ri3;aNe7i6lavo06ocus0r4;a4i0;ct04g0Im0;niVx0;ar0;duc1n8quipp0stabliTx4;p4te6;a5e4;ct0rie0O;nd0;ha0MsW;aIeAi4;gni3miniMre2s4;a7c6grun01t4;o4rBurb0;rt0;iplPou05;bl0;cenTdMf8lay0pr7ra6t4velop0;a4ermM;il0;ng0;ess0;e5o4;rm0;rr0;mag0t0;alcul1eHharg0lGo9r6u4;lt4stomR;iv1;a5owd0u4;sh0;ck0mp0;d0lo9m6n4ok0vW;centr1s4troll0;idUolid1;b5pl4;ic1;in0;ur0;assi3os0;lebr1n6r4;ti3;fi0;tralB;a7i6o4urn0;il0r0t4und;tl0;as0;laJs0;bandon0cKdHffe2lEnCppAss8u4ward0;g5thor4;iz0;me4;nt0;o6u4;m0r0;li0re4;ci1;im1ticip1;at0;leg0t4;er0;ct0;ju5o7va4;nc0;st0;ce4knowledg0;pt0;ed","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const ko="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Po=ko.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Ao=function(e){if(void 0!==Po[e])return Po[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var Eo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=No(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Io(wo[e]);To.test(e)?Object.keys(t).forEach((t=>{if(Oo[t]=e,"Noun|Verb"===e){let e=xo(t,Bo);Oo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Co[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Co[e]="Emoticon")),delete Co[""],delete Co.null,delete Co[" "];const zo="Adjective";var Vo={beforeTags:{Determiner:zo,Possessive:zo},afterTags:{Adjective:zo},beforeWords:{seem:zo,seemed:zo,seems:zo,feel:zo,feels:zo,felt:zo,appear:zo,appears:zo,appeared:zo,also:zo,over:zo,under:zo,too:zo,it:zo,but:zo,still:zo,really:zo,quite:zo,well:zo,very:zo,deeply:zo,profoundly:zo,extremely:zo,so:zo,badly:zo,mostly:zo,totally:zo,awfully:zo,rather:zo,nothing:zo,something:zo,anything:zo,not:zo,me:zo},afterWords:{too:zo,also:zo,or:zo}};const Fo="Gerund";var $o={beforeTags:{Adverb:Fo,Preposition:Fo,Conjunction:Fo},afterTags:{Adverb:Fo,Possessive:Fo,Person:Fo,Pronoun:Fo,Determiner:Fo,Copula:Fo,Preposition:Fo,Conjunction:Fo,Comparative:Fo},beforeWords:{been:Fo,keep:Fo,continue:Fo,stop:Fo,am:Fo,be:Fo,me:Fo,began:Fo,start:Fo,starts:Fo,started:Fo,stops:Fo,stopped:Fo,help:Fo,helps:Fo,avoid:Fo,avoids:Fo,love:Fo,loves:Fo,loved:Fo,hate:Fo,hates:Fo,hated:Fo},afterWords:{you:Fo,me:Fo,her:Fo,him:Fo,them:Fo,their:Fo,it:Fo,this:Fo,there:Fo,on:Fo,about:Fo,for:Fo}};var So={beforeTags:Object.assign({},Vo.beforeTags,$o.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Vo.afterTags,$o.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Vo.beforeWords,$o.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Vo.afterWords,$o.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Ho="Singular";var Jo={beforeTags:{Determiner:Ho,Possessive:Ho,Acronym:Ho,Noun:Ho,Adjective:Ho,PresentTense:Ho,Gerund:Ho,PastTense:Ho,Infinitive:Ho,Date:Ho},afterTags:{Value:Ho,Modal:Ho,Copula:Ho,PresentTense:Ho,PastTense:Ho,Demonym:Ho},beforeWords:{the:Ho,with:Ho,without:Ho,of:Ho,for:Ho,any:Ho,all:Ho,on:Ho,cut:Ho,cuts:Ho,save:Ho,saved:Ho,saves:Ho,make:Ho,makes:Ho,made:Ho,minus:Ho,plus:Ho,than:Ho,another:Ho,versus:Ho,neither:Ho,favorite:Ho,best:Ho,daily:Ho,weekly:Ho,linear:Ho,binary:Ho,mobile:Ho,lexical:Ho,technical:Ho,computer:Ho,scientific:Ho,formal:Ho},afterWords:{of:Ho,system:Ho,aid:Ho,method:Ho,utility:Ho,tool:Ho,reform:Ho,therapy:Ho,philosophy:Ho,room:Ho,authority:Ho,says:Ho,said:Ho,wants:Ho,wanted:Ho}};const Lo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Mo={beforeTags:Object.assign({},Vo.beforeTags,Jo.beforeTags,Lo.beforeTags),afterTags:Object.assign({},Vo.afterTags,Jo.afterTags),beforeWords:Object.assign({},Vo.beforeWords,Jo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vo.afterWords,Jo.afterWords)};const Wo={Adverb:"PastTense",Pronoun:"PastTense",ProperNoun:"PastTense",Auxiliary:"PastTense",Noun:"PastTense"},Ko={Possessive:"PastTense",Pronoun:"PastTense",Determiner:"PastTense",Adverb:"PastTense",Comparative:"PastTense",Date:"PastTense"},qo={be:"PastTense",get:"PastTense",had:"PastTense",has:"PastTense",have:"PastTense",been:"PastTense",it:"PastTense",as:"PastTense",for:"Adjective"},Uo={by:"PastTense",back:"PastTense",out:"PastTense",in:"PastTense",up:"PastTense",down:"PastTense",for:"PastTense",the:"PastTense",with:"PastTense",as:"PastTense",on:"PastTense"};var Ro={beforeTags:Object.assign({},Vo.beforeTags,Wo),afterTags:Object.assign({},Vo.afterTags,Ko),beforeWords:Object.assign({},Vo.beforeWords,qo),afterWords:Object.assign({},Vo.afterWords,Uo)};const Qo="Infinitive";var Zo={beforeTags:{Modal:Qo,Adverb:Qo,Negative:Qo,Plural:Qo},afterTags:{Determiner:Qo,Adverb:Qo,Possessive:Qo,Preposition:Qo},beforeWords:{i:Qo,we:Qo,you:Qo,they:Qo,to:Qo,please:Qo,will:Qo,have:Qo,had:Qo,would:Qo,could:Qo,should:Qo,do:Qo,did:Qo,does:Qo,can:Qo,must:Qo,us:Qo,me:Qo,he:Qo,she:Qo,it:Qo,being:Qo},afterWords:{the:Qo,me:Qo,you:Qo,him:Qo,her:Qo,them:Qo,it:Qo,a:Qo,an:Qo,up:Qo,down:Qo,by:Qo,out:Qo,off:Qo,under:Qo,when:Qo,all:Qo,to:Qo,because:Qo,although:Qo,before:Qo,how:Qo,otherwise:Qo,together:Qo,though:Qo,yet:Qo}};const _o={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xo={beforeTags:Object.assign({},Vo.beforeTags,Zo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Vo.afterTags,Zo.afterTags,_o.afterTags),beforeWords:Object.assign({},Vo.beforeWords,Zo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vo.afterWords,Zo.afterWords,{to:void 0})};const Yo={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},ei={},ti={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ni={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ri={beforeTags:Object.assign({},$o.beforeTags,Jo.beforeTags,Yo),afterTags:Object.assign({},$o.afterTags,Jo.afterTags,ei),beforeWords:Object.assign({},$o.beforeWords,Jo.beforeWords,ti),afterWords:Object.assign({},$o.afterWords,Jo.afterWords,ni)};var ai={beforeTags:Object.assign({},Zo.beforeTags,Jo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Zo.afterTags,Jo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Zo.beforeWords,Jo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Zo.afterWords,Jo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const oi="Person";var ii={beforeTags:{Honorific:oi,Person:oi,Preposition:oi},afterTags:{Person:oi,ProperNoun:oi,Verb:oi},ownTags:{ProperNoun:oi},beforeWords:{hi:oi,hey:oi,yo:oi,dear:oi,hello:oi},afterWords:{said:oi,says:oi,told:oi,tells:oi,feels:oi,felt:oi,seems:oi,thinks:oi,thought:oi,spends:oi,spendt:oi,plays:oi,played:oi,sing:oi,sang:oi,learn:oi,learned:oi,wants:oi,wanted:oi}};const si="Month",li={beforeTags:{Date:si,Value:si},afterTags:{Date:si,Value:si},beforeWords:{by:si,in:si,on:si,during:si,after:si,before:si,between:si,until:si,til:si,sometime:si,of:si,this:si,next:si,last:si,previous:si,following:si},afterWords:{sometime:si,in:si,of:si,until:si,the:si}};var ui={beforeTags:Object.assign({},ii.beforeTags,li.beforeTags),afterTags:Object.assign({},ii.afterTags,li.afterTags),beforeWords:Object.assign({},ii.beforeWords,li.beforeWords),afterWords:Object.assign({},ii.afterWords,li.afterWords)};const ci={Place:"Place"},hi={Place:"Place",Abbreviation:"Place"},di={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place"},gi={in:"Place",by:"Place",near:"Place",from:"Place",to:"Place",government:"Place",council:"Place",region:"Place",city:"Place"};let mi="Unit";const pi="Honorific";let fi={first:pi,general:pi,royal:pi,vice:pi,rear:pi,major:pi};const bi={"Adj|Gerund":So,"Adj|Noun":Mo,"Adj|Past":Ro,"Adj|Present":Xo,"Noun|Verb":ai,"Noun|Gerund":ri,"Person|Noun":{beforeTags:Object.assign({},Jo.beforeTags,ii.beforeTags),afterTags:Object.assign({},Jo.afterTags,ii.afterTags),beforeWords:Object.assign({},Jo.beforeWords,ii.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Jo.afterWords,ii.afterWords)},"Person|Date":ui,"Person|Verb":{beforeTags:Object.assign({},ii.beforeTags,Zo.beforeTags),afterTags:Object.assign({},ii.afterTags,Zo.afterTags),beforeWords:Object.assign({},ii.beforeWords,Zo.beforeWords),afterWords:Object.assign({},ii.afterWords,Zo.afterWords)},"Person|Place":{beforeTags:Object.assign({},ci,ii.beforeTags),afterTags:Object.assign({},hi,ii.afterTags),beforeWords:Object.assign({},di,ii.beforeWords),afterWords:Object.assign({},gi,ii.afterWords)},"Unit|Noun":{beforeTags:{Value:mi},afterTags:{},beforeWords:{per:mi,every:mi,each:mi,square:mi,cubic:mi,sq:mi,metric:mi},afterWords:{per:mi,squared:mi,cubed:mi,long:mi}},"Honorific|Noun":{beforeTags:{Honorific:pi,ProperNoun:pi,Ordinal:pi},afterTags:{Person:pi,ProperNoun:pi},beforeWords:Object.assign({},fi,{honorable:pi,honourable:pi,worship:pi,excellency:pi,majesty:pi,right:pi}),afterWords:fi}},vi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};bi["Plural|Verb"]={beforeWords:vi(bi["Noun|Verb"].beforeWords,{}),afterWords:vi(bi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:vi(bi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:vi(bi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var yi=bi;const wi="Adjective",ki="Infinitive",Pi="PresentTense",Ai="Singular",Ei="PastTense",ji="Adverb",Ni="Plural",Ii="Verb",Gi="LastName",Di="Participle";var xi=[null,null,{ea:Ai,ia:"Noun",ic:wi,ly:ji,"'n":Ii,"'t":Ii},{oed:Ei,ued:Ei,xed:Ei," so":ji,"'ll":"Modal","'re":"Copula",azy:wi,eer:"Noun",end:Ii,ped:Ei,ffy:wi,ify:ki,ing:"Gerund",ize:ki,ibe:ki,lar:wi,mum:wi,nes:Pi,nny:wi,ous:wi,que:wi,rol:Ai,sis:Ai,ogy:Ai,oid:Ai,ian:Ai,zes:Pi,eld:Ei,ken:Di,ven:Di,ten:Di,ect:ki,ict:ki,ign:ki,ful:wi,bal:wi},{amed:Ei,aped:Ei,ched:Ei,lked:Ei,rked:Ei,reed:Ei,nded:Ei,mned:wi,cted:Ei,dged:Ei,ield:Ai,akis:Gi,cede:ki,chuk:Gi,czyk:Gi,ects:Pi,ends:Ii,enko:Gi,ette:Ai,wner:Ai,fies:Pi,fore:ji,gate:ki,gone:wi,ices:Ni,ints:Ni,ruct:ki,ines:Ni,ions:Ni,less:wi,llen:wi,made:wi,nsen:Gi,oses:Pi,ould:"Modal",some:wi,sson:Gi,tion:Ai,tage:"Noun",ique:Ai,tive:wi,tors:"Noun",vice:Ai,lier:Ai,fier:Ai,wned:Ei,gent:Ai,tist:Ai,pist:Ai,rist:Ai,mist:Ai,yist:Ai,vist:Ai,lite:Ai,site:Ai,rite:Ai,mite:Ai,bite:Ai,mate:Ai,date:Ai,ndal:Ai,vent:Ai,uist:Ai,gist:Ai,note:Ai,cide:Ai,wide:wi,vide:ki,ract:ki,duce:ki,pose:ki,eive:ki,lyze:ki,lyse:ki,iant:wi,nary:wi},{elist:Ai,holic:Ai,phite:Ai,tized:Ei,urned:Ei,eased:Ei,ances:Ni,bound:wi,ettes:Ni,fully:ji,ishes:Pi,ities:Ni,marek:Gi,nssen:Gi,ology:"Noun",osome:Ai,tment:Ai,ports:Ni,rough:wi,tches:Pi,tieth:"Ordinal",tures:Ni,wards:ji,where:ji,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:Ai,scent:Ai,onist:Ai,anist:Ai,alist:Ai,olist:Ai,icist:Ai,ounce:ki,iable:wi,borne:wi,gnant:wi,inant:wi,igent:wi,atory:wi,rient:Ai,dient:Ai},{auskas:Gi,parent:Ai,cedent:Ai,ionary:Ai,cklist:Ai,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:Gi,borough:"Place",sdottir:Gi}];const Ti="Adjective";var Ci=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Ti,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Ti,tele:"Noun","pro-":Ti,"mis-":"Verb","dis-":"Verb","pre-":Ti},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Ti,radio:"Noun",tetra:"Noun","omni-":Ti,"post-":Ti},{pseudo:Ti,"extra-":Ti,"hyper-":Ti,"inter-":Ti,"intra-":Ti,"deca-":Ti},{electro:"Noun"}];const Oi="Adjective",Bi="Infinitive",zi="PresentTense",Vi="Singular",Fi="PastTense",$i="Expression",Si="LastName";var Hi={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Si],[/.[^aeiou]ica$/,Vi,"harmonica"],[/^([hyj]a+)+$/,$i,"haha"]],c:[[/.[^aeiou]ic$/,Oi]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Fi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Fi,"rammed"],[/.[aeiou][sg]hed$/,Fi,"gushed"],[/.[aeiou]red$/,Fi,"hired"],[/.[aeiou]r?ried$/,Fi,"hurried"],[/[^aeiou]ard$/,Vi,"steward"],[/[aeiou][^aeiou]id$/,Oi,""],[/.[vrl]id$/,Oi,"livid"],[/..led$/,Fi,"hurled"],[/.[iao]sed$/,Fi,""],[/[aeiou]n?[cs]ed$/,Fi,""],[/[aeiou][rl]?[mnf]ed$/,Fi,""],[/[aeiou][ns]?c?ked$/,Fi,"bunked"],[/[aeiou]gned$/,Fi],[/[aeiou][nl]?ged$/,Fi],[/.[tdbwxyz]ed$/,Fi],[/[^aeiou][aeiou][tvx]ed$/,Fi],[/.[cdflmnprstv]ied$/,Fi,"emptied"]],e:[[/.[lnr]ize$/,Bi,"antagonize"],[/.[^aeiou]ise$/,Bi,"antagonise"],[/.[aeiou]te$/,Bi,"bite"],[/.[^aeiou][ai]ble$/,Oi,"fixable"],[/.[^aeiou]eable$/,Oi,"maleable"],[/.[ts]ive$/,Oi,"festive"],[/[a-z]-like$/,Oi,"woman-like"]],h:[[/.[^aeiouf]ish$/,Oi,"cornish"],[/.v[iy]ch$/,Si,"..ovich"],[/^ug?h+$/,$i,"ughh"],[/^uh[ -]?oh$/,$i,"uhoh"],[/[a-z]-ish$/,Oi,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Si,"polish-male"]],k:[[/^(k){2}$/,$i,"kkkk"]],l:[[/.[gl]ial$/,Oi,"familial"],[/.[^aeiou]ful$/,Oi,"fitful"],[/.[nrtumcd]al$/,Oi,"natal"],[/.[^aeiou][ei]al$/,Oi,"familial"]],m:[[/.[^aeiou]ium$/,Vi,"magnesium"],[/[^aeiou]ism$/,Vi,"schism"],[/^[hu]m+$/,$i,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Oi,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,$i,"noooo"],[/^(yo)+$/,$i,"yoo"],[/^wo{2,}[pt]?$/,$i,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Vi],[/[^i]fer$/,Bi],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Oi],[/[aeiou].*ist$/,Oi],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,zi],[/.[rln]ates$/,zi],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Vi],[/.[aeiou]sks$/,zi],[/.[aeiou]kes$/,zi],[/[aeiou][^aeiou]is$/,Vi],[/[a-z]'s$/,"Noun"],[/^yes+$/,$i]],v:[[/.[^aeiou][ai][kln]ov$/,Si]],y:[[/.[cts]hy$/,Oi],[/.[st]ty$/,Oi],[/.[tnl]ary$/,Oi],[/.[oe]ry$/,Vi],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Oi],[/...lly$/,"Adverb"],[/.[gk]y$/,Oi],[/[bszmp]{2}y$/,Oi],[/.[ai]my$/,Oi],[/[ea]{2}zy$/,Oi],[/.[^aeiou]ity$/,Vi]]};const Ji="Verb",Li="Noun";var Mi={leftTags:[["Adjective",Li],["Possessive",Li],["Determiner",Li],["Adverb",Ji],["Pronoun",Ji],["Value",Li],["Ordinal",Li],["Modal",Ji],["Superlative",Li],["Demonym",Li],["Honorific","Person"]],leftWords:[["i",Ji],["first",Li],["it",Ji],["there",Ji],["not",Ji],["because",Li],["if",Li],["but",Li],["who",Ji],["this",Li],["his",Li],["when",Li],["you",Ji],["very","Adjective"],["old",Li],["never",Ji],["before",Li],["a","Singular"],["the",Li],["been",Ji]],rightTags:[["Copula",Li],["PastTense",Li],["Conjunction",Li],["Modal",Li]],rightWords:[["there",Ji],["me",Ji],["man","Adjective"],["only",Ji],["him",Ji],["it",Ji],["were",Li],["took",Li],["himself",Ji],["went",Li],["who",Li],["jr","Person"]]},Wi={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Ki={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},qi={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Ui={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Ri={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const Qi=/^.([0-9]+)/;var Zi=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(Qi);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(Qi,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},Xi=/^([0-9]+)/,Yi=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Xi);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Xi,"")]}(n[0],n[1])}))};var es=function(e={}){return(e=Object.assign({},e)).rules=Yi(e.rules),e.rules=_i(e.rules),e.rev&&(e.rev=Yi(e.rev),e.rev=_i(e.rev)),e.exceptions=Yi(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e};var ts=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const ns=es({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),rs=es(Ui),as=es(Ki),os=es(qi),is=ts(ns),ss=ts(rs),ls=ts(as),us=ts(os),cs=es(Wi),hs=es(Ri);var ds={fromPast:ns,fromPresent:rs,fromGerund:as,fromParticiple:os,toPast:is,toPresent:ss,toGerund:ls,toParticiple:us,toComparative:cs,toSuperlative:hs,fromComparative:ts(cs),fromSuperlative:ts(hs)},gs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),ms=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var ps=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(bs[t].forEach((n=>e[n]=t)),e)),{});var vs=bs;var ys=function(e){let t=e.substring(e.length-3);if(!0===vs.hasOwnProperty(t))return vs[t];let n=e.substring(e.length-2);return!0===vs.hasOwnProperty(n)?vs[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const ws={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var ks=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=ys(e)),ws.hasOwnProperty(e))c=ws[e];else if("Participle"===n)c=Zi(l,i);else if("PastTense"===n)c=Zi(l,r);else if("PresentTense"===n)c=Zi(l,a);else{if("Gerund"!==n)return e;c=Zi(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var Ps=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Zi(i,n),PresentTense:Zi(i,r),Gerund:Zi(i,a),FutureTense:"will "+e},u=Zi(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var As={toInfinitive:ks,conjugate:Ps,all:function(e,t){let n=Ps(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};var Es=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const js=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],Ns={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Is=function(e){if(Ns.hasOwnProperty(e))return Ns[e];let t=Es(e,js);return t||e+"ly"};const Gs=function(e,t){const n=t.two.models.toSuperlative;return Zi(e,n)},Ds=function(e,t){const n=t.two.models.toComparative;return Zi(e,n)},xs="ically",Ts=new Set(["analyt"+xs,"chem"+xs,"class"+xs,"clin"+xs,"crit"+xs,"ecolog"+xs,"electr"+xs,"empir"+xs,"frant"+xs,"grammat"+xs,"ident"+xs,"ideolog"+xs,"log"+xs,"mag"+xs,"mathemat"+xs,"mechan"+xs,"med"+xs,"method"+xs,"method"+xs,"mus"+xs,"phys"+xs,"phys"+xs,"polit"+xs,"pract"+xs,"rad"+xs,"satir"+xs,"statist"+xs,"techn"+xs,"technolog"+xs,"theoret"+xs,"typ"+xs,"vert"+xs,"whims"+xs]),Cs=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Os=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Bs={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var zs=function(e){return e.endsWith("ly")?Ts.has(e)?e.replace(/ically/,"ical"):Os.has(e)?null:Bs.hasOwnProperty(e)?Bs[e]:Es(e,Cs)||e:null};const Vs=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Fs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},$s=new Set(["terrible","annoying"]);var Ss={toSuperlative:Gs,toComparative:Ds,toAdverb:Is,toNoun:function(e){if(Fs.hasOwnProperty(e))return Fs[e];if($s.has(e))return null;let t=Es(e,Vs);return t||e+"ness"},fromAdverb:zs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Zi(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Zi(e,n)},all:function(e,t){let n=[e];return n.push(Gs(e,t)),n.push(Ds(e,t)),n.push(Is(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Hs={noun:fs,verb:As,adjective:Ss},Js={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var Ls=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Js.hasOwnProperty(i)&&Js[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var Ms=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!qs.find((t=>e.endsWith(t)))},Rs={two:{quickSplit:Ms,expandLexicon:Ls,transform:Hs,looksPlural:Us}};var Qs=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const Zs=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var _s=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Zs(n,"Infinitive","PastTense"),Object.assign(s,l),l=Zs(r,"Infinitive","Verb"),Object.assign(s,l),l=Zs(a,"Infinitive","Gerund"),Object.assign(s,l),l=Zs(o,"Adjective","Superlative"),Object.assign(s,l),l=Zs(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Xs={two:{models:ds}};const Ys={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},el=function(e,t){const n={model:t,methods:Rs};let{lex:r,_multi:a}=Rs.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},tl=function(e,t,n){let r=Ps(e,Xs);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},nl=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=Ys[o],"Noun|Verb"!==o&&"Person|Verb"!==o||tl(a,r,!1),"Adj|Present"===o&&(tl(a,r,!0),function(e,t,n){let r=Gs(e,n);t[r]=t[r]||"Superlative";let a=Ds(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=ks(a,Xs,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=ks(a,Xs,"PastTense");r[e]||(n[e]="Infinitive")}})),t=el(n,t)};var rl=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=el(e.one.lexicon,e)).one.lexicon,e),e=nl(e.two.switches,e),e=_s(e),e=Qs(e)};let al={one:{_multiCache:{},lexicon:Co},two:{irregularPlurals:yo,models:ds,suffixPatterns:xi,prefixPatterns:Ci,endsWith:Hi,neighbours:Mi,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z]{1,4})$/,"Value","9km"]],switches:Oo,clues:yi,uncountable:{},orgWords:gs}};al=rl(al);var ol=al;const il=/^(under|over|mis|re|un|dis|semi)-?/;var sl=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(il.test(a.normal)){let e=a.normal.replace(il,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var ll=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const ul=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var cl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(Us(e.normal)?ll(e,"Plural","3-plural-guess"):ll(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=ys(e.normal);t&&ll(e,t,"3-verb-tense-guess")}}(r)};const hl=/^\p{Lu}[\p{Ll}'’]/u,dl=/[0-9]/,gl=["Date","Month","WeekDay","Unit"],ml=/^[IVXLCDM]{2,}$/,pl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,fl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var bl=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===hl.test(o)&&!1===dl.test(o)?gl.find((e=>r.tags.has(e)))?null:(cl(e,t,n),r.tags.has("Noun")||r.tags.clear(),ll(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&ml.test(o)&&pl.test(o)&&!fl[r.normal]?(ll(r,"RomanNumeral","2-xvii"),!0):null};const vl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var yl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=vl(r.normal,n.two.suffixPatterns);if(null!==e)return ll(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=vl(r.implicit,n.two.suffixPatterns),null!==e))return ll(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const wl=/['‘’‛‵′`´]/,kl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ll(r,e,"2-prefix"),r.confidence=.5,!0}return null};const El=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),jl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!El.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},Nl=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},Il=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var Gl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(jl(a)||jl(o))return ll(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Nl(a)||Nl(o))return ll(n,"Year","2-tagYear-close");if(Il(e[t-2])||Il(e[t+2]))return ll(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ll(n,"Year","2-tagYear-noun")}}}return null};const Dl=/^[A-Z]('s|,)?$/,xl=/^[A-Z-]+$/,Tl=/([A-Z]\.)+[A-Z]?,?$/,Cl=/[A-Z]{2,}('s|,)?$/,Ol=/([a-z]\.)+[a-z]\.?$/,Bl={I:!0,A:!0};var zl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===xl.test(n)||n.length>5||Bl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Tl.test(n)&&!0!==Ol.test(n)&&!0!==Dl.test(n)&&!0!==Cl.test(n))}(r,n)?(r.tags.clear(),ll(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Bl.hasOwnProperty(r.text)&&Dl.test(r.text)?(r.tags.clear(),ll(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ll(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&xl.test(r.text)&&r.text.length<=6?(ll(r,"Acronym","3-titlecase-acronym"),!0):null};const Vl=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Fl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var $l=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Vl(e[t-1],a),l=l||Vl(e[t+1],o),l=l||Fl(e[t-1],r),l=l||Fl(e[t+1],i),l)return ll(s,l,"3-[neighbour]"),cl(e,t,n),e[t].confidence=.2,!0}return null};const Sl=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Hl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Sl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Sl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Jl=function(e,t,n){0===e[t].tags.size&&(ll(e[t],"Noun","3-[fallback]"),cl(e,t,n),e[t].confidence=.1)};const Ll=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Ml=(e,t,n)=>0!==t||e[1]?null:n,Wl={"Adj|Gerund":(e,t)=>Ll(e,t),"Adj|Noun":(e,t)=>Ll(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>Ll(e,t),"Adj|Present":(e,t)=>Ll(e,t),"Noun|Gerund":(e,t)=>Ll(e,t),"Noun|Verb":(e,t)=>Ll(e,t)||Ml(e,t,"Infinitive"),"Plural|Verb":(e,t)=>Ll(e,t)||Ml(e,t,"PresentTense"),"Person|Noun":(e,t)=>Ll(e,t),"Person|Verb":(e,t)=>0!==t?Ll(e,t):null};var Kl=Wl;const ql="undefined"!=typeof process&&process.env?process.env:self.env||{},Ul=/^(under|over|mis|re|un|dis|semi)-?/,Rl=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&ql.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},Ql=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&ql.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var Zl=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Ul.test(l)&&!o[l]&&(l=l.replace(Ul,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Rl(e[t+1],n.afterWords);return o=o||Rl(e[t-1],n.beforeWords),o=o||Ql(e[t-1],n.beforeTags,a),o=o||Ql(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Kl[o]&&(u=Kl[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),cl(e,t,r)):ql.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};var _l=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ll(o,"Verb","3-[prefix]"),ll(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ll(o,"Adjective","3-[prefix]"),ll(o,"Prefix","3-[prefix]")))};const Xl={tagSwitch:sl,checkSuffix:yl,checkRegex:Pl,checkCase:bl,checkPrefix:Al,checkHyphen:_l,checkYear:Gl},Yl={checkAcronym:zl,neighbours:$l,orgWords:Hl,nounFallback:Jl,switches:Zl},eu=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var au=function(e){const t=e.world,n=Object.keys(ru);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=fu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=pu};var vu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const yu=/'/;var wu=function(e,t){let n=e[t].normal.split(yu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const ku=/'/;var Pu=function(e,t){let n=e[t].normal.split(ku)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var Au=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const Eu={that:!0,there:!0,let:!0,here:!0,everywhere:!0},ju={in:!0,by:!0,for:!0};var Nu=(e,t)=>{let n=e[t];if(Eu.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===ju[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Iu=/'/,Gu=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Du={d:(e,t)=>Pu(e,t),t:(e,t)=>Au(e,t),s:(e,t,n)=>Nu(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):wu(e,t)},xu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Tu={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Iu.test(r[o].normal)&&([,i]=r[o].normal.split(Iu));let s=null;Du.hasOwnProperty(i)&&(s=Du[i](r,o,t)),s&&(s=xu(s,e),vu(n,[a,o],s),Gu(n[a],e,o,s.length))}}))}},Cu={compute:Tu,api:bu,hooks:["contractionTwo"]};const Ou="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const Bu=["i","we","they"];let zu=[].concat([{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [%Noun|Verb%]",group:0,tag:"Singular",ifNo:["#ProperNoun"],reason:"bride-and-groom"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|father) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Ou} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Ou} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Ou}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Bu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Bu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Bu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let Vu=null;var Fu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Vu=Vu||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Vu),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const $u={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Fu,model:{two:{matches:zu}},hooks:["postTagger"]};var Su=$u;var Hu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var Ju=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Hu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},Lu={lib:{lazy:Ju}};var Mu=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var Wu=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Mu(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Ku={api:function(e){e.prototype.swap=Wu}};b.plugin(du),b.plugin(Cu),b.plugin(Su),b.plugin(Lu),b.plugin(Ku);export{b as default}; +var e={methods:{one:{},two:{},three:{},four:{}},model:{one:{},two:{},three:{}},compute:{},hooks:[]};const t={compute:function(e){const{world:t}=this,n=t.compute;return"string"==typeof e&&n.hasOwnProperty(e)?n[e](this):(e=>"[object Array]"===Object.prototype.toString.call(e))(e)?e.forEach((r=>{t.compute.hasOwnProperty(r)?n[r](this):console.warn("no compute:",e)})):"function"==typeof e?e(this):console.warn("no compute:",e),this}};var n=t;var r={forEach:function(e){return this.fullPointer.forEach(((t,n)=>{let r=this.update([t]);e(r,n)})),this},map:function(e,t){let n=this.fullPointer.map(((t,n)=>{let r=this.update([t]),a=e(r,n);return void 0===a?this.none():a}));if(0===n.length)return t||this.update([]);if(void 0!==n[0]){if("string"==typeof n[0])return n;if("object"==typeof n[0]&&(null===n[0]||!n[0].isView))return n}let r=[];return n.forEach((e=>{r=r.concat(e.fullPointer)})),this.toView(r)},filter:function(e){let t=this.fullPointer;return t=t.filter(((t,n)=>{let r=this.update([t]);return e(r,n)})),this.update(t)},find:function(e){let t=this.fullPointer.find(((t,n)=>{let r=this.update([t]);return e(r,n)}));return this.update([t])},some:function(e){return this.fullPointer.some(((t,n)=>{let r=this.update([t]);return e(r,n)}))},random:function(e=1){let t=this.fullPointer,n=Math.floor(Math.random()*t.length);return n+e>this.length&&(n=this.length-e,n=n<0?0:n),t=t.slice(n,n+e),this.update(t)}};const a={termList:function(){return this.methods.one.termList(this.docs)},terms:function(e){let t=this.match(".");return"number"==typeof e?t.eq(e):t},groups:function(e){if(e||0===e)return this.update(this._groups[e]||[]);let t={};return Object.keys(this._groups).forEach((e=>{t[e]=this.update(this._groups[e])})),t},eq:function(e){let t=this.pointer;return t||(t=this.docs.map(((e,t)=>[t]))),t[e]?this.update([t[e]]):this.none()},first:function(){return this.eq(0)},last:function(){let e=this.fullPointer.length-1;return this.eq(e)},firstTerms:function(){return this.match("^.")},lastTerms:function(){return this.match(".$")},slice:function(e,t){let n=this.pointer||this.docs.map(((e,t)=>[t]));return n=n.slice(e,t),this.update(n)},all:function(){return this.update().toView()},fullSentences:function(){let e=this.fullPointer.map((e=>[e[0]]));return this.update(e).toView()},none:function(){return this.update([])},isDoc:function(e){if(!e||!e.isView)return!1;let t=this.fullPointer,n=e.fullPointer;return!t.length!==n.length&&t.every(((e,t)=>!!n[t]&&(e[0]===n[t][0]&&e[1]===n[t][1]&&e[2]===n[t][2])))},wordCount:function(){return this.docs.reduce(((e,t)=>(e+=t.filter((e=>""!==e.text)).length,e)),0)}};a.group=a.groups,a.fullSentence=a.fullSentences,a.sentence=a.fullSentences,a.lastTerm=a.lastTerms,a.firstTerm=a.firstTerms;var o=a;const i=Object.assign({},o,n,r);i.get=i.eq;var s=i;class View{constructor(t,n,r={}){[["document",t],["world",e],["_groups",r],["_cache",null],["viewType","View"]].forEach((e=>{Object.defineProperty(this,e[0],{value:e[1],writable:!0})})),this.ptrs=n}get docs(){let t=this.document;return this.ptrs&&(t=e.methods.one.getDoc(this.ptrs,this.document)),t}get pointer(){return this.ptrs}get methods(){return this.world.methods}get model(){return this.world.model}get hooks(){return this.world.hooks}get isView(){return!0}get found(){return this.docs.length>0}get length(){return this.docs.length}get fullPointer(){let{docs:e,ptrs:t,document:n}=this,r=t||e.map(((e,t)=>[t]));return r.map((e=>{let[t,r,a,o,i]=e;return r=r||0,a=a||(n[t]||[]).length,n[t]&&n[t][r]&&(o=o||n[t][r].id,n[t][a-1]&&(i=i||n[t][a-1].id)),[t,r,a,o,i]}))}update(e){let t=new View(this.document,e);if(this._cache&&e&&e.length>0){let n=[];e.forEach(((e,t)=>{let[r,a,o]=e;(1===e.length||0===a&&this.document[r].length===o)&&(n[t]=this._cache[r])})),n.length>0&&(t._cache=n)}return t.world=this.world,t}toView(e){return new View(this.document,e||this.pointer)}fromText(e){const{methods:t}=this;let n=t.one.tokenize.fromString(e,this.world),r=new View(n);return r.world=this.world,r.compute(["normal","lexicon"]),this.world.compute.preTagger&&r.compute("preTagger"),r}clone(){let e=this.document.slice(0);e=e.map((e=>e.map((e=>((e=Object.assign({},e)).tags=new Set(e.tags),e)))));let t=this.update(this.pointer);return t.document=e,t._cache=this._cache,t}}Object.assign(View.prototype,s);var l=View;const u=function(e){return e&&"object"==typeof e&&!Array.isArray(e)};function c(e,t){if(u(t))for(const n in t)u(t[n])?(e[n]||Object.assign(e,{[n]:{}}),c(e[n],t[n])):Object.assign(e,{[n]:t[n]});return e}var h=function(e,t,n,r){const{methods:a,model:o,compute:i,hooks:s}=t;e.methods&&function(e,t){for(const n in t)e[n]=e[n]||{},Object.assign(e[n],t[n])}(a,e.methods),e.model&&c(o,e.model),e.irregulars&&function(e,t){let n=e.two.models||{};Object.keys(t).forEach((e=>{t[e].pastTense&&(n.toPast&&(n.toPast.exceptions[e]=t[e].pastTense),n.fromPast&&(n.fromPast.exceptions[t[e].pastTense]=e)),t[e].presentTense&&(n.toPresent&&(n.toPresent.exceptions[e]=t[e].presentTense),n.fromPresent&&(n.fromPresent.exceptions[t[e].presentTense]=e)),t[e].gerund&&(n.toGerund&&(n.toGerund.exceptions[e]=t[e].gerund),n.fromGerund&&(n.fromGerund.exceptions[t[e].gerund]=e)),t[e].comparative&&(n.toComparative&&(n.toComparative.exceptions[e]=t[e].comparative),n.fromComparative&&(n.fromComparative.exceptions[t[e].comparative]=e)),t[e].superlative&&(n.toSuperlative&&(n.toSuperlative.exceptions[e]=t[e].superlative),n.fromSuperlative&&(n.fromSuperlative.exceptions[t[e].superlative]=e))}))}(o,e.irregulars),e.compute&&Object.assign(i,e.compute),s&&(t.hooks=s.concat(e.hooks||[])),e.api&&e.api(n),e.lib&&Object.keys(e.lib).forEach((t=>r[t]=e.lib[t])),e.tags&&r.addTags(e.tags),e.words&&r.addWords(e.words),e.mutate&&e.mutate(t)};const d=function(e){return"[object Array]"===Object.prototype.toString.call(e)};var m=function(e,t,n){const{methods:r}=n;let a=new t([]);if(a.world=n,"number"==typeof e&&(e=String(e)),!e)return a;if("string"==typeof e){return new t(r.one.tokenize.fromString(e,n))}if(o=e,"[object Object]"===Object.prototype.toString.call(o)&&e.isView)return new t(e.document,e.ptrs);var o;if(d(e)){if(d(e[0])){let n=e.map((e=>e.map((e=>({text:e,normal:e,pre:"",post:" ",tags:new Set})))));return new t(n)}let n=function(e){return e.map((e=>e.terms.map((e=>(d(e.tags)&&(e.tags=new Set(e.tags)),e)))))}(e);return new t(n)}return a};let p=Object.assign({},e);const f=function(e,t){t&&f.addWords(t);let n=m(e,l,p);return e&&n.compute(p.hooks),n};Object.defineProperty(f,"_world",{value:p,writable:!0}),f.tokenize=function(e,t){const{compute:n}=this._world;t&&f.addWords(t);let r=m(e,l,p);return n.contractions&&r.compute(["alias","normal","machine","contractions"]),r},f.plugin=function(e){return h(e,this._world,l,this),this},f.extend=f.plugin,f.world=function(){return this._world},f.model=function(){return this._world.model},f.methods=function(){return this._world.methods},f.hooks=function(){return this._world.hooks},f.verbose=function(e){const t="undefined"!=typeof process&&process.env?process.env:self.env||{};return t.DEBUG_TAGS="tagger"===e||!0===e||"",t.DEBUG_MATCH="match"===e||!0===e||"",t.DEBUG_CHUNKS="chunker"===e||!0===e||"",this},f.version="14.6.0";var b=f;var v=function(e){let t=e.map((e=>{let t=new Set;return e.forEach((e=>{""!==e.normal&&t.add(e.normal),e.switch&&t.add(`%${e.switch}%`),e.implicit&&t.add(e.implicit),e.machine&&t.add(e.machine),e.root&&t.add(e.root),e.alias&&e.alias.forEach((e=>t.add(e)));let n=Array.from(e.tags);for(let e=0;e/^\p{Lu}[\p{Ll}'’]/u.test(e)||/^\p{Lu}$/u.test(e),A=(e,t,n)=>{if(n.forEach((e=>e.dirty=!0)),e){let r=[t,0].concat(n);Array.prototype.splice.apply(e,r)}return e},E=function(e){let t=e[e.length-1];!t||/ $/.test(t.post)||/[-–—]/.test(t.post)||(t.post+=" ")},j=(e,t,n)=>{const r=/[-.?!,;:)–—'"]/g;let a=e[t-1];if(!a)return;let o=a.post;if(r.test(o)){let e=o.match(r).join(""),t=n[n.length-1];t.post=e+t.post,a.post=a.post.replace(r,"")}},I=function(e,t,n,r){let[a,o,i]=t;0===o||i===r[a].length?E(n):(E(n),E([e[t[1]]])),function(e,t,n){let r=e[t];if(0!==t||!P(r.text))return;n[0].text=n[0].text.replace(/^\p{Ll}/u,(e=>e.toUpperCase()));let a=e[t];a.tags.has("ProperNoun")||a.tags.has("Acronym")||P(a.text)&&a.text.length>1&&(a.text=(o=a.text,o.replace(/^\p{Lu}/u,(e=>e.toLowerCase()))));var o}(e,o,n),A(e,o,n)};let N=0;const D=e=>(e=e.length<3?"0"+e:e).length<3?"0"+e:e;var x=function(e){let[t,n]=e.index||[0,0];N+=1,N=N>46655?0:N,t=t>46655?0:t,n=n>1294?0:n;let r=D(N.toString(36));r+=D(t.toString(36));let a=n.toString(36);return a=a.length<2?"0"+a:a,r+=a,r+=parseInt(36*Math.random(),10).toString(36),e.normal+"|"+r.toUpperCase()};const C=function(e){if(e.has("@hasContraction")&&"function"==typeof e.contractions){e.grow("@hasContraction").contractions().expand()}},T=e=>"[object Array]"===Object.prototype.toString.call(e),G=function(e,t,n){const{document:r,world:a}=t;t.uncache();let o=t.fullPointer,i=t.fullPointer;t.forEach(((s,l)=>{let u=s.fullPointer[0],[c]=u,h=r[c],d=function(e,t){const{methods:n}=t;return"string"==typeof e?n.one.tokenize.fromString(e,t)[0]:"object"==typeof e&&e.isView?e.clone().docs[0]||[]:T(e)?T(e[0])?e[0]:e:[]}(e,a);0!==d.length&&(d=function(e){return e.map((e=>(e.id=x(e),e)))}(d),n?(C(t.update([u]).firstTerm()),I(h,u,d,r)):(C(t.update([u]).lastTerm()),function(e,t,n,r){let[a,,o]=t,i=(r[a]||[]).length;o{let n=t(e);e.replaceWith(n)})),e}(r,e);e=function(e,t){if("string"!=typeof e)return e;let n=t.groups();return e=e.replace(z,(e=>{let t=e.replace(/\$/,"");return n.hasOwnProperty(t)?n[t].text():e})),e}(e,r);let a=this.update(n);n=n.map((e=>e.slice(0,3)));let o=(a.docs[0]||[]).map((e=>Array.from(e.tags)));if(r.insertAfter(e),a.has("@hasContraction")&&r.contractions){r.grow("@hasContraction+").contractions().expand()}r.delete(a);let i=r.toView(n).compute(["index","lexicon"]);return i.world.compute.preTagger&&i.compute("preTagger"),t.tags&&i.terms().forEach(((e,t)=>{e.tagSafe(o[t])})),t.case&&i.docs[0]&&i.docs[0][0]&&0===i.docs[0][0].index[1]&&(i.docs[0][0].text=i.docs[0][0].text.replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.substring(1).toLowerCase()))),i},H.replace=function(e,t,n){if(e&&!t)return this.replaceWith(e,n);let r=this.match(e);return r.found?(this.soften(),r.replaceWith(t,n)):this};var V=H;var F=function(e,t){t.forEach((t=>{let[n,r,a]=t,o=a-r;e[n]&&(a===e[n].length&&a>1&&function(e,t){let n=e.length-1,r=e[n],a=e[n-t];a&&r&&(a.post+=r.post,a.post=a.post.replace(/ +([.?!,;:])/,"$1"),a.post=a.post.replace(/[,;:]+([.?!])/,"$1"))}(e[n],o),e[n].splice(r,o))}));for(let t=e.length-1;t>=0;t-=1)if(0===e[t].length&&(e.splice(t,1),t===e.length&&e[t-1])){let n=e[t-1],r=n[n.length-1];r&&(r.post=r.post.trimEnd())}return e};const $={remove:function(e){const{indexN:t}=this.methods.one.pointer;this.uncache();let n=this.all(),r=this;e&&(n=this,r=this.match(e));let a=!n.ptrs;if(r.has("@hasContraction")&&r.contractions){r.grow("@hasContraction").contractions().expand()}let o=n.fullPointer,i=r.fullPointer.reverse(),s=F(this.document,i);return o=function(e,t){return e=e.map((e=>{let[n]=e;return t[n]?(t[n].forEach((t=>{let n=t[2]-t[1];e[1]<=t[1]&&e[2]>=t[2]&&(e[2]-=n)})),e):e})),e.forEach(((t,n)=>{if(0===t[1]&&0==t[2])for(let t=n+1;te[2]-e[1]>0))).map((e=>(e[3]=null,e[4]=null,e)))}(o,t(i)),n.ptrs=o,n.document=s,n.compute("index"),a&&(n.ptrs=void 0),e?n.toView(o):(this.ptrs=[],n.none())}};$.delete=$.remove;var S=$;const J={pre:function(e,t){return void 0===e&&this.found?this.docs[0][0].pre:(this.docs.forEach((n=>{let r=n[0];!0===t?r.pre+=e:r.pre=e})),this)},post:function(e,t){if(void 0===e){let e=this.docs[this.docs.length-1];return e[e.length-1].post}return this.docs.forEach((n=>{let r=n[n.length-1];!0===t?r.post+=e:r.post=e})),this},trim:function(){if(!this.found)return this;let e=this.docs,t=e[0][0];t.pre=t.pre.trimStart();let n=e[e.length-1],r=n[n.length-1];return r.post=r.post.trimEnd(),this},hyphenate:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.pre=""),e[n+1]&&(t.post="-")}))})),this},dehyphenate:function(){const e=/[-–—]/;return this.docs.forEach((t=>{t.forEach((t=>{e.test(t.post)&&(t.post=" ")}))})),this},toQuotations:function(e,t){return e=e||'"',t=t||'"',this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this},toParentheses:function(e,t){return e=e||"(",t=t||")",this.docs.forEach((n=>{n[0].pre=e+n[0].pre;let r=n[n.length-1];r.post=t+r.post})),this}};J.deHyphenate=J.dehyphenate,J.toQuotation=J.toQuotations;var M=J;var L={alpha:(e,t)=>e.normalt.normal?1:0,length:(e,t)=>{let n=e.normal.trim().length,r=t.normal.trim().length;return nr?-1:0},wordCount:(e,t)=>e.wordst.words?-1:0,sequential:(e,t)=>e[0]t[0]?-1:e[1]>t[1]?1:-1,byFreq:function(e){let t={};return e.forEach((e=>{t[e.normal]=t[e.normal]||0,t[e.normal]+=1})),e.sort(((e,n)=>{let r=t[e.normal],a=t[n.normal];return ra?-1:0})),e}};const W=new Set(["index","sequence","seq","sequential","chron","chronological"]),K=new Set(["freq","frequency","topk","repeats"]),q=new Set(["alpha","alphabetical"]);var U={unique:function(){let e=new Set,t=this.filter((t=>{let n=t.text("machine");return!e.has(n)&&(e.add(n),!0)}));return t},reverse:function(){let e=this.pointer||this.docs.map(((e,t)=>[t]));return e=[].concat(e),e=e.reverse(),this._cache&&(this._cache=this._cache.reverse()),this.update(e)},sort:function(e){let{docs:t,pointer:n}=this;if(this.uncache(),"function"==typeof e)return function(e,t){let n=e.fullPointer;return n=n.sort(((n,r)=>(n=e.update([n]),r=e.update([r]),t(n,r)))),e.ptrs=n,e}(this,e);e=e||"alpha";let r=n||t.map(((e,t)=>[t])),a=t.map(((e,t)=>({index:t,words:e.length,normal:e.map((e=>e.machine||e.normal||"")).join(" "),pointer:r[t]})));return W.has(e)&&(e="sequential"),q.has(e)&&(e="alpha"),K.has(e)?(a=L.byFreq(a),this.update(a.map((e=>e.pointer)))):"function"==typeof L[e]?(a=a.sort(L[e]),this.update(a.map((e=>e.pointer)))):this}};const R=function(e,t){let n=e[e.length-1],r=n[n.length-1];return!1===/ /.test(r.post)&&(r.post+=" "),e=e.concat(t)};var Q={concat:function(e){const{methods:t,document:n,world:r}=this;if("string"==typeof e){let a=t.one.tokenize.fromString(e,r),o=this.fullPointer,i=o[o.length-1][0];return A(n,i+1,a),this.compute("index")}if("object"==typeof e&&e.isView)return function(e,t){if(e.document===t.document){let n=e.fullPointer.concat(t.fullPointer);return e.toView(n).compute("index")}return t.fullPointer.forEach((t=>{t[0]+=e.document.length})),e.document=R(e.document,t.document),e.all()}(this,e);if(a=e,"[object Array]"===Object.prototype.toString.call(a)){let t=R(this.document,e);return this.document=t,this.all()}var a;return this}};var Z={harden:function(){return this.ptrs=this.fullPointer,this},soften:function(){let e=this.ptrs;return!e||e.length<1||(e=e.map((e=>e.slice(0,3))),this.ptrs=e),this}};const X=Object.assign({},{toLowerCase:function(){return this.termList().forEach((e=>{e.text=e.text.toLowerCase()})),this},toUpperCase:function(){return this.termList().forEach((e=>{e.text=e.text.toUpperCase()})),this},toTitleCase:function(){return this.termList().forEach((e=>{e.text=e.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))})),this},toCamelCase:function(){return this.docs.forEach((e=>{e.forEach(((t,n)=>{0!==n&&(t.text=t.text.replace(/^ *[a-z\u00C0-\u00FF]/,(e=>e.toUpperCase()))),n!==e.length-1&&(t.post="")}))})),this}},B,V,S,M,U,Q,Z);var _=function(e){Object.assign(e.prototype,X)};const Y={id:function(e){let t=e.docs;for(let e=0;e(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const re=/'/,ae=new Set(["what","how","when","where","why"]),oe=new Set(["be","go","start","think","need"]),ie=new Set(["been","gone"]);var se=function(e,t){let n=e[t].normal.split(re)[0];if(ae.has(n))return[n,"did"];if(e[t+1]){if(ie.has(e[t+1].normal))return[n,"had"];if(oe.has(e[t+1].normal))return[n,"would"]}return null};var le=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal)return null;return[e[t].normal.replace(/n't/,""),"not"]};const ue=/'/;var ce=(e,t)=>["je",e[t].normal.split(ue)[1]],he=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["la",n]:["le",n]},de=(e,t)=>{let n=e[t].normal.split(ue)[1];return n&&n.endsWith("e")?["du",n]:n&&n.endsWith("s")?["des",n]:["de",n]};const ge=/^([0-9.]{1,4}[a-z]{0,2}) ?[-–—] ?([0-9]{1,4}[a-z]{0,2})$/i,me=/^([0-9]{1,2}(:[0-9][0-9])?(am|pm)?) ?[-–—] ?([0-9]{1,2}(:[0-9][0-9])?(am|pm)?)$/i,pe=/^[0-9]{3}-[0-9]{4}$/;var fe=function(e,t){let n=e[t],r=n.text.match(ge);return null!==r?!0===n.tags.has("PhoneNumber")||pe.test(n.text)?null:[r[1],"to",r[2]]:(r=n.text.match(me),null!==r?[r[1],"to",r[4]]:null)};const be=/^([+-]?[0-9][.,0-9]*)([a-z°²³µ/]+)$/,ve=new Set(["st","nd","rd","th","am","pm","max","°","s","e"]);var ye=function(e,t){let n=e[t].text.match(be);if(null!==n){let e=n[2].toLowerCase().trim();return ve.has(e)?null:[n[1],e]}return null};const we=/'/,ke=/^[0-9][^-–—]*[-–—].*?[0-9]/,Pe=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]]},Ae={t:(e,t)=>le(e,t),d:(e,t)=>se(e,t)},Ee={j:(e,t)=>ce(e,t),l:(e,t)=>he(e,t),d:(e,t)=>de(e,t)},je=function(e,t,n,r){for(let a=0;a{let{world:t,document:n}=e;const{model:r,methods:a}=t;let o=r.one.contractions||[];new Set(r.one.units||[]),n.forEach(((r,i)=>{for(let s=r.length-1;s>=0;s-=1){let l=null,u=null;!0===we.test(r[s].normal)&&([l,u]=r[s].normal.split(we));let c=je(o,r[s],l,u);!c&&Ae.hasOwnProperty(u)&&(c=Ae[u](r,s,t)),!c&&Ee.hasOwnProperty(l)&&(c=Ee[l](r,s)),c?(c=Ie(c,e),ne(n,[i,s],c),Pe(n[i],e,s,c.length)):ke.test(r[s].normal)?(c=fe(r,s),c&&(c=Ie(c,e),ne(n,[i,s],c),a.one.setTag(c,"NumberRange",t),c[2]&&c[2].tags.has("Time")&&a.one.setTag([c[0]],"Time",t,null,"time-range"),Pe(n[i],e,s,c.length))):(c=ye(r,s),c&&(c=Ie(c,e),ne(n,[i,s],c),a.one.setTag([c[1]],"Unit",t,null,"contraction-unit")))}}))};var De={model:te,compute:{contractions:Ne},hooks:["contractions"]};var xe=function(e,t,n){const{model:r,methods:a}=n,o=a.one.setTag,i=r.one._multiCache||{},s=r.one.lexicon||{};let l=e[t],u=l.machine||l.normal;return void 0!==e[t+1]&&!0===i[u]?function(e,t,n,r,a){let o=t+4>e.length?e.length-t:4,i=e[t].machine||e[t].normal;for(let s=1;si.hasOwnProperty(e)));if(e){return o([s],i[e],n,!1,"1-lexicon-alias"),!0}}if(!0===Ce.test(l)){let e=l.replace(Ce,"");if(i.hasOwnProperty(e)&&e.length>3&&Te.has(i[e]))return o([s],i[e],n,!1,"1-lexicon-prefix"),!0}return null};var Oe={lexicon:function(e){const t=e.world;e.docs.forEach((e=>{for(let n=0;n{let a=e[r],o=(r=(r=r.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);o.length>1&&(n[o[0]]=!0),t[r]=t[r]||a})),delete t[""],delete t.null,delete t[" "],{lex:t,_multi:n}};var ze={addWords:function(e){const t=this.world(),{methods:n,model:r}=t;if(e)if(Object.keys(e).forEach((t=>{"string"==typeof e[t]&&e[t].startsWith("#")&&(e[t]=e[t].replace(/^#/,""))})),n.two.expandLexicon){let{lex:a,_multi:o}=n.two.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else if(n.one.expandLexicon){let{lex:a,_multi:o}=n.one.expandLexicon(e,t);Object.assign(r.one.lexicon,a),Object.assign(r.one._multiCache,o)}else Object.assign(r.one.lexicon,e)}};var He={model:{one:{lexicon:{},_multiCache:{}}},methods:{one:{expandLexicon:Be}},compute:Oe,lib:ze,hooks:["lexicon"]};var Ve=function(e,t){let n=[{}],r=[null],a=[0],o=[],i=0;e.forEach((function(e){let a=0,o=function(e,t){const{methods:n,model:r}=t;return n.one.tokenize.splitTerms(e,r).map(n.one.tokenize.splitWhitespace).map((e=>e.text.toLowerCase()))}(e,t);for(let e=0;e0&&!n[i].hasOwnProperty(l);)i=a[i];if(n.hasOwnProperty(i)){let e=n[i][l];a[u]=e,r[e]&&(r[u]=r[u]||[],r[u]=r[u].concat(r[e]))}else a[u]=0}}return{goNext:n,endAs:r,failTo:a}};const Fe=function(e,t,n){let r=0,a=[];for(let o=0;o0&&(void 0===t.goNext[r]||!t.goNext[r].hasOwnProperty(i));)r=t.failTo[r]||0;if(t.goNext[r].hasOwnProperty(i)&&(r=t.goNext[r][i],t.endAs[r])){let n=t.endAs[r];for(let t=0;t0&&(r=r.concat(l))}return e.update(r)};const Je=(e,t)=>{for(let n=e.length-1;n>=0;n-=1)if(e[n]!==t)return e=e.slice(0,n+1),e;return e};var Me=function(e){return e.goNext=e.goNext.map((e=>{if(0!==Object.keys(e).length)return e})),e.goNext=Je(e.goNext,void 0),e.failTo=Je(e.failTo,0),e.endAs=Je(e.endAs,null),e};const Le={buildTrie:function(e){const t=Ve(e,this.world());return Me(t)}};Le.compile=Le.buildTrie;var We={api:function(e){e.prototype.lookup=function(e,t={}){if(!e)return this.none();"string"==typeof e&&(e=[e]);let n=(r=e,"[object Object]"===Object.prototype.toString.call(r)?e:Ve(e,this.world));var r;let a=Se(this,n,t);return a=a.settle(),a}},lib:Le};const Ke=function(e,t){return t?(e.forEach((e=>{let n=e[0];t[n]&&(e[0]=t[n][0],e[1]+=t[n][1],e[2]+=t[n][1])})),e):e},qe=function(e,t){let{ptrs:n,byGroup:r}=e;return n=Ke(n,t),Object.keys(r).forEach((e=>{r[e]=Ke(r[e],t)})),{ptrs:n,byGroup:r}},Ue=e=>"[object Object]"===Object.prototype.toString.call(e),Re=e=>e&&Ue(e)&&!0===e.isView,Qe=e=>e&&Ue(e)&&!0===e.isNet,Ze=function(e,t,n){const r=n.methods.one;return"number"==typeof e&&(e=String(e)),"string"==typeof e&&(e=r.killUnicode(e,n),e=r.parseMatch(e,t,n)),e};var Xe={matchOne:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e).eq(0);if(Qe(e))return this.sweep(e,{tagger:!1,matchOne:!0}).view;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},match:function(e,t,n){const r=this.methods.one;if(Re(e))return this.intersection(e);if(Qe(e))return this.sweep(e,{tagger:!1}).view.settle();let a={regs:e=Ze(e,n,this.world),group:t},o=r.match(this.docs,a,this._cache),{ptrs:i,byGroup:s}=qe(o,this.fullPointer),l=this.toView(i);return l._groups=s,l},has:function(e,t,n){const r=this.methods.one;if(Re(e)){return e.fullPointer.length>0}if(Qe(e))return this.sweep(e,{tagger:!1}).view.found;let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0};return r.match(this.docs,a,this._cache).ptrs.length>0},if:function(e,t,n){const r=this.methods.one;if(Re(e))return this.filter((t=>t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.if(t)}let a={regs:e=Ze(e,n,this.world),group:t,justOne:!0},o=this.fullPointer,i=this._cache||[];o=o.filter(((e,t)=>{let n=this.update([e]);return r.match(n.docs,a,i[t]).ptrs.length>0}));let s=this.update(o);return this._cache&&(s._cache=o.map((e=>i[e[0]]))),s},ifNo:function(e,t,n){const{methods:r}=this,a=r.one;if(Re(e))return this.filter((t=>!t.intersection(e).found));if(Qe(e)){let t=this.sweep(e,{tagger:!1}).view.settle();return this.ifNo(t)}e=Ze(e,n,this.world);let o=this._cache||[],i=this.filter(((n,r)=>{let i={regs:e,group:t,justOne:!0};return 0===a.match(n.docs,i,o[r]).ptrs.length}));return this._cache&&(i._cache=i.ptrs.map((e=>o[e[0]]))),i}};var _e={before:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer);Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?1:-1))[0];t[1]>0&&a.push([t[0],0,t[1]])}));let i=this.toView(a);return e?i.match(e,t,n):i},after:function(e,t,n){const{indexN:r}=this.methods.one.pointer;let a=[],o=r(this.fullPointer),i=this.document;Object.keys(o).forEach((e=>{let t=o[e].sort(((e,t)=>e[1]>t[1]?-1:1))[0],[n,,r]=t;r{let o=n.before(e,t);if(o.found){let e=o.terms();r[a][1]-=e.length,r[a][3]=e.docs[0][0].id}})),this.update(r)},growRight:function(e,t,n){"string"==typeof e&&(e=this.world.methods.one.parseMatch(e,n,this.world)),e[0].start=!0;let r=this.fullPointer;return this.forEach(((n,a)=>{let o=n.after(e,t);if(o.found){let e=o.terms();r[a][2]+=e.length,r[a][4]=null}})),this.update(r)},grow:function(e,t,n){return this.growRight(e,t,n).growLeft(e,t,n)}};const Ye=function(e,t){return[e[0],e[1],t[2]]},et=(e,t,n)=>{return"string"==typeof e||(r=e,"[object Array]"===Object.prototype.toString.call(r))?t.match(e,n):e||t.none();var r},tt=function(e,t){let[n,r,a]=e;return t.document[n]&&t.document[n][r]&&(e[3]=e[3]||t.document[n][r].id,t.document[n][a-1]&&(e[4]=e[4]||t.document[n][a-1].id)),e},nt={splitOn:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),o.push(e.match),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitBefore:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),o.push(e.before),e.match&&e.after?o.push(Ye(e.match,e.after)):(o.push(e.match),o.push(e.after))})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)},splitAfter:function(e,t){const{splitAll:n}=this.methods.one.pointer;let r=et(e,this,t).fullPointer,a=n(this.fullPointer,r),o=[];return a.forEach((e=>{o.push(e.passthrough),e.before&&e.match?o.push(Ye(e.before,e.match)):(o.push(e.before),o.push(e.match)),o.push(e.after)})),o=o.filter((e=>e)),o=o.map((e=>tt(e,this))),this.update(o)}};nt.split=nt.splitAfter;var rt=nt;const at=Object.assign({},Xe,_e,rt);at.lookBehind=at.before,at.lookBefore=at.before,at.lookAhead=at.after,at.lookAfter=at.after,at.notIf=at.ifNo;var ot=function(e){Object.assign(e.prototype,at)};const it=/(?:^|\s)([![^]*(?:<[^<]*>)?\/.*?[^\\/]\/[?\]+*$~]*)(?:\s|$)/,st=/([!~[^]*(?:<[^<]*>)?\([^)]+[^\\)]\)[?\]+*$~]*)(?:\s|$)/,lt=/ /g,ut=e=>/^[![^]*(<[^<]*>)?\//.test(e)&&/\/[?\]+*$~]*$/.test(e),ct=function(e){return e=(e=e.map((e=>e.trim()))).filter((e=>e))};var ht=function(e){let t=e.split(it),n=[];t.forEach((e=>{ut(e)?n.push(e):n=n.concat(e.split(st))})),n=ct(n);let r=[];return n.forEach((e=>{(e=>/^[![^]*(<[^<]*>)?\(/.test(e)&&/\)[?\]+*$~]*$/.test(e))(e)||ut(e)?r.push(e):r=r.concat(e.split(lt))})),r=ct(r),r};const dt=/\{([0-9]+)?(, *[0-9]*)?\}/,gt=/&&/,mt=new RegExp(/^<\s*(\S+)\s*>/),pt=e=>e.charAt(0).toUpperCase()+e.substring(1),ft=e=>e.charAt(e.length-1),bt=e=>e.charAt(0),vt=e=>e.substring(1),yt=e=>e.substring(0,e.length-1),wt=function(e){return e=vt(e),e=yt(e)},kt=function(e,t){let n={};for(let r=0;r<2;r+=1){if("$"===ft(e)&&(n.end=!0,e=yt(e)),"^"===bt(e)&&(n.start=!0,e=vt(e)),("["===bt(e)||"]"===ft(e))&&(n.group=null,"["===bt(e)&&(n.groupStart=!0),"]"===ft(e)&&(n.groupEnd=!0),e=(e=e.replace(/^\[/,"")).replace(/\]$/,""),"<"===bt(e))){const t=mt.exec(e);t.length>=2&&(n.group=t[1],e=e.replace(t[0],""))}if("+"===ft(e)&&(n.greedy=!0,e=yt(e)),"*"!==e&&"*"===ft(e)&&"\\*"!==e&&(n.greedy=!0,e=yt(e)),"?"===ft(e)&&(n.optional=!0,e=yt(e)),"!"===bt(e)&&(n.negative=!0,e=vt(e)),"~"===bt(e)&&"~"===ft(e)&&e.length>2&&(e=wt(e),n.fuzzy=!0,n.min=t.fuzzy||.85,!1===/\(/.test(e)))return n.word=e,n;if("("===bt(e)&&")"===ft(e)){gt.test(e)?(n.choices=e.split(gt),n.operator="and"):(n.choices=e.split("|"),n.operator="or"),n.choices[0]=vt(n.choices[0]);let r=n.choices.length-1;n.choices[r]=yt(n.choices[r]),n.choices=n.choices.map((e=>e.trim())),n.choices=n.choices.filter((e=>e)),n.choices=n.choices.map((e=>e.split(/ /g).map((e=>kt(e,t))))),e=""}if("/"===bt(e)&&"/"===ft(e))return e=wt(e),t.caseSensitive&&(n.use="text"),n.regex=new RegExp(e),n;if("{"===bt(e)&&"}"===ft(e)){if(e=wt(e),n.id=e,n.root=e,/\//.test(e)){let e=n.root.split(/\//);n.root=e[0],n.pos=e[1],"adj"===n.pos&&(n.pos="Adjective"),n.pos=n.pos.charAt(0).toUpperCase()+n.pos.substr(1).toLowerCase(),void 0!==e[2]&&(n.num=e[2])}return n}if("<"===bt(e)&&">"===ft(e))return e=wt(e),n.chunk=pt(e),n.greedy=!0,n;if("%"===bt(e)&&"%"===ft(e))return e=wt(e),n.switch=e,n}return!0===dt.test(e)&&(e=e.replace(dt,((e,t,r)=>(void 0===r?(n.min=Number(t),n.max=Number(t)):(r=r.replace(/, */,""),void 0===t?(n.min=0,n.max=Number(r)):(n.min=Number(t),n.max=Number(r||999))),n.greedy=!0,n.min||(n.optional=!0),"")))),"#"===bt(e)?(n.tag=vt(e),n.tag=pt(n.tag),n):"@"===bt(e)?(n.method=vt(e),n):"."===e?(n.anything=!0,n):"*"===e?(n.anything=!0,n.greedy=!0,n.optional=!0,n):(e&&(e=(e=e.replace("\\*","*")).replace("\\.","."),t.caseSensitive?n.use="text":e=e.toLowerCase(),n.word=e),n)};var Pt=kt;const At=/[a-z0-9][-–—][a-z]/i;var Et=function(e,t){let n=t.model.one.prefixes;for(let t=e.length-1;t>=0;t-=1){let r=e[t];if(r.word&&At.test(r.word)){let a=r.word.split(/[-–—]/g);if(n.hasOwnProperty(a[0]))continue;a=a.filter((e=>e)).reverse(),e.splice(t,1),a.forEach((n=>{let a=Object.assign({},r);a.word=n,e.splice(t,0,a)}))}}return e};const jt=function(e,t){let{all:n}=t.methods.two.transform.verb||{},r=e.root;return n?n(r,t.model):[]},It=function(e,t){let{all:n}=t.methods.two.transform.noun||{};return n?n(e.root,t.model):[e.root]},Nt=function(e,t){let{all:n}=t.methods.two.transform.adjective||{};return n?n(e.root,t.model):[e.root]};var Dt=function(e,t){return e=e.map((e=>{if(e.root)if(t.methods.two&&t.methods.two.transform){let n=[];e.pos?"Verb"===e.pos?n=n.concat(jt(e,t)):"Noun"===e.pos?n=n.concat(It(e,t)):"Adjective"===e.pos&&(n=n.concat(Nt(e,t))):(n=n.concat(jt(e,t)),n=n.concat(It(e,t)),n=n.concat(Nt(e,t))),n=n.filter((e=>e)),n.length>0&&(e.operator="or",e.fastOr=new Set(n))}else e.machine=e.root,delete e.id,delete e.root;return e}))};var xt=function(e){return e=function(e){let t=0,n=null;for(let r=0;r(e.fuzzy&&e.choices&&e.choices.forEach((t=>{1===t.length&&t[0].word&&(t[0].fuzzy=!0,t[0].min=e.min)})),e)))}(e=e.map((e=>{if(void 0!==e.choices){if("or"!==e.operator)return e;if(!0===e.fuzzy)return e;!0===e.choices.every((e=>{if(1!==e.length)return!1;let t=e[0];return!0!==t.fuzzy&&!t.start&&!t.end&&void 0!==t.word&&!0!==t.negative&&!0!==t.optional&&!0!==t.method}))&&(e.fastOr=new Set,e.choices.forEach((t=>{e.fastOr.add(t[0].word)})),delete e.choices)}return e}))),e};var Ct=function(e,t,n){if(null==e||""===e)return[];t=t||{},"number"==typeof e&&(e=String(e));let r=ht(e);return r=r.map((e=>Pt(e,t))),r=Et(r,n),r=Dt(r,n),r=xt(r),r};const Tt=function(e,t){for(let n of t)if(e.has(n))return!0;return!1};var Gt=function(e,t){for(let n=0;nn?r:n)+1;if(Math.abs(n-r)>(a||100))return a||100;let o,i,s,l,u,c,h=[];for(let e=0;e4)return n;s=t[o-1],l=i===s?0:1,u=h[a-1][o]+1,(c=h[a][o-1]+1)1&&o>1&&i===t[o-2]&&e[a-2]===s&&(c=h[a-2][o-2]+l)-1!==e.post.indexOf(t),$t=(e,t)=>-1!==e.pre.indexOf(t),St={hasQuote:e=>Bt.test(e.pre)||zt.test(e.post),hasComma:e=>Ft(e,","),hasPeriod:e=>!0===Ft(e,".")&&!1===Ft(e,"..."),hasExclamation:e=>Ft(e,"!"),hasQuestionMark:e=>Ft(e,"?")||Ft(e,"¿"),hasEllipses:e=>Ft(e,"..")||Ft(e,"…")||$t(e,"..")||$t(e,"…"),hasSemicolon:e=>Ft(e,";"),hasColon:e=>Ft(e,":"),hasSlash:e=>/\//.test(e.text),hasHyphen:e=>Ht.test(e.post)||Ht.test(e.pre),hasDash:e=>Vt.test(e.post)||Vt.test(e.pre),hasContraction:e=>Boolean(e.implicit),isAcronym:e=>e.tags.has("Acronym"),isKnown:e=>e.tags.size>0,isTitleCase:e=>/^\p{Lu}[a-z'\u00C0-\u00FF]/u.test(e.text),isUpperCase:e=>/^\p{Lu}+$/u.test(e.text)};St.hasQuotation=St.hasQuote;var Jt=St;let Mt=function(){};Mt=function(e,t,n,r){let a=function(e,t,n,r){if(!0===t.anything)return!0;if(!0===t.start&&0!==n)return!1;if(!0===t.end&&n!==r-1)return!1;if(void 0!==t.word){if(t.use)return t.word===e[t.use];if(null!==e.machine&&e.machine===t.word)return!0;if(void 0!==e.alias&&e.alias.hasOwnProperty(t.word))return!0;if(!0===t.fuzzy){if(t.word===e.root)return!0;if(Ot(t.word,e.normal)>=t.min)return!0}return!(!e.alias||!e.alias.some((e=>e===t.word)))||t.word===e.text||t.word===e.normal}if(void 0!==t.tag)return!0===e.tags.has(t.tag);if(void 0!==t.method)return"function"==typeof Jt[t.method]&&!0===Jt[t.method](e);if(void 0!==t.pre)return e.pre&&e.pre.includes(t.pre);if(void 0!==t.post)return e.post&&e.post.includes(t.post);if(void 0!==t.regex){let n=e.normal;return t.use&&(n=e[t.use]),t.regex.test(n)}return void 0!==t.chunk?e.chunk===t.chunk:void 0!==t.switch?e.switch===t.switch:void 0!==t.machine?e.normal===t.machine||e.machine===t.machine||e.root===t.machine:void 0!==t.sense?e.sense===t.sense:void 0!==t.fastOr?t.pos&&!e.tags.has(t.pos)?null:t.fastOr.has(e.implicit)||t.fastOr.has(e.normal)||t.fastOr.has(e.text)||t.fastOr.has(e.machine):void 0!==t.choices&&("and"===t.operator?t.choices.every((t=>Mt(e,t,n,r))):t.choices.some((t=>Mt(e,t,n,r))))}(e,t,n,r);return!0===t.negative?!a:a};var Lt=Mt;const Wt=function(e,t){if(!0===e.end&&!0===e.greedy&&t.start_i+t.tn.max)return e.t=e.t+n.max,!0;if(!0===e.hasGroup){Kt(e,e.t).length=r-e.t}return e.t=r,!0};const Ut=function(e,t=0){let n=e.regs[e.r],r=!1;for(let o=0;o{let a=0,o=e.t+r+t+a;if(void 0===e.terms[o])return!1;let i=Lt(e.terms[o],n,o+e.start_i,e.phrase_length);if(!0===i&&!0===n.greedy)for(let t=1;t{let r=n.every(((t,n)=>{let r=e.t+n;return void 0!==e.terms[r]&&Lt(e.terms[r],t,r,e.phrase_length)}));return!0===r&&n.length>t&&(t=n.length),r}))&&t}(e);if(r){if(!0===n.negative)return null;if(!0===e.hasGroup){Kt(e,e.t).length+=r}if(!0===n.end){let t=e.phrase_length-1;if(e.t+e.start_i!==t)return null}return e.t+=r,!0}return!!n.optional||null};var Zt=function(e,t,n){let r=0;for(let a=e.t;ar)&&(e.t+=r,!0))};var Xt=function(e){const{regs:t}=e;let n=t[e.r],r=Object.assign({},n);if(r.negative=!1,Lt(e.terms[e.t],r,e.start_i+e.t,e.phrase_length))return!1;if(n.optional){let n=t[e.r+1];if(n){if(Lt(e.terms[e.t],n,e.start_i+e.t,e.phrase_length))e.r+=1;else if(n.optional&&t[e.r+2]){Lt(e.terms[e.t],t[e.r+2],e.start_i+e.t,e.phrase_length)&&(e.r+=2)}}}return n.greedy?Zt(e,r,t[e.r+1]):(e.t+=1,!0)};var _t=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=Lt(r,t[e.r+1],e.start_i+e.t,e.phrase_length);if(n.negative||a){let n=e.terms[e.t+1];n&&Lt(n,t[e.r+1],e.start_i+e.t,e.phrase_length)||(e.r+=1)}};var Yt=function(e){const{regs:t,phrase_length:n}=e;let r=t[e.r];return e.t=function(e,t){let n=Object.assign({},e.regs[e.r],{start:!1,end:!1}),r=e.t;for(;e.te.t?null:!0!==r.end||e.start_i+e.t===n||null};var en=function(e){let t=e.terms[e.t],n=e.regs[e.r];if(t.implicit&&e.terms[e.t+1]){if(!e.terms[e.t+1].implicit)return;n.word===t.normal&&(e.t+=1),"hasContraction"===n.method&&(e.t+=1)}};var tn=function(e){const{regs:t}=e;let n=t[e.r],r=e.terms[e.t],a=e.t;if(n.optional&&t[e.r+1]&&n.negative)return!0;if(n.optional&&t[e.r+1]&&_t(e),r.implicit&&e.terms[e.t+1]&&en(e),e.t+=1,!0===n.end&&e.t!==e.terms.length&&!0!==n.greedy)return null;if(!0===n.greedy){if(!Yt(e))return null}return!0===e.hasGroup&&function(e,t){let n=e.regs[e.r];const r=Kt(e,t);e.t>1&&n.greedy?r.length+=e.t-t:r.length++}(e,a),!0};var nn=function(e,t,n,r){if(0===e.length||0===t.length)return null;let a={t:0,terms:e,r:0,regs:t,groups:{},start_i:n,phrase_length:r,inGroup:null};for(;a.r!e.optional)))break;return null}if(!0!==e.anything||!0!==e.greedy)if(void 0===e.choices||"or"!==e.operator)if(void 0===e.choices||"and"!==e.operator)if(!0!==e.anything)if(!0!==Wt(e,a))if(e.negative){if(!Xt(a))return null}else if(!0!==Lt(a.terms[a.t],e,a.start_i+a.t,a.phrase_length)){if(!0!==e.optional)return null}else{if(!tn(a))return null}else{if(!tn(a))return null}else{if(e.negative&&e.anything)return null;if(!tn(a))return null}else{if(!Qt(a))return null}else{if(!Rt(a))return null}else{if(!qt(a))return null}}let o=[null,n,a.t+n];if(o[1]===o[2])return null;let i={};return Object.keys(a.groups).forEach((e=>{let t=a.groups[e],r=n+t.start;i[e]=[null,r,r+t.length]})),{pointer:o,groups:i}};var rn=function(e,t){let n=[],r={};return 0===e.length||("number"==typeof t&&(t=String(t)),t?e.forEach((e=>{e.groups[t]&&n.push(e.groups[t])})):e.forEach((e=>{n.push(e.pointer),Object.keys(e.groups).forEach((t=>{r[t]=r[t]||[],r[t].push(e.groups[t])}))}))),{ptrs:n,byGroup:r}};const an=function(e,t){return e.pointer[0]=t,Object.keys(e.groups).forEach((n=>{e.groups[n][0]=t})),e},on=function(e,t,n){let r=nn(e,t,0,e.length);return r?(r=an(r,n),r):null};var sn=function(e,t,n){n=n||[];let{regs:r,group:a,justOne:o}=t,i=[];if(!r||0===r.length)return{ptrs:[],byGroup:{}};const s=r.filter((e=>!0!==e.optional&&!0!==e.negative)).length;e:for(let t=0;te&&(e=Math.abs(n-1))}}else{let e=on(a,r,t);e&&i.push(e)}}return!0===r[r.length-1].end&&(i=i.filter((t=>{let n=t.pointer[0];return e[n].length===t.pointer[2]}))),i=rn(i,a),i.ptrs.forEach((t=>{let[n,r,a]=t;t[3]=e[n][r].id,t[4]=e[n][a-1].id})),i};var ln={api:ot,methods:{one:{termMethods:Jt,parseMatch:Ct,match:sn}},lib:{parseMatch:function(e,t){const n=this.world();let r=n.methods.one.killUnicode;return r&&(e=r(e,n)),n.methods.one.parseMatch(e,t,n)}}};const un=/^\../,cn=/^#./,hn=function(e,t){let n={},r={};return Object.keys(t).forEach((a=>{let o=t[a],i=function(e){let t="",n="";return e=e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),un.test(e)?t=``),t+=">",{start:t,end:n}}(a);"string"==typeof o&&(o=e.match(o)),o.docs.forEach((e=>{if(e.every((e=>e.implicit)))return;let t=e[0].id;n[t]=n[t]||[],n[t].push(i.start);let a=e[e.length-1].id;r[a]=r[a]||[],r[a].push(i.end)}))})),{starts:n,ends:r}};var dn={html:function(e){let{starts:t,ends:n}=hn(this,e),r="";return this.docs.forEach((e=>{for(let a=0;a{let n=e.pre||"",a=e.post||"";"some"===t.punctuation&&(n=n.replace(mn,""),fn.test(a)&&(a=" "),a=a.replace(pn,""),a=a.replace(/\?!+/,"?"),a=a.replace(/!+/,"!"),a=a.replace(/\?+/,"?"),a=a.replace(/\.{2,}/,""),e.tags.has("Abbreviation")&&(a=a.replace(/\./,""))),"some"===t.whitespace&&(n=n.replace(/\s/,""),a=a.replace(/\s+/," ")),t.keepPunct||(n=n.replace(mn,""),a="-"===a?" ":a.replace(gn,""));let o=e[t.form||"text"]||e.normal||"";"implicit"===t.form&&(o=e.implicit||e.text),"root"===t.form&&e.implicit&&(o=e.root||e.implicit||e.normal),"machine"!==t.form&&"implicit"!==t.form&&"root"!==t.form||!e.implicit||a&&bn.test(a)||(a+=" "),r+=n+o+a})),!1===n&&(r=r.trim()),!0===t.lowerCase&&(r=r.toLowerCase()),r},yn={text:{form:"text"},normal:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"normal"},machine:{whitespace:"some",punctuation:"some",case:"none",unicode:"some",form:"machine"},root:{whitespace:"some",punctuation:"some",case:"some",unicode:"some",form:"root"},implicit:{form:"implicit"}};yn.clean=yn.normal,yn.reduced=yn.root;var wn=yn;let kn=[],Pn=0;for(;Pn<64;)kn[Pn]=0|4294967296*Math.sin(++Pn%Math.PI);function An(e){let t,n,r,a=[t=1732584193,n=4023233417,~t,~n],o=[],i=decodeURI(encodeURI(e))+"€",s=i.length;for(e=--s/4+2|15,o[--e]=8*s;~s;)o[s>>2]|=i.charCodeAt(s)<<8*s--;for(Pn=i=0;Pn>4]+kn[i]+~~o[Pn|15&[i,5*i+1,3*i+5,7*i][s]])<<(s=[7,12,17,22,5,9,14,20,4,11,16,23,6,10,15,21][4*s+i++%4])|r>>>-s),t,n])t=0|s[1],n=s[2];for(i=4;i;)a[--i]+=s[i]}for(e="";i<32;)e+=(a[i>>3]>>4*(1^i++)&15).toString(16);return e}const En={text:!0,terms:!0};let jn={case:"none",unicode:"some",form:"machine",punctuation:"some"};const In=function(e,t){return Object.assign({},e,t)},Nn={text:e=>vn(e,{keepPunct:!0},!1),normal:e=>vn(e,In(wn.normal,{keepPunct:!0}),!1),implicit:e=>vn(e,In(wn.implicit,{keepPunct:!0}),!1),machine:e=>vn(e,jn,!1),root:e=>vn(e,In(jn,{form:"root"}),!1),hash:e=>An(vn(e,{keepPunct:!0},!1)),offset:e=>{let t=Nn.text(e).length;return{index:e[0].offset.index,start:e[0].offset.start,length:t}},terms:e=>e.map((e=>{let t=Object.assign({},e);return t.tags=Array.from(e.tags),t})),confidence:(e,t,n)=>t.eq(n).confidence(),syllables:(e,t,n)=>t.eq(n).syllables(),sentence:(e,t,n)=>t.eq(n).fullSentence().text(),dirty:e=>e.some((e=>!0===e.dirty))};Nn.sentences=Nn.sentence,Nn.clean=Nn.normal,Nn.reduced=Nn.root;const Dn={json:function(e){let t=(n=this,"string"==typeof(r=(r=e)||{})&&(r={}),(r=Object.assign({},En,r)).offset&&n.compute("offset"),n.docs.map(((e,t)=>{let a={};return Object.keys(r).forEach((o=>{r[o]&&Nn[o]&&(a[o]=Nn[o](e,n,t))})),a})));var n,r;return"number"==typeof e?t[e]:t}};Dn.data=Dn.json;var xn=Dn;var Cn=function(e){console.log("%c -=-=- ","background-color:#6699cc;"),e.forEach((e=>{console.groupCollapsed(e.text());let t=e.docs[0].map((e=>{let t=e.text||"-";return e.implicit&&(t="["+e.implicit+"]"),{text:t,tags:"["+Array.from(e.tags).join(", ")+"]"}}));console.table(t,["text","tags"]),console.groupEnd()}))};var Tn={green:e=>""+e+"",red:e=>""+e+"",blue:e=>""+e+"",magenta:e=>""+e+"",cyan:e=>""+e+"",yellow:e=>""+e+"",black:e=>""+e+"",dim:e=>""+e+"",i:e=>""+e+""};var Gn=function(e){let{docs:t,model:n}=e;0===t.length&&console.log(Tn.blue("\n ──────")),t.forEach((e=>{console.log(Tn.blue("\n ┌─────────")),e.forEach((e=>{let t=[...e.tags||[]],r=e.text||"-";e.sense&&(r="{"+e.sense+"}"),e.implicit&&(r="["+e.implicit+"]"),r=Tn.yellow(r);let a="'"+r+"'";a=a.padEnd(18);let o=Tn.blue(" │ ")+Tn.i(a)+" - "+function(e,t){return t.one.tagSet&&(e=e.map((e=>{if(!t.one.tagSet.hasOwnProperty(e))return e;const n=t.one.tagSet[e].color||"blue";return Tn[n](e)}))),e.join(", ")}(t,n);console.log(o)}))}))};var On=function(e){let{docs:t}=e;console.log(""),t.forEach((e=>{let t=[];e.forEach((e=>{"Noun"===e.chunk?t.push(Tn.blue(e.implicit||e.normal)):"Verb"===e.chunk?t.push(Tn.green(e.implicit||e.normal)):"Adjective"===e.chunk?t.push(Tn.yellow(e.implicit||e.normal)):"Pivot"===e.chunk?t.push(Tn.red(e.implicit||e.normal)):t.push(e.implicit||e.normal)})),console.log(t.join(" "),"\n")}))};var Bn=function(e){if(!e.found)return;let t={};e.fullPointer.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),Object.keys(t).forEach((n=>{let r=e.update([[Number(n)]]).text();e.update(t[n]).json({offset:!0}).forEach(((e,t)=>{r=function(e,t,n){let r=((e,t,n)=>{let r=9*n,a=t.start+r,o=a+t.length;return[e.substring(0,a),e.substring(a,o),e.substring(o,e.length)]})(e,t,n);return`${r[0]}${Tn.blue(r[1])}${r[2]}`}(r,e.offset,t)})),console.log(r)}))};var zn=function(e={}){let t=this;if("string"==typeof e){let t={};t[e]=!0,e=t}return"undefined"!=typeof window&&window.document?(Cn(t),t):(!1!==e.tags&&(Gn(t),console.log("\n")),!0===e.chunks&&(On(t),console.log("\n")),!0===e.highlight&&(Bn(t),console.log("\n")),t)};const Hn=function(e){let t=e.pre||"",n=e.post||"";return t+e.text+n};var Vn=function(e,t){let n=function(e,t){let n={};return Object.keys(t).forEach((r=>{e.match(r).fullPointer.forEach((e=>{n[e[3]]={fn:t[r],end:e[2]}}))})),n}(e,t),r="";return e.docs.forEach(((t,a)=>{for(let o=0;oe.reduce(((e,t)=>e+t.pre+t.text+t.post),"").trim()));return e.filter((e=>e))}if("freq"===e||"frequency"===e||"topk"===e)return function(e){let t={};e.forEach((e=>{t[e]=t[e]||0,t[e]+=1}));let n=Object.keys(t).map((e=>({normal:e,count:t[e]})));return n.sort(((e,t)=>e.count>t.count?-1:0))}(this.json({normal:!0}).map((e=>e.normal)));if("terms"===e){let e=[];return this.docs.forEach((t=>{let n=t.terms.map((e=>e.text));n=n.filter((e=>e)),e=e.concat(n)})),e}return"tags"===e?this.docs.map((e=>e.reduce(((e,t)=>(e[t.implicit||t.normal]=Array.from(t.tags),e)),{}))):"debug"===e?this.debug():this.text()}};var $n=Fn;var Sn={text:function(e){let t={keepSpace:!0,keepPunct:!0};var n;if(e&&"string"==typeof e&&wn.hasOwnProperty(e)?t=Object.assign({},wn[e]):e&&(n=e,"[object Object]"===Object.prototype.toString.call(n))&&(t=Object.assign({},t,e)),this.pointer){t.keepSpace=!1;let e=this.pointer[0];e&&e[1]?t.keepPunct=!1:t.keepPunct=!0}else t.keepPunct=!0;return function(e,t){let n="";if(!e||!e[0]||!e[0][0])return n;for(let r=0;ra||a<=n&&o>n},Kn=function(e){let t={};return e.forEach((e=>{t[e[0]]=t[e[0]]||[],t[e[0]].push(e)})),t};var qn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let[t]=e,a=n[t]||[];if(a=a.filter((t=>function(e,t){return e[1]<=t[1]&&t[2]<=e[2]}(e,t))),0===a.length)return void r.push({passthrough:e});a=a.sort(((e,t)=>e[1]-t[1]));let o=e;a.forEach(((e,t)=>{let n=function(e,t){let[n,r]=e,a=t[1],o=t[2],i={};if(ro&&(i.after=[n,o,e[2]]),i}(o,e);a[t+1]?(r.push({before:n.before,match:n.match}),n.after&&(o=n.after)):r.push(n)}))})),r};var Un=function(e,t){let n=[];return e.forEach(((r,a)=>{if(!r)return;let[o,i,s,l,u]=r,c=t[o]||[];if(void 0===i&&(i=0),void 0===s&&(s=c.length),!l||c[i]&&c[i].id===l)c=c.slice(i,s);else{let n=function(e,t,n){for(let r=0;r<20;r+=1){if(t[n-r]){let a=t[n-r].findIndex((t=>t.id===e));if(-1!==a)return[n-r,a]}if(t[n+r]){let a=t[n+r].findIndex((t=>t.id===e));if(-1!==a)return[n+r,a]}}return null}(l,t,o);if(null!==n){let r=s-i;c=t[n[0]].slice(n[1],n[1]+r);let o=c[0]?c[0].id:null;e[a]=[n[0],n[1],n[1]+r,o]}}0!==c.length&&i!==s&&(u&&c[c.length-1].id!==u&&(c=function(e,t){let[n,r,,,a]=e,o=t[n],i=o.findIndex((e=>e.id===a));return-1===i?(e[2]=t[n].length,e[4]=o.length?o[o.length-1].id:null):e[2]=i,t[n].slice(r,e[2]+1)}(r,t)),n.push(c))})),n=n.filter((e=>e.length>0)),n};var Rn={one:{termList:function(e){let t=[];for(let n=0;n{let[t]=e;if(1===r[t].length)return void a.push(e);let n=r[t].filter((t=>Wn(e,t)));n.push(e);let o=function(e){let t=e[0][1],n=e[0][2];return e.forEach((e=>{e[1]n&&(n=e[2])})),[e[0][0],t,n]}(n);a.push(o)})),a=function(e){let t={};for(let n=0;n{e.passthrough&&n.push(e.passthrough),e.before&&n.push(e.before),e.after&&n.push(e.after)})),n};var Xn=function(e,t){let n=Kn(t),r=[];return e.forEach((e=>{let t=n[e[0]]||[];t=t.filter((t=>Wn(e,t))),0!==t.length&&t.forEach((t=>{let n=function(e,t){let n=e[1]t[2]?t[2]:e[2];return n{return"string"==typeof e||(n=e,"[object Array]"===Object.prototype.toString.call(n))?t.match(e):e||t.none();var n},Yn=function(e,t){return e.map((e=>{let[n,r]=e;return t[n]&&t[n][r]&&(e[3]=t[n][r].id),e}))},er={union:function(e){e=_n(e,this);let t=Qn(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)}};er.and=er.union,er.intersection=function(e){e=_n(e,this);let t=Xn(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.not=function(e){e=_n(e,this);let t=Zn(this.fullPointer,e.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.difference=er.not,er.complement=function(){let e=this.all(),t=Zn(e.fullPointer,this.fullPointer);return t=Yn(t,this.document),this.toView(t)},er.settle=function(){let e=this.fullPointer;return e.forEach((t=>{e=Qn(e,[t])})),e=Yn(e,this.document),this.update(e)};var tr=function(e){Object.assign(e.prototype,er)},nr={methods:Rn,api:tr};var rr=function(e){e.prototype.sweep=function(e,t={}){const{world:n,docs:r}=this,{methods:a}=n;let o=a.one.bulkMatch(r,e,this.methods,t);!1!==t.tagger&&a.one.bulkTagger(o,r,this.world),o=o.map((e=>{let t=e.pointer,n=r[t[0]][t[1]],a=t[2]-t[1];return n.index&&(e.pointer=[n.index[0],n.index[1],t[1]+a]),e}));let i=o.map((e=>e.pointer));return o=o.map((e=>(e.view=this.update([e.pointer]),delete e.regs,delete e.needs,delete e.pointer,delete e._expanded,e))),{view:this.update(i),found:o}}};const ar=function(e){return!0===e.optional||!0===e.negative?null:e.tag?"#"+e.tag:e.word?e.word:e.switch?`%${e.switch}%`:null};var or=function(e,t){const n=t.methods.one.parseMatch;return e.forEach((e=>{e.regs=n(e.match,{},t),"string"==typeof e.ifNo&&(e.ifNo=[e.ifNo]),e.needs=function(e){let t=[];return e.forEach((e=>{t.push(ar(e)),"and"===e.operator&&e.choices&&e.choices.forEach((e=>{e.forEach((e=>{t.push(ar(e))}))}))})),t.filter((e=>e))}(e.regs);let{wants:r,count:a}=function(e){let t=[],n=0;return e.forEach((e=>{"or"!==e.operator||e.optional||e.negative||(e.fastOr&&Array.from(e.fastOr).forEach((e=>{t.push(e)})),e.choices&&e.choices.forEach((e=>{e.forEach((e=>{let n=ar(e);n&&t.push(n)}))})),n+=1)})),{wants:t,count:n}}(e.regs);e.wants=r,e.minWant=a,e.minWords=e.regs.filter((e=>!e.optional)).length})),e};var ir=function(e,t){e=or(e,t);let n={};e.forEach((e=>{e.needs.forEach((t=>{n[t]=n[t]||[],n[t].push(e)})),e.wants.forEach((t=>{n[t]=n[t]||[],n[t].push(e)}))})),Object.keys(n).forEach((e=>{let t={};n[e]=n[e].filter((e=>!t[e.match]&&(t[e.match]=!0,!0)))}));let r=e.filter((e=>0===e.needs.length&&0===e.wants.length));return{hooks:n,always:r}};var sr=function(e,t){return e.map(((n,r)=>{let a=[];Object.keys(t).forEach((n=>{e[r].has(n)&&(a=a.concat(t[n]))}));let o={};return a=a.filter((e=>!o[e.match]&&(o[e.match]=!0,!0))),a}))};var lr=function(e,t){return e.map(((e,n)=>{let r=t[n];return e=(e=(e=e.filter((e=>e.needs.every((e=>r.has(e)))))).filter((e=>void 0===e.ifNo||!0!==e.ifNo.some((e=>r.has(e)))))).filter((e=>{if(0===e.wants.length)return!0;return e.wants.filter((e=>r.has(e))).length>=e.minWant}))}))};var ur=function(e,t,n,r,a){let o=[];for(let n=0;n0&&(l.ptrs.forEach((e=>{e[0]=n;let t=Object.assign({},s,{pointer:e});void 0!==s.unTag&&(t.unTag=s.unTag),o.push(t)})),!0===a.matchOne))return[o[0]]}return o};var cr=function(e,t,n,r={}){let a=n.one.cacheDoc(e),o=sr(a,t.hooks);return o=lr(o,a),t.always.length>0&&(o=o.map((e=>e.concat(t.always)))),o=function(e,t){return e.map(((e,n)=>{let r=t[n].length;return e=e.filter((e=>r>=e.minWords)),e}))}(o,e),ur(o,e,a,n,r)};var hr=function(e,t,n){let r=n.one.tagSet;if(!r.hasOwnProperty(t))return!0;let a=r[t].not||[];for(let t=0;t{if(!e.tag&&!e.chunk&&!e.unTag)return;let a=e.reason||e.match,u=o([e.pointer],t)[0];if(!0===e.safe){if(!1===hr(u,e.tag,r))return;if("-"===u[u.length-1].post)return}if(void 0!==e.tag&&(i(u,e.tag,n,e.safe,`[post] '${a}'`),"Noun"===e.tag)){let t=u[u.length-1];l(t.text)?i([t],"Plural",n,e.safe,"quick-plural"):i([t],"Singular",n,e.safe,"quick-singular")}void 0!==e.unTag&&s(u,e.unTag,n,e.safe,a),e.chunk&&u.forEach((t=>t.chunk=e.chunk))}))},gr={lib:{buildNet:function(e){let t=this.methods().one.buildNet(e,this.world());return t.isNet=!0,t}},api:rr,methods:{one:{buildNet:ir,bulkMatch:cr,bulkTagger:dr}}};const mr=/ /,pr=function(e,t){"Noun"===t&&(e.chunk=t),"Verb"===t&&(e.chunk=t)},fr=function(e,t,n,r){if(!0===e.tags.has(t))return null;if("."===t)return null;let a=n[t];if(a){if(a.not&&a.not.length>0)for(let t=0;t0)for(let t=0;t{let r=e.map((e=>e.text||"["+e.implicit+"]")).join(" ");var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,a),!0!=(s=t,"[object Array]"===Object.prototype.toString.call(s)))if("string"==typeof t)if(t=t.trim(),mr.test(t))!function(e,t,n,r){let a=t.split(mr);e.forEach(((e,t)=>{let o=a[t];o&&(o=o.replace(/^#/,""),fr(e,o,n,r))}))}(e,t,o,r);else{t=t.replace(/^#/,"");for(let n=0;nbr(e,t,n,r)))};var vr=br;var yr=function(e,t,n){t=t.trim().replace(/^#/,"");for(let r=0;r0)for(let e=0;e/),n=[];t.forEach((e=>{n=n.concat(function(e){if(!(e=e.trim()))return null;if(/^\[/.test(e)&&/\]$/.test(e)){let t=(e=(e=e.replace(/^\[/,"")).replace(/\]$/,"")).split(/,/);return t=t.map((e=>e.trim())).filter((e=>e)),t=t.map((e=>wr({id:e}))),t}return[wr({id:e})]}(e))})),n=n.filter((e=>e));let r=n[0];for(let e=1;e{let n=[],r=[e];for(;r.length>0;){let e=r.pop();n.push(e),e.children&&e.children.forEach((n=>{t&&t(e,n),r.push(n)}))}return n},Er=e=>"[object Array]"===Object.prototype.toString.call(e),jr=e=>(e=e||"").trim(),Ir=function(e=[]){return"string"==typeof e?function(e){let t=e.split(/\r?\n/),n=[];t.forEach((e=>{if(!e.trim()||kr.test(e))return;let t=(e=>{const t=/^( {2}|\t)/;let n=0;for(;t.test(e);)e=e.replace(t,""),n+=1;return n})(e);n.push({indent:t,node:Pr(e)})}));let r=function(e){let t={children:[]};return e.forEach(((n,r)=>{0===n.indent?t.children=t.children.concat(n.node):e[r-1]&&function(e,t){let n=e[t].indent;for(;t>=0;t-=1)if(e[t].indent{t[e.id]=e}));let n=wr({});return e.forEach((e=>{if((e=wr(e)).parent)if(t.hasOwnProperty(e.parent)){let n=t[e.parent];delete e.parent,n.children.push(e)}else console.warn(`[Grad] - missing node '${e.parent}'`);else n.children.push(e)})),n}(e):(Ar(t=e).forEach(wr),t);var t},Nr=function(e,t){let n="-> ";t&&(n=(e=>""+e+"")("→ "));let r="";return Ar(e).forEach(((e,a)=>{let o=e.id||"";if(t&&(o=(e=>""+e+"")(o)),0===a&&!e.id)return;let i=e._cache.parents.length;r+=" ".repeat(i)+n+o+"\n"})),r},Dr=function(e){let t=Ar(e);t.forEach((e=>{delete(e=Object.assign({},e)).children}));let n=t[0];return n&&!n.id&&0===Object.keys(n.props).length&&t.shift(),t},xr={text:Nr,txt:Nr,array:Dr,flat:Dr},Cr=function(e,t){return"nested"===t||"json"===t?e:"debug"===t?(console.log(Nr(e,!0)),null):xr.hasOwnProperty(t)?xr[t](e):e},Tr=e=>{Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],t._cache.parents=e._cache.parents.concat([e.id]))}))},Gr=/\//;let Or=class g{constructor(e={}){Object.defineProperty(this,"json",{enumerable:!1,value:e,writable:!0})}get children(){return this.json.children}get id(){return this.json.id}get found(){return this.json.id||this.json.children.length>0}props(e={}){let t=this.json.props||{};return"string"==typeof e&&(t[e]=!0),this.json.props=Object.assign(t,e),this}get(e){if(e=jr(e),!Gr.test(e)){let t=this.json.children.find((t=>t.id===e));return new Or(t)}let t=((e,t)=>{let n=(e=>"string"!=typeof e?e:(e=e.replace(/^\//,"")).split(/\//))(t=t||"");for(let t=0;te.id===n[t]));if(!r)return null;e=r}return e})(this.json,e)||wr({});return new Or(t)}add(e,t={}){if(Er(e))return e.forEach((e=>this.add(jr(e),t))),this;e=jr(e);let n=wr({id:e,props:t});return this.json.children.push(n),new Or(n)}remove(e){return e=jr(e),this.json.children=this.json.children.filter((t=>t.id!==e)),this}nodes(){return Ar(this.json).map((e=>(delete(e=Object.assign({},e)).children,e)))}cache(){return(e=>{let t=Ar(e,((e,t)=>{e.id&&(e._cache.parents=e._cache.parents||[],e._cache.children=e._cache.children||[],t._cache.parents=e._cache.parents.concat([e.id]))})),n={};t.forEach((e=>{e.id&&(n[e.id]=e)})),t.forEach((e=>{e._cache.parents.forEach((t=>{n.hasOwnProperty(t)&&n[t]._cache.children.push(e.id)}))})),e._cache.children=Object.keys(n)})(this.json),this}list(){return Ar(this.json)}fillDown(){var e;return e=this.json,Ar(e,((e,t)=>{t.props=((e,t)=>(Object.keys(t).forEach((n=>{if(t[n]instanceof Set){let r=e[n]||new Set;e[n]=new Set([...r,...t[n]])}else if((e=>e&&"object"==typeof e&&!Array.isArray(e))(t[n])){let r=e[n]||{};e[n]=Object.assign({},t[n],r)}else Er(t[n])?e[n]=t[n].concat(e[n]||[]):void 0===e[n]&&(e[n]=t[n])})),e))(t.props,e.props)})),this}depth(){Tr(this.json);let e=Ar(this.json),t=e.length>1?1:0;return e.forEach((e=>{if(0===e._cache.parents.length)return;let n=e._cache.parents.length+1;n>t&&(t=n)})),t}out(e){return Tr(this.json),Cr(this.json,e)}debug(){return Tr(this.json),Cr(this.json,"debug"),this}};const Br=function(e){let t=Ir(e);return new Or(t)};Br.prototype.plugin=function(e){e(this)};var zr={Noun:"blue",Verb:"green",Negative:"green",Date:"red",Value:"red",Adjective:"magenta",Preposition:"cyan",Conjunction:"cyan",Determiner:"cyan",Adverb:"cyan"};const Hr=function(e){if(zr.hasOwnProperty(e.id))return zr[e.id];if(zr.hasOwnProperty(e.is))return zr[e.is];let t=e._cache.parents.find((e=>zr[e]));return zr[t]};var Vr=function(e){const t={};return e.forEach((e=>{let{not:n,also:r,is:a,novel:o}=e.props,i=e._cache.parents;r&&(i=i.concat(r)),t[e.id]={is:a,not:n,novel:o,also:r,parents:i,children:e._cache.children,color:Hr(e)}})),Object.keys(t).forEach((e=>{let n=new Set(t[e].not);t[e].not.forEach((e=>{t[e]&&t[e].children.forEach((e=>n.add(e)))})),t[e].not=Array.from(n)})),t};const Fr=function(e){return e?"string"==typeof e?[e]:e:[]};var $r=function(e,t){return e=function(e,t){return Object.keys(e).forEach((n=>{e[n].isA&&(e[n].is=e[n].isA),e[n].notA&&(e[n].not=e[n].notA),e[n].is&&"string"==typeof e[n].is&&(t.hasOwnProperty(e[n].is)||e.hasOwnProperty(e[n].is)||(e[e[n].is]={})),e[n].not&&"string"==typeof e[n].not&&!e.hasOwnProperty(e[n].not)&&(t.hasOwnProperty(e[n].not)||e.hasOwnProperty(e[n].not)||(e[e[n].not]={}))})),e}(e,t),Object.keys(e).forEach((t=>{e[t].children=Fr(e[t].children),e[t].not=Fr(e[t].not)})),Object.keys(e).forEach((t=>{(e[t].not||[]).forEach((n=>{e[n]&&e[n].not&&e[n].not.push(t)}))})),e};var Sr=function(e,t){Object.keys(t).length>0&&(e=function(e){return Object.keys(e).forEach((t=>{e[t]=Object.assign({},e[t]),e[t].novel=!0})),e}(e)),e=$r(e,t);const n=function(e){const t=Object.keys(e).map((t=>{let n=e[t];const r={not:new Set(n.not),also:n.also,is:n.is,novel:n.novel};return{id:t,parent:n.is,props:r,children:[]}}));return Br(t).cache().fillDown().out("array")}(Object.assign({},t,e));return Vr(n)},Jr={one:{setTag:vr,unTag:yr,addTags:Sr}};const Mr=function(e){return"[object Array]"===Object.prototype.toString.call(e)},Lr={tag:function(e,t="",n){if(!this.found||!e)return this;let r=this.termList();if(0===r.length)return this;const{methods:a,verbose:o,world:i}=this;return!0===o&&console.log(" + ",e,t||""),Mr(e)?e.forEach((e=>a.one.setTag(r,e,i,n,t))):a.one.setTag(r,e,i,n,t),this.uncache(),this},tagSafe:function(e,t=""){return this.tag(e,t,!0)},unTag:function(e,t){if(!this.found||!e)return this;let n=this.termList();if(0===n.length)return this;const{methods:r,verbose:a,model:o}=this;!0===a&&console.log(" - ",e,t||"");let i=o.one.tagSet;return Mr(e)?e.forEach((e=>r.one.unTag(n,e,i))):r.one.unTag(n,e,i),this.uncache(),this},canBe:function(e){let t=this.model.one.tagSet;if(!t.hasOwnProperty(e))return this;let n=t[e].not||[],r=[];this.document.forEach(((e,t)=>{e.forEach(((e,a)=>{n.find((t=>e.tags.has(t)))&&r.push([t,a,a+1])}))}));let a=this.update(r);return this.difference(a)}};var Wr=Lr;var Kr=function(e){Object.assign(e.prototype,Wr)};var qr={addTags:function(e){const{model:t,methods:n}=this.world(),r=t.one.tagSet;let a=(0,n.one.addTags)(e,r);return t.one.tagSet=a,this}};const Ur=new Set(["Auxiliary","Possessive"]);var Rr=function(e){const{document:t,world:n}=e,r=n.model.one.tagSet;t.forEach((e=>{e.forEach((e=>{let t=Array.from(e.tags);e.tagRank=function(e,t){return e=e.sort(((e,n)=>{if(Ur.has(e)||!t.hasOwnProperty(n))return 1;if(Ur.has(n)||!t.hasOwnProperty(e))return-1;let r=t[e].children||[],a=r.length;return r=t[n].children||[],a-r.length})),e}(t,r)}))}))},Qr={model:{one:{tagSet:{}}},compute:{tagRank:Rr},methods:Jr,api:Kr,lib:qr};const Zr=/([.!?\u203D\u2E18\u203C\u2047-\u2049]+\s)/g,Xr=/^[.!?\u203D\u2E18\u203C\u2047-\u2049]+\s$/,_r=/((?:\r?\n|\r)+)/;var Yr=function(e){let t=[],n=e.split(_r);for(let e=0;e0&&(a.push(o),e[t]="")}return a};const aa={'"':'"',""":""","“":"”","‟":"”","„":"”","⹂":"”","‚":"’","«":"»","‹":"›","‵":"′","‶":"″","‷":"‴","〝":"〞","〟":"〞"},oa=RegExp("("+Object.keys(aa).join("|")+")","g"),ia=RegExp("("+Object.values(aa).join("|")+")","g"),sa=function(e){if(!e)return!1;let t=e.match(ia);return null!==t&&1===t.length};var la=function(e){let t=[];for(let n=0;n(e[t]=!0,e)),{});var Ea=function(e,t){let n=[],r=[];if("number"==typeof(e=e||"")&&(e=String(e)),function(e){return"[object Array]"===Object.prototype.toString.call(e)}(e))return e;const a=e.split(Pa);for(let e=0;e0?(n[n.length-1]+=o,n.push(t)):n.push(o+t),o=""):o+=t}return o&&(0===n.length&&(n[0]=""),n[n.length-1]+=o),n=ya(n),n=ba(n),n=n.filter((e=>e)),n};let ja=new RegExp(`[${["#","@","_","+","."].join("")}]+$`,""),Ia=new RegExp(`^[${["%","_","°"].join("")}]+`,"");const Na=/[\p{Punctuation}\s]+$/u,Da=/^[\p{Punctuation}\s]+/u,xa=/['’]/,Ca=/^[a-z]\.([a-z]\.)+/i,Ta=/^'[0-9]{2}/,Ga=/^-[0-9]/;var Oa=function(e){let t=e,n="",r="";return e=e.replace(Da,(t=>{let r=t.match(ja);return r?(n=t.replace(ja,""),r):"'"===n&&Ta.test(e)?(n="",t):"-"===t&&Ga.test(e)?t:(n=t,"")})),e=e.replace(Na,(a=>{let o=a.match(Ia);return o?(r=a.replace(Ia,""),o):xa.test(a)&&/[sn]['’]$/.test(t)&&!1===xa.test(n)?(r=r.replace(xa,""),"'"):!0===Ca.test(e)?(r=a.replace(/^\./,""),"."):(r=a,"")})),""===e&&(t=t.replace(/ *$/,(e=>(r=e||"",""))),e=t,n=""),{str:e,pre:n,post:r}};var Ba=function(e,t){const n=t.model.one.unicode||{};let r=(e=e||"").split("");return r.forEach(((e,t)=>{n[e]&&(r[t]=n[e])})),r.join("")};var za=function(e){let t=e=(e=(e=e||"").toLowerCase()).trim();return e=(e=(e=e.replace(/[,;.!?]+$/,"")).replace(/\u2026/g,"...")).replace(/\u2013/g,"-"),!1===/^[:;]/.test(e)&&(e=(e=(e=e.replace(/\.{3,}$/g,"")).replace(/[",.!:;?)]+$/g,"")).replace(/^['"(]+/g,"")),""===(e=(e=e.replace(/[\u200B-\u200D\uFEFF]/g,"")).trim())&&(e=t),e=e.replace(/([0-9]),([0-9])/g,"$1$2")};const Ha=/([A-Z]\.)+[A-Z]?,?$/,Va=/^[A-Z]\.,?$/,Fa=/[A-Z]{2,}('s|,)?$/,$a=/([a-z]\.)+[a-z]\.?$/;var Sa=function(e){return function(e){return!0===Ha.test(e)||!0===$a.test(e)||!0===Va.test(e)||!0===Fa.test(e)}(e)&&(e=e.replace(/\./g,"")),e};var Ja=function(e,t){const n=t.methods.one.killUnicode;let r=e.text||"";r=za(r),r=n(r,t),r=Sa(r),e.normal=r};var Ma=function(e,t){const{methods:n,model:r}=t,{splitSentences:a,splitTerms:o,splitWhitespace:i}=n.one.tokenize;return e=a(e=e||"",t).map((e=>{let n=o(e,r);return n=n.map(i),n.forEach((e=>{Ja(e,t)})),n})),e};const La=/[ .][A-Z]\.? *$/i,Wa=/(?:\u2026|\.{2,}) *$/,Ka=/\p{L}/u,qa=/^[A-Z]\. $/;var Ua={one:{killUnicode:Ba,tokenize:{splitSentences:ma,isSentence:function(e,t){if(!1===Ka.test(e))return!1;if(!0===La.test(e))return!1;if(3===e.length&&qa.test(e))return!1;if(!0===Wa.test(e))return!1;let n=e.replace(/[.!?\u203D\u2E18\u203C\u2047-\u2049] *$/,"").split(" "),r=n[n.length-1].toLowerCase();return!0!==t.hasOwnProperty(r)},splitTerms:Ea,splitWhitespace:e=>{let{str:t,pre:n,post:r}=Oa(e);return{text:t,pre:n,post:r,tags:new Set}},fromString:Ma}}};var Ra={"&":"and","@":"at","%":"percent",plz:"please",bein:"being"};let Qa={},Za={};[[["approx","apt","bc","cyn","eg","esp","est","etc","ex","exp","prob","pron","gal","min","pseud","fig","jd","lat","lng","vol","fm","def","misc","plz","ea","ps","sec","pt","pref","pl","pp","qt","fr","sq","nee","ss","tel","temp","vet","ver","fem","masc","eng","adj","vb","rb","inf","situ","vivo","vitro","wr"]],[["dl","ml","gal","qt","pt","tbl","tsp","tbsp","km","dm","cm","mm","mi","td","hr","hrs","kg","hg","dg","cg","mg","µg","lb","oz","sq ft","hz","mps","mph","kmph","kb","mb","tb","lx","lm","fl oz","yb"],"Unit"],[["ad","al","arc","ba","bl","ca","cca","col","corp","ft","fy","ie","lit","ma","md","pd","tce"],"Noun"],[["adj","adm","adv","asst","atty","bldg","brig","capt","cmdr","comdr","cpl","det","dr","esq","gen","gov","hon","jr","llb","lt","maj","messrs","mlle","mme","mr","mrs","ms","mstr","phd","prof","pvt","rep","reps","res","rev","sen","sens","sfc","sgt","sir","sr","supt","surg"],"Honorific"],[["jan","feb","mar","apr","jun","jul","aug","sep","sept","oct","nov","dec"],"Month"],[["dept","univ","assn","bros","inc","ltd","co"],"Organization"],[["rd","st","dist","mt","ave","blvd","cl","cres","hwy","ariz","cal","calif","colo","conn","fla","fl","ga","ida","ia","kan","kans","minn","neb","nebr","okla","penna","penn","pa","dak","tenn","tex","ut","vt","va","wis","wisc","wy","wyo","usafa","alta","ont","que","sask"],"Place"]].forEach((e=>{e[0].forEach((t=>{Qa[t]=!0,Za[t]="Abbreviation",void 0!==e[1]&&(Za[t]=[Za[t],e[1]])}))}));var Xa=["anti","bi","co","contra","de","extra","infra","inter","intra","macro","micro","mis","mono","multi","peri","pre","pro","proto","pseudo","re","sub","supra","trans","tri","un","out"].reduce(((e,t)=>(e[t]=!0,e)),{});let _a={"!":"¡","?":"¿Ɂ",'"':'“”"❝❞',"'":"‘‛❛❜’","-":"—–",a:"ªÀÁÂÃÄÅàáâãäåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧȺΆΑΔΛάαλАаѦѧӐӑӒӓƛæ",b:"ßþƀƁƂƃƄƅɃΒβϐϦБВЪЬвъьѢѣҌҍ",c:"¢©ÇçĆćĈĉĊċČčƆƇƈȻȼͻͼϲϹϽϾСсєҀҁҪҫ",d:"ÐĎďĐđƉƊȡƋƌ",e:"ÈÉÊËèéêëĒēĔĕĖėĘęĚěƐȄȅȆȇȨȩɆɇΈΕΞΣέεξϵЀЁЕеѐёҼҽҾҿӖӗ",f:"ƑƒϜϝӺӻҒғſ",g:"ĜĝĞğĠġĢģƓǤǥǦǧǴǵ",h:"ĤĥĦħƕǶȞȟΉΗЂЊЋНнђћҢңҤҥҺһӉӊ",I:"ÌÍÎÏ",i:"ìíîïĨĩĪīĬĭĮįİıƖƗȈȉȊȋΊΐΪίιϊІЇії",j:"ĴĵǰȷɈɉϳЈј",k:"ĶķĸƘƙǨǩΚκЌЖКжкќҚқҜҝҞҟҠҡ",l:"ĹĺĻļĽľĿŀŁłƚƪǀǏǐȴȽΙӀӏ",m:"ΜϺϻМмӍӎ",n:"ÑñŃńŅņŇňʼnŊŋƝƞǸǹȠȵΝΠήηϞЍИЙЛПийлпѝҊҋӅӆӢӣӤӥπ",o:"ÒÓÔÕÖØðòóôõöøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱΌΘΟθοσόϕϘϙϬϴОФоѲѳӦӧӨөӪӫ",p:"ƤΡρϷϸϼРрҎҏÞ",q:"Ɋɋ",r:"ŔŕŖŗŘřƦȐȑȒȓɌɍЃГЯгяѓҐґ",s:"ŚśŜŝŞşŠšƧƨȘșȿЅѕ",t:"ŢţŤťŦŧƫƬƭƮȚțȶȾΓΤτϮТт",u:"ÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųƯưƱƲǓǔǕǖǗǘǙǚǛǜȔȕȖȗɄΰυϋύ",v:"νѴѵѶѷ",w:"ŴŵƜωώϖϢϣШЩшщѡѿ",x:"×ΧχϗϰХхҲҳӼӽӾӿ",y:"ÝýÿŶŷŸƳƴȲȳɎɏΎΥΫγψϒϓϔЎУучўѰѱҮүҰұӮӯӰӱӲӳ",z:"ŹźŻżŽžƵƶȤȥɀΖ"},Ya={};Object.keys(_a).forEach((function(e){_a[e].split("").forEach((function(t){Ya[t]=e}))}));const eo=/\//,to=/[a-z]\.[a-z]/i,no=/[0-9]/;var ro=function(e,t){let n=e.normal||e.text||e.machine;const r=t.model.one.aliases;if(r.hasOwnProperty(n)&&(e.alias=e.alias||[],e.alias.push(r[n])),eo.test(n)&&!to.test(n)&&!no.test(n)){let t=n.split(eo);t.length<=2&&t.forEach((t=>{""!==(t=t.trim())&&(e.alias=e.alias||[],e.alias.push(t))}))}return e};const ao=/^\p{Letter}+-\p{Letter}+$/u;var oo=function(e){let t=e.implicit||e.normal||e.text;t=t.replace(/['’]s$/,""),t=t.replace(/s['’]$/,"s"),t=t.replace(/([aeiou][ktrp])in'$/,"$1ing"),ao.test(t)&&(t=t.replace(/-/g,"")),t=t.replace(/^[#@]/,""),t!==e.normal&&(e.machine=t)};var io=function(e){let t=e.docs,n={};for(let e=0;eco(e,ro),machine:e=>co(e,oo),normal:e=>co(e,Ja),freq:io,offset:so,index:lo,wordCount:uo},methods:Ua,model:{one:{aliases:Ra,abbreviations:Qa,prefixes:Xa,suffixes:{like:!0,ish:!0,less:!0,able:!0,elect:!0,type:!0,designate:!0},lexicon:Za,unicode:Ya}},hooks:["alias","machine","index","id"]};var go={typeahead:function(e){const t=e.model.one.typeahead,n=e.docs;if(0===n.length||0===Object.keys(t).length)return;let r=n[n.length-1]||[],a=r[r.length-1];if(!a.post&&t.hasOwnProperty(a.normal)){let n=t[a.normal];a.implicit=n,a.machine=n,a.typeahead=!0,e.compute.preTagger&&e.last().unTag("*").compute(["lexicon","preTagger"])}}};const mo=function(){const e=this.docs;if(0===e.length)return this;let t=e[e.length-1]||[],n=t[t.length-1];return!0===n.typeahead&&n.machine&&(n.text=n.machine,n.normal=n.machine),this};var po=function(e){e.prototype.autoFill=mo};var fo=function(e,t,n){let r={},a=[],o=n.prefixes||{};return e.forEach((e=>{let i=(e=e.toLowerCase().trim()).length;t.max&&i>t.max&&(i=t.max);for(let s=t.min;s{delete r[e]})),r};const bo={safe:!0,min:3};var vo={typeahead:function(e=[],t={}){let n=this.model();var r;t=Object.assign({},bo,t),r=e,"[object Object]"===Object.prototype.toString.call(r)&&(Object.assign(n.one.lexicon,e),e=Object.keys(e));let a=fo(e,t,this.world());return Object.keys(a).forEach((e=>{n.one.typeahead.hasOwnProperty(e)?delete n.one.typeahead[e]:n.one.typeahead[e]=a[e]})),this}};var yo={model:{one:{typeahead:{}}},api:po,lib:vo,compute:go,hooks:["typeahead"]};b.extend(ee),b.extend(Ln),b.extend(ln),b.extend(nr),b.extend(Qr),b.plugin(De),b.extend(ho),b.plugin(k),b.extend(We),b.extend(yo),b.extend(He),b.extend(gr);var wo={addendum:"addenda",corpus:"corpora",criterion:"criteria",curriculum:"curricula",genus:"genera",memorandum:"memoranda",opus:"opera",ovum:"ova",phenomenon:"phenomena",referendum:"referenda",alga:"algae",alumna:"alumnae",antenna:"antennae",formula:"formulae",larva:"larvae",nebula:"nebulae",vertebra:"vertebrae",analysis:"analyses",axis:"axes",diagnosis:"diagnoses",parenthesis:"parentheses",prognosis:"prognoses",synopsis:"synopses",thesis:"theses",neurosis:"neuroses",appendix:"appendices",index:"indices",matrix:"matrices",ox:"oxen",sex:"sexes",alumnus:"alumni",bacillus:"bacilli",cactus:"cacti",fungus:"fungi",hippopotamus:"hippopotami",libretto:"libretti",modulus:"moduli",nucleus:"nuclei",octopus:"octopi",radius:"radii",stimulus:"stimuli",syllabus:"syllabi",cookie:"cookies",calorie:"calories",auntie:"aunties",movie:"movies",pie:"pies",rookie:"rookies",tie:"ties",zombie:"zombies",leaf:"leaves",loaf:"loaves",thief:"thieves",foot:"feet",goose:"geese",tooth:"teeth",beau:"beaux",chateau:"chateaux",tableau:"tableaux",bus:"buses",gas:"gases",circus:"circuses",crisis:"crises",virus:"viruses",database:"databases",excuse:"excuses",abuse:"abuses",avocado:"avocados",barracks:"barracks",child:"children",clothes:"clothes",echo:"echoes",embargo:"embargoes",epoch:"epochs",deer:"deer",halo:"halos",man:"men",woman:"women",mosquito:"mosquitoes",mouse:"mice",person:"people",quiz:"quizzes",rodeo:"rodeos",shoe:"shoes",sombrero:"sombreros",stomach:"stomachs",tornado:"tornados",tuxedo:"tuxedos"},ko={Comparative:"true¦better",Superlative:"true¦earlier",PresentTense:"true¦sounds",Condition:"true¦unless",Conjunction:"true¦aXbTcuz,evenRhowPiHjust00lest,noEoCp8supposing,t5wh0yet;at,e2il1o0;evOse;e,st;nevMre0thM; if,vL;h0o;erefOo0;!uU;lus,rovide0; 1d0;! 0;th9;r0therwiJ;! not; mattBr,w0;! 0;since,th4w7;f4n0; 0asmuch;as mFcaCorder t0;h0o;at;! 0;only,t0w0;hen;!ev0;er;! 0;if,t8;e0ut,y the time;cau1f0;ore;se;lt3nd,s 0;far1if,m0soon1t2;uch0; as;hou0;gh",PastTense:"true¦be2came,d1had,lied,mea0sa1taken,we0;nt;id;en,gan",Gerund:"true¦accord0be0go0result0stain0;ing",Expression:"true¦a0Qb0Mco0Ld0He0Ffuck,g09hUjeez,lRmQnOoLpIshHtGuDvoi0Sw6y0;a4e3i1u0;ck,p;kYp0;ee,pee;ah,p,s;!a,h6y;ah5h2o1t0;af,f;rd up,w;e1o0;a,ops;e,w;oo;gh,h0;! 0h,m;huh,oh;here nLsk,ut tut;eesh,hh,it,oo;ff,h1l0ow,sst;ease,z;ew,ooey;h1i,o0uch,w,y;h,o,ps;!h;ah,o0;!pe;eh,mm;ah,m1ol0;!s;ao,fao;aBeAi8o2u0;h,mph,rra0zzB;h,y;ly1o0;r5y8;! 0;c1moCsmok0;es;ow;!p hip hoor0;ay;ck,e,llo,y;ha1i,lleluj0;ah;!ha;ah,ee4o1r0;eat scott,r;l1od0sh; grief,bye;ly;! whiz;e0h,t cetera,ww;k,p;'oh,a0rat,uh;m0ng;mit,n0;!it;ngratulations,wabunga;a2oo1r0ye;avo,r;!ya;h,m; 1h0las,men,rgh,ye;!a,em,oy;la",Negative:"true¦n0;ever,o0;n,t",QuestionWord:"true¦how3wh0;e1ich,o0y;!m;n,re; come,'s",Reflexive:"true¦h4it5my5o1the0your2;ir1m1;ne3ur0;sel0;f,ves;er0im0;self",Plural:"true¦ones,records","Unit|Noun":"true¦cEfDgChBinchAk9lb,m6newt5oz,p4qt,t1y0;ardEd;able1b0ea1sp;!l,sp;spo1;a,oundAt,x;on9;!b,g,i1l,m,p0;h,s;!les;!b,elvin,g,m;!es;g,z;al,b;eet,oot,t;m,up0;!s",Value:"true¦a few",Imperative:"true¦come here",PhrasalVerb:"true¦0:81;1:7Q;2:8E;3:84;4:7J;5:8H;6:7P;7:7E;8:7C;9:86;A:7Z;B:89;C:87;D:80;E:6L;F:6J;G:6C;a8Lb74c66d61e60f4Yg4Hh3Wiron0j3Sk3Nl34m2Qn2Oo2Mp23quietEr1Os0HtXuVvacuum 1wKyammerAzH;ero Dip IonH;e0k0;by,up;aOeJhIiHor7Writ38;mp0n35pe0r8s8;eel Dip 8Q;aJiHn2T;gh Hrd0;in,up;n Dr H;d2in,oF;it 6Hk8lk Irm 0Zsh Ht7Av5F;aw3d2o5up;aw3in,o85;rgeAsH;e 1herG;aWeUhSiOoNrJuHypM;ckGrn H;d2in,oFup;aIiHot0y 2P;ckleEp 8B;ckEdH;e 0O;neEp 30s4Z;ck JdIe Hghte5Yme0p o0Jre0;aw3ba4d2in,up;e 6Iy 1;by,oC;ink Hrow 6V;ba4ov6up;aHe 6Gll5G;m 1r 53;ckAke Ilk H;ov6shit,u5H;aHba4d2in,oFup;ba4ft6p5Mw3;a0Mc0Le0Fh0Bi08l04m03n02o01pWquar4XtNuLwH;earJiH;ngItch H;aw3ba4o7P; by;ck Hit 1m 1ss0;in,o7Cup;aNe11iMoKrIuH;c37d2P;aigh23iH;ke 6Xn3L;p Hrm25;by,in,oC;n32r 1tc44;c31mp0nd Hr7Gve9y 1;ba4d2up;ar2ZeKiJlIrHurA;ingAuc8;a3Rit 5S;l18n 1;e6All0;ber 1rt0und like;ap 56ow D;ash 5Xoke0;eep IiHow 7;c1Mp 1;in,oH;ff,v6;de13gn IngHt 5Sz8; al5Nle0;in,o5up;aJoHu5B;ot Hut0w 6V;aw3ba4f3SoC;c2HdeGk5Qve9;e Lll1Hnd Krv8tH; Htl4W;d2f5Cin,o5upH;!on;aw3ba4d2in,o2Nup;o6Eto;al5Jout0rap5J;il9v8;aUeRiQoMuH;b 5Cle0n Hstl8;aJba4d2inIoHt3Lu0Y;ut,v6;!to;c2HrBw3;ll Jot IuH;g33nd9;a2Hf3Ao5;arBin,o5;ng 5Jp9;aHel9inGnt0;c5Sd H;o3Bup;c1Ut0;aVeUiSlQoOrLsyc2RuH;ll Jt H;aHba4d2in,oFt3Rup;p3Ww3;ap3Vd2in,o5t3Pup;attleAess IiKoH;p 1;ah1Zon;iHp 5Xr4DurEwer 5X;nt0;ay4TuH;gGmp 7;ck Hg0leAn 7p4Q;oFup;el 50ncilG;c4Iir 2Xn0ss JtIy H;ba4oC; d2c2E;aw3ba4in,oF;pHw4D;e4Ct D;arrowEerd0oH;d9teE;aReOiNoJuH;ddl8lH;l 3X;c13nkeyJp 7uth9ve H;aHd2in,o5up;l42w3; wi3Z;ss0x 1;asur8lIss H;a1Oup;t 7;ke In 7rHs1Xx0;k 7ry9;do,o4Wup;aXeSiNoHuck0;aLc3Vg KoHse0;k Hse3T;aft6ba4d2forw2Sin4Jov6uH;nd6p;in,oF;d 7;e 05ghtKnJsIvH;e 3F;ten 4Z;e 1k 1; 1e3K;ave Jt IvelH; o4I;d2go,in,o5up;in,oH;pen,ut;c8p 1sh HtchAugh9y26;in44o5;eIick9nock H;d2o4Bup;eHyG;l 2Zp H;aw3ba4d2fZin,oFto,up;aJoIuH;ic8mpG;ke3CtE;c3Lzz 1;aWeRiOoLuH;nIrrHsh 7;y 1;kerEt H;arBd2;lHneGrse35;d He 1;ba4d2fast,o04up;de It H;ba4on,up;aw3o5;aHlp0;d Jl 2Hr Ht 1;fHof;rom;in,oWu1K;cKm 1nIve Hz2C;it,to;d Hg 2NkerK;d2in,o5;k 1;aUeOive Nloss 28oJrIunH; f0O;in3Oow 2I; Hof 27;aIb1Fit,oHrBt0Qu1A;ff,n,v6;bo5ft6hMw3;aw3ba4d2in,oFrise,up,w3;ar 7ek0t H;aIb1Ad2in,oHrBup;ff,n,ut,v6;cIhHl25rBt,w3;ead;ross;d aInH;g 1;bo5;a0Be04iVlRoNrJuH;ck He2A;arBup;eIighten HownAy 1;aw3oC;eHshe1W; 1z8;lJol H;aHwi1P;bo5rB;d 7low 1;aIeHip0;sh0;g 7ke0mHrHttenE;e 30;gOlMnKrIsHzzle0;h 2Y;e Hm 1;aw3ba4up;d0isH;h 1;e Hl 1I;aw3fMin,o5;ht ba4ure0;eMnIsH;s 1;cJd H;fHoC;or;e D;dZl 1;cLll Hrm0t15;ap08bJd2in,oItH;hrough;ff,ut,v6;a4ehi29;e H;d2oCup;a0Ndge0nd 0Ry8;oKrH;aIess 7op H;aw3bXin,o1W;gAwA; 0Kubl10;a01hYleaXoKrHut 18;ackAeep Hoss D;by,d2in,oHup;n,ut;me KoIuntH; o1Y;k 7l H;d2oC;aNbMforKin,oJtIuH;nd6;ogeth6;n,ut,v6;th,wH;ard;a4y;pHrBw3;art;n 7;eHipG;ck Der H;on,up;lPncel0rLsJtch IveG; in;o1Gup;h Dt H;doubt,oC;ry IvH;e 04;aw3oF;ff,n,ut;l ImE; d2;aHba4d2o17up;rBw3;a0Ne0Fl08oZrMuH;bblJckl00il06lk 7ndl00rHst WtIy 17zz9;n 0BsH;t D;e H;ov6;anSeaQiIush H;oCup;ghMng H;aJba4d2fHin,o5up;orH;th;bo5lHrBw3;ong;teH;n 1;k H;d2in,o5up;ch0;arOg 7iMn8oKssJttlIunce Hx D;aw3ba4;e 7; arB;k Dt 1;e 1;l 7;d2up;d 1;aMeed0oHurt0;cJw H;aw3ba4d2o5up;ck;k H;in,oY;ck0nk0st9; oMaKef 1nd H;d2ov6up;er;up;r0t H;d2in,oRup;ff,nH;to;ck Nil0nJrgIsH;h D;ainAe D;g DkA; on;in,o5; o5;aw3d2oHup;ff,ut;ay;cQdMsk Juction9; oC;ff;arBo5;ouH;nd;d H;d2oHup;ff,n;own;t H;o5up;ut",Verb:"true¦born,cannot,gonna,has,keep tabs,m0;ake sure,sg",Demonym:"true¦0:15;1:12;a0Vb0Oc0Dd0Ce08f07g04h02iYjVkTlPmLnIomHpEqatari,rCs7t5u4v3welAz2;am0Gimbabwe0;enezuel0ietnam0I;gAkrai1;aiwTex0hai,rinida0Ju2;ni0Prkmen;a5cotti4e3ingapoOlovak,oma0Spaniard,udRw2y0W;ede,iss;negal0Cr09;sh;mo0uT;o5us0Jw2;and0;a2eru0Fhilippi0Nortugu07uerto r0S;kist3lesti1na2raguay0;ma1;ani;ami00i2orweP;caragu0geri2;an,en;a3ex0Lo2;ngo0Drocc0;cedo1la2;gasy,y07;a4eb9i2;b2thua1;e0Cy0;o,t01;azakh,eny0o2uwaiI;re0;a2orda1;ma0Ap2;anO;celandic,nd4r2sraeli,ta01vo05;a2iB;ni0qi;i0oneU;aiAin2ondur0unO;di;amEe2hanai0reek,uatemal0;or2rm0;gi0;ilipino,ren8;cuadoVgyp4mira3ngli2sto1thiopi0urope0;shm0;ti;ti0;aPominUut3;a9h6o4roat3ub0ze2;ch;!i0;lom2ngol5;bi0;a6i2;le0n2;ese;lifor1m2na3;bo2eroo1;di0;angladeshi,el6o4r3ul2;gaE;azi9it;li2s1;vi0;aru2gi0;si0;fAl7merBngol0r5si0us2;sie,tr2;a2i0;li0;genti2me1;ne;ba1ge2;ri0;ni0;gh0r2;ic0;an",Organization:"true¦0:4D;a3Gb2Yc2Ed26e22f1Xg1Ph1Ki1Hj1Fk1Dl18m0Wn0Jo0Gp09qu08r01sTtGuBv8w3xiaomi,y1;amaha,m13ou1w13;gov,tu2Z;a3e1orld trade organizati2S;lls fargo,st1;fie28inghou2I;l1rner br3I;gree37l street journ29m17;an halOeriz2Nisa,o1;dafo2Ol1;kswagMvo;b4kip,n2ps,s1;a tod2Yps;es3Ai1;lev33ted natio30;er,s; mobi2Qaco beQd bNeAgi frida9h3im horto2Ymz,o1witt31;shi3Xy1;ota,s r 00;e 1in lizzy;b3carpen37daily ma31guess w2holli0rolling st1Rs1w2;mashing pumpki2Tuprem0;ho;ea1lack eyed pe3Lyrds;ch bo1tl0;ys;l2n3Ds1xas instrumen1J;co,la m15;efoni0Cus;a7e4ieme2Lnp,o2pice gir5quare04ta1ubaru;rbucks,to2R;ny,undgard1;en;a2x pisto1;ls;g1Nrs;few2Ainsbury2QlesforYmsu22;.e.m.,adiohead,b6e3oyal 1yana30;b1dutch she4;ank;aders dige1Gd 1max,vl1R;bu1c1Zhot chili peppe2Nlobst2C;ll;c,s;ant30izno2I;a5bs,e3fiz28hilip morrCi2r1;emier2Audenti16;nk floyd,zza hut;psi2Btro1uge0A;br2Vchina,n2V;lant2Nn1yp12; 2ason20da2I;ld navy,pec,range juli2xf1;am;us;aAb9e6fl,h5i4o1sa,vid3wa;k2tre dame,vart1;is;ia;ke,ntendo,ss0L;l,s;c,st1Htflix,w1; 1sweek;kids on the block,york09;a,c;nd1Vs2t1;ional aca2Io,we0Q;a,cYd0O;aBcdonaldAe7i5lb,o3tv,y1;spa1;ce;b1Mnsanto,ody blu0t1;ley crue,or0O;crosoft,t1;as,subisM;dica2rcedes benz,talli1;ca;id,re;'s,s;c's milk,tt14z1Z;'ore08a3e1g,ittle caesa1K;novo,x1;is,mark; 1bour party;pres0Bz boy;atv,fc,kk,m1od1J;art;iffy lu0Moy divisi0Gpmorgan1sa;! cha07;bm,hop,n1tv;g,te1;l,rpol;asbro,ewlett pack1Ri3o1sbc,yundai;me dep1n1L;ot;tac1zbollah;hi;eneral 6hq,ithub,l5mb,o2reen d0Lu1;cci,ns n ros0;ldman sachs,o1;dye1g0E;ar;axo smith kli03encoV;electr0Km1;oto0W;a4bi,da,edex,i2leetwood mac,o1rito l0D;rd,xcX;at,nancial1restoY; tim0;cebook,nnie mae;b08sa,u3xxon1; m1m1;ob0H;!rosceptics;aiml0Be6isney,o4u1;nkin donu2po0Xran dur1;an;ts;j,w j1;on0;a,f lepp0Zll,peche mode,r spiegZstiny's chi1;ld;aIbc,hEiCloudflaBnn,o3r1;aigsli5eedence clearwater reviv1ossra06;al;ca c7inba6l4m1o0Bst06;ca2p1;aq;st;dplPg1;ate;se;ola;re;a,sco1tigroup;! systems;ev2i1;ck fil-a,na daily;r1y;on;dbury,pital o1rl's jr;ne;aEbc,eBf9l5mw,ni,o1p,rexiteeU;ei3mbardiIston 1;glo1pizza;be;ng;o2ue c1;roV;ckbuster video,omingda1;le; g1g1;oodriL;cht2e ge0rkshire hathaw1;ay;el;idu,nana republ3s1xt5y5;f,kin robbi1;ns;ic;bYcTdidSerosmith,iRlKmEnheuser-busDol,pple9r6s3utodesk,v2y1;er;is,on;hland1sociated F; o1;il;by4g2m1;co;os; compu2bee1;'s;te1;rs;ch;c,d,erican3t1;!r1;ak; ex1;pre1;ss; 5catel2ta1;ir;!-lu1;ce1;nt;jazeera,qae1;da;g,rbnb;as;/dc,a3er,tivision1;! blizz1;ard;demy of scienc0;es;ba",Possessive:"true¦any2its,my,no4o0somet3their1yo0;ur0;!s;o1t0;hing;ne","Noun|Verb":"true¦0:7R;1:6J;2:7N;3:7Y;4:7X;5:81;6:6W;7:7H;a7Hb6Sc5Rd55e4Xf4Ag40h3Si3Mj3Lk3Jl39m30n2Wo2Sp1Zques7Jr1Bs05tRuPvKwAy9z8;ip,o6A;awn,e1Uie4P;aFeaEhCiAo8re7J;nd0r8;k,ry;mp,n8pe,re,sh,tne81;!d,g;e6Ei8;p,st6;r,th0;it,r8s4t2ve,x;ehou1ra80;aBiAo8;i8lunte0te,w;ce,d;be,ew,s6V;cuum,l36;p8sh0;da4gra4Wlo4T;aJeIhrHiGoFrBu9wi8y4J;n,st;n8rn;e,n5Z;aAe9i8u7;bu4ck,gg0m,p;at,nd;ck,de,in,nsf0p,v5V;ll,ne,r3Oss,t73u2;ck,e,me,p,re;e4Iow,u7;ar,e,st;g,l8rg5Zs4x;k,ly;a0Cc07e04hZiXkVlTmSnRou69pNtDu9w8;ea6Dit2;b1Vit,m,pp9r8spe5;ge,pri1vey;l8o58;e55y;aFeEiDoBr9u8y6;dy,ff,mb6;a69e8i4C;am,ss,t2;cking,p,r8;e,m;ck,t2;m,p;ck,in,ke,ll,mp,nd,r8te,y;!e,t;aAeed,i9la4Hons6Jr8y;ay,e3Xink6u3;n,r6Fte;n,rk;ee1Cow;e0Di6o3Z;eep,i8;ce,p,t;ateboa5Wi8;!p;de,gn8ze;!al;aBeAi9o8;ck,p,w;ft,p,v0;d,i2Y;pe,re;a9ed,n8rv13t;se,t1U;l,r2t;aBhedu6oAr8;at2e8;en,w;re,ut;le,n,r0G;crifi3il;aTeCiBoAu8;b,in,le,n,s8;h,t;a7ck,ll,ot;de,ng,p,s19;as5BcMdo,el,fKgJje5lImGnFo0SpDque7sAturn,v8wa59;e8i1F;al,r1;er5Go9t,u8;lt,me;l5Ert;air,ea8ly,o3V;l,t;dezvo22t;a8edy;ke,rk;ea1i3B;a4Xist0r4A;act5Borm,u8;nd,se;a8o4Uru4N;ll;ck,i1ke,l44n8tS;ge,k;aXeUhSiPlLoHr9u8;mp,n2rcha1sh;ai1eDiCo8u3H;be,ceAdu3gr8je5mi1te7;am8e5B;!me;ed,ss;ce,de;s8y;er4Rs;iAl8ol,p,re,s2Ow0;i8l;ce,sh;nt,s4F;a9e26u8;g,n3S;ce,n8y;!t;ck,l9n8pe,t,vot;!e;e,ot;a1o8;ne,tograph;ak,e9n,r8t;fu3Sm3V;!l;cka3Hi9n,rt8ss,t2u1;!y;nt,r;bAff0il,o9r8utli2Q;d0ie4Q;ze;je5;a3JeAo8;d,t8;e,i3;ed,gle5rd,t;aDeBiAo9u8;rd0;d2Rnit42p,ve;lk,n2Vrr41ss,x;asu0Yn3Mr8ss;ge,it;il,n9p,rk2Ws8t2;h,k;da4oeuv0U;aEeBiAo8ump;a8bby,ck,g,ok,ve;d,n;cen1ft,m36nCst;a9c0Av8;el,y;ch,d,p,se;b9c8nd,t2un2;e,k;el,o22;e2Ai8no3A;ck,ll,ss;am,o14ui3;mpCn9r35ss8;ue;cr17dex,flu9ha6k,se1Ttervi8voi3;ew;en3;a5le1O;aCeAi9o8u3R;ld,no1Rok,pe,r1st,u1;ghlight,ke,re,t;a8lp;d,t;nd9r8te;bo2Zm,ne3Gve7;!le;aGeek,lo3EoFrAu8;ar8e3Di0Ln;antee,d;aAi9o8umb6;om,u2A;nd,p;d8sp;e,ua4;of,ssip;in,me,ng,s,te,ze;aTePiKlHoErAu8;el,n8zz;c2Ed;a9o8y;st,wn;c8me;tuM;c9g,ol,r8;ce,e1Mm;us;a9e0Iip,o8y;at,od,w;g,re,sh,vo0Y;eBgAl9n8re,sh,t,x;an3i0E;e,m,t0;ht,uC;ld;a9e8n3;d,l;r,tu8;re;ce,il,ll,rm,vo21;cho,nEsCx8ye;cAerci1hib1Kp8tra5;eri8o0I;en3me2J;el,han15;ca8tima4;pe;count0d,gine0vy;aReLiFoDr9u8ye;b,mp,pli24;aAe9i8;ft,nk,ve;am,ss;ft,in;cu04d0Vubt,wnlo8;ad;p,sAv8;e,i8or3;de;char0Qli9p8;at2lay,u4;ke;al,ba4cBfeAl9ma0Vpos0Zsi8tail;gn,re;ay,ega4;at,ct;liVr8;ea1;ma0Hn3r8te;e,t;a05ent04hXlUoErAu8;be,r8t;e,l;aft,eAo9u8y;sh;p,ss,wd;d0Lep;de,in,lLmFnAok,py,re,st,u8v0;gh,n8p6;sTt;ceAdu5glomeBstru5t8veG;a5r8;a7ol;nt8rn;ra4;biCfoBmAp8;le8ou07romi1;me1B;a05e1Au4;rt;ne;lap1o8;r,ur;a9i8;ck,p;im,w;a9e8ip;at,ck,er;iBllenNmpi08n9r8uffe0E;ge,m,t;ge,n8;el;n,r;er,re;ke,ll,mp,p,r9sh,t2u1ve;se;d,e;aSePiOlLoHrBu8ypa0M;bb6ck6dg9ff0l8rn,st,zz;ly;et;anCeaBi9oad8;ca7;be,d8;ge;ch,k;ch,d;aAmb,ne,o9ss,tt6x,ycott;le;k,st,t;rd,st;a9e8itz,oN;nd;me;as,d,ke,te;a9nef8t;it;r,t;il,lan3nArga9s8;e,h;in;!d,g,k;cZdRffilQge,iPlt0nMppJrFssDttBuc9wa8;rd;ti8;on;a8empt;ck;i7ocK;st;ch9mo8;ur;!i8;ve;e9roa2;ch;al;ch8sw0;or;er;d,m,r;ia4;dCv8;an3o8;ca4;te;ce;i5re8;ss;ct;c8he,t;eAo8;rd,u8;nt;nt,ss",Actor:"true¦aJbGcFdCfAgardenIh9instructPjournalLlawyIm8nurse,opeOp5r3s1t0;echnCherapK;ailNcientJoldiGu0;pervKrgeon;e0oofE;ceptionGsearC;hotographClumbColi1r0sychologF;actitionBogrammB;cem6t5;echanic,inist9us4;airdress8ousekeep8;arm7ire0;fight6m2;eputy,iet0;ici0;an;arpent2lerk;ricklay1ut0;ch0;er;ccoun6d2ge7r0ssis6ttenda7;chitect,t0;ist;minist1v0;is1;rat0;or;ta0;nt","Honorific|Noun":"true¦aRbNcGdFexcellency,field marEjudge,king,lCm9officOp5queen,r2s0taoiseach,vice4;e0ultJ;cretary,rgeaB;abbi,e0;ar0verend; adN;astGr0;eside6i0ofessF;me ministGnce0;!ss;a1is0;sus,tD;gistrate,r2yA;ady,ieutena0ord;nt;shE;oct6utcheA;aptain,hance4o0;lonel,mmand6n0rporBunci3;gress0stable;m0wom0;an;ll0;or;aron1rigadi0;er;!e0;ss;d0yatullah;mir0;al",Pronoun:"true¦'em,elle,h3i2me,she4th0us,we,you;e0ou;m,y;!l,t;e0im;!'s",Singular:"true¦0:4I;1:59;2:58;3:4V;4:4T;5:4O;6:4S;7:52;8:4J;a4Sb47c3Ad2Xe2Qf2Gg25h1Tin1Qjel3k1Ol1Km1An17o13p0Mqu0Lr0CsTtJuGvCw9;a9ha3Com2C;f0i4Wt0Dy9;! arou4F;arn4GeAo9;cabula41l53;gKr9;di6t1K;nc35p2SrAs 9;do3Ss56;bani2in1; rex,aHeGhi8iEoDrBuAv9;! show;m2Jn5rntIto15;agedy,ib9o45;e,u2P;p5rq3E;c,de,er,m9;etD;am,mp3A;ct5le4x return;aQcOeNhMi2kKoJtEuBy9;ll9n28st4Q;ab2Q;bAnri1Bper bowl,r9;f0roga2;st3Etot1;aCepBipe3Ro1CrAudent9;! lo1L;ang0i8;fa1Gmo1G;ff0t31;loi42meo17;elet14i9;er,ll,rm3M;ack,or49;ab0Vcurity gu2E;e4ho9;l30ol;la33ndwi0J;av0XeChetor5iAo9;de4om;te,v9;erb0O;bCcBf9publ5r0Pspi2;er9orm0;e4r1;it1ord label;a2u42;estion mark,ot29;aMeKhJiHlFort1rAu9yram1D;ddi8ppy,rpo0K;eCie3Io9;bl3Vs9;pe6t9;a2itu2;diction,mi0Froga7ss relea0F;a9ebisci2;q28te,y0;cn5e9g;!r;armaci39otocoH;dest1ncil,r9t1;cen3Hsp3I;nAr2Ste9;!nt;el2Sop3;bj3EcApia2rde1thers,ve9wn0;n,rview;cu9e0G;pi0;aAit25ot9umb0;a26hi8;n2Arra7;aFeEiDoAu9é0H;m0Tr1;mAnopo3pRrni8sq1Qt9u14;h0i36;!my;li0Xn0A;d5nu,t1;mm1nAte9yf3;ri1;!d11;aurea2iBu9;ddi2n9;ch;ght bulb,p0C;ey9ittL;!no2;cAdices,itia7se6te4vert9;eb1L;en7ide4;aJeaFighDo9uman right,ygie10;le,meAsp1Jtb9;ed;! r9;un; scho12ri9;se;dAv9;en; start,pho9;ne;m,ndful,ze;aHeFirl1KlaQoErAu9;l3y;an9enadi0id;a16d9; slam,fa9mo9;th0;d,lf0;lat0Dntlem9;an;df3r9;l5n1D;aHeGiElDol3rAun9;er1;ee market,iAon9;ti0;e16ga2;ame,ow0u2;nan9ref3;ci0;lla,t14;br5mi3n0Uth0;conoEffDgg,lecto0MnCs1Xth5venBxAyel9;id;ampTempl0Ite4;i8t;er1K;e6i1J;my;adKeGiDoAr9u0P;agonf3i0;cAg1Fi3or,ssi0wn9;si0M;to0BumenB;ale6gniAnn0s9vide0O;conte4incen7tri6;ta0A;aBc1fAni1te9;c7rre4;ault 05err1;th;!dy;aXeVhOiNlLoDr9;edit cBit5uc9;ib9;le;ard;efficFke,lDmmuniqNnBpi0rr1t11u9yo2;ri0s9;in;ne6s9;ervatoVuI;ic,lQum9;ni0L;ie4;er9ie4;gy,ic;ty,vil wL;aDeqCocoBr9;istmas car9ysanthemum;ol;la2;ue;ndeli0racter9;ist5;ili8llDr9;e1tifica2;hi0naFpErCshi0t9ucus;erpi9hedr1;ll9;ar;bohyd9ri0;ra2;it1;ry;aPeOiMlemLoHrDu9;ddhiYnBr9tterf3;glar9i1;!y;ny;eakBiAo9;!th0;de;faRthroC;dy,g,roBwl,y9;!frie9;nd;ugh;ish;cyc9oH;liK;an,l3;nki8r9;!ri0;er;ng;cTdNllLnIppeti2rray,sFtBu9;nt,to9;psy;hAt5;ic;ie9le2;st;ce4pe6;ct;nt;ecAoma3tiA;ly;do2;er9y;gy; hominDjAvan9;tage;ec7;ti9;ve;em;cru1eAqui9;tt1;ta2;te;al",Preposition:"true¦-,aMbJcIdHexcept,fFinEmid,notwithstandiSoCpTqua,sBt7u4v2w0;/o,hereOith0;! whEin,oS;ersus,i0;a,s-a-vis;n1p0;!on;like,til;h0ill,owards;an,r0;ough0u;!oJ;ans,ince,o that,uch D;f0n1ut;!f;!to;or,r0;om;espite,own,u3;hez,irca;ar1e0oAy;sides,tween;ri6;bo7cross,ft6lo5m3propos,round,s1t0;!op;! long 0;as;id0ong0;!st;ng;er;ut",SportsTeam:"true¦0:1A;1:1H;2:1G;a1Eb16c0Td0Kfc dallas,g0Ihouston 0Hindiana0Gjacksonville jagua0k0El0Bm01newToQpJqueens parkIreal salt lake,sAt5utah jazz,vancouver whitecaps,w3yW;ashington 3est ham0Rh10;natio1Oredski2wizar0W;ampa bay 6e5o3;ronto 3ttenham hotspur;blue ja0Mrapto0;nnessee tita2xasC;buccanee0ra0K;a7eattle 5heffield0Kporting kansas0Wt3;. louis 3oke0V;c1Frams;marine0s3;eah15ounG;cramento Rn 3;antonio spu0diego 3francisco gJjose earthquak1;char08paA; ran07;a8h5ittsburgh 4ortland t3;imbe0rail blaze0;pirat1steele0;il3oenix su2;adelphia 3li1;eagl1philNunE;dr1;akland 3klahoma city thunder,rlando magic;athle0Mrai3;de0; 3castle01;england 7orleans 6york 3;city fc,g4je0FknXme0Fred bul0Yy3;anke1;ian0D;pelica2sain0C;patrio0Brevolut3;ion;anchester Be9i3ontreal impact;ami 7lwaukee b6nnesota 3;t4u0Fvi3;kings;imberwolv1wi2;rewe0uc0K;dolphi2heat,marli2;mphis grizz3ts;li1;cXu08;a4eicesterVos angeles 3;clippe0dodDla9; galaxy,ke0;ansas city 3nE;chiefs,roya0E; pace0polis colU;astr06dynamo,rockeTtexa2;olden state warrio0reen bay pac3;ke0;.c.Aallas 7e3i05od5;nver 5troit 3;lio2pisto2ti3;ge0;broncZnuggeM;cowbo4maver3;ic00;ys; uQ;arCelKh8incinnati 6leveland 5ol3;orado r3umbus crew sc;api5ocki1;brow2cavalie0india2;bengaWre3;ds;arlotte horAicago 3;b4cubs,fire,wh3;iteB;ea0ulR;diff3olina panthe0; c3;ity;altimore 9lackburn rove0oston 5rooklyn 3uffalo bilN;ne3;ts;cel4red3; sox;tics;rs;oriol1rave2;rizona Ast8tlanta 3;brav1falco2h4u3;nited;aw9;ns;es;on villa,r3;os;c5di3;amondbac3;ks;ardi3;na3;ls",Uncountable:"true¦0:2T;1:20;a2Gb27c1Xd1Oe1Gf1Ag13h0Wi0Pj0Ok0Nl0Im08n06o05pZrUsIt8v6w2;a4i3oo2;d,l;ldlife,ne;rm7t25;ernacul1Ui2;neg1Tol0Otae;eAh8oothpas1Nr3un2yranny;a,gst1V;aff29ea18o3ue nor2;th;oZu2;ble2se1Ft;!shoot1X;er2und1V;e,mod2B;a,nnis;aBcene0IeAh9il8ki7o6p5t3u2weepstak1;g1Hnshi11;ati01e2;am,el;ace23eci1;ap,cc1N;n,ttl1;k,v1L;eep,ingl1;na14ri1;d0Nfe1Vl2nd,t0B;m1Kt;a5e3ic2;e,ke0V;c2laxa0Ssearch;ogni0Rrea0R;bi1in;aVe6hys0last1Ko4re2;amble,mis1s2ten1K;en1Jsu0C;l2rk;it0yB;a1Otr06;bstetr0vercrowd16xyg0Z;a2ews;il polWtional securi1G;a9e7o4u2;m2s1A;ps;n2o19;ey,o2;gamy;a2chan0rchandi16tallurgy;sl1t;chine2themat0; learn0Ury;aught0Se5i4ogi3u2;ck,g0W;c,st0;ce,ghtn0Qngui19teraRv0P;ath0OisuRss;ara08indergart0Hnowled0T;azz,ewelC;ce,gnor7mp4n2;formaYter2;net,sta04;a2ort4;ti2;en0Y;an0X;a5eHisto4o2;ckey,mework,ne2rserad6spitali0Q;s0Py;ry;ir,libXppiFs2;h2te;ish;ene5l4o3r2um,ymna0R;aCeed;lf,re;utYyce0C; 2t0;edit03po2;ol;aLicElour,o4urni2;tu2;re;od,rgive2uriXwl;ne2;ss;conom0duca8lectr7n5quip6th0very3xper2;ti03;body,o2thT;ne;joy2tertain2;ment;ici01on0;tiQ;e8i5o3raugh2ynasZ;ts;pe,wnstai2;rs;abet1s2;honTrepu2;te;b2miP;ut;aAelci9h6iv0l4o2urrency;al,ld w2nfusiFral,ttFusco8;ar;ass0oth1;es;aos,e3ick2;en;eGw7;us;d,rI;a7eef,i5lood,read,u2;nt3tt2;er;ing;lliarDs2;on;g2ss;ga2;ge;cDdviCeroAir9m5ni4ppeal court,rithmet3spi2thlet0;rin;ic;se;en4n2;es2;ty;ds;craft;b0d2naut0;ynam0;ce;id,ou2;st0;ics","Person|Noun":"true¦a04bYcVdOeMfLgJhGjCkitXlBm9olive,p6r3s2triniXv0wang;an,enus,iol0;a,et;ky,on5umm00;ay,e1o0uby;bin,d,se;ed,x;atNe0ol;aFn0;ny;a0eloQ;x,ya;a8eo,iD;a2e1o0;lDy;an,w3;de,smi4y;a0iKol8;ll,z0;el;ail,e0;ne;aith,ern,lo;a0dDmir,ula,ve;rl;a4e3i1ol0;ly;ck,x0;ie;an,ja;i0wn;sy;h0liff,rystal;ari0in,ristian;ty;ak4e3i2r0;an0ook;dy;ll;nedict,rg;er;l0rt;fredo,ma","Noun|Gerund":"true¦0:25;1:24;2:1V;3:1H;4:1X;5:1N;a24b1Nc1Bd16en14f0Yg0Wh0Ti0Rjog1Zk0Pl0Lm0In0Go0Cp05ques08rWsGtBunderAvolunt15w6yDzo2;a8ed5i3or7r6;ap1Nest1Bi1;ki0r1N;i1r2s1Ttc1T;st1Mta4;al4e9hin4i8ra6y1J;c4di0i2v6;el15;mi0p1G;a1Xs1;ai12cIeHhFin1OkatDlZmo4nowCpeBt9u7w6;ea3im1T;f02r6;fi0vi0J;a1Kretc1Iu6;d1AfJ;l0Wn5;b7i0;eb6i0;oar5;ip14o6;rte2u1;a1r0At1;h7o3re6;a1Ge2;edu0Noo0N;aDe9i5o7u6;li0n2;o6wi0;fi0;a8c7hear1Cnde3por1struct6;r1Au3;or5yc0G;di0so2;p0Qti0;aBeacekAla9o7r6ublis0X;a0Peten5in1oces16;iso2si6;tio2;n2yi0;ee0K;cka0Tin1rt0K;f8pe7rgani6vula1;si0zi0;ni0ra1;fe3;e6ur0W;gotia1twor4;a7e6i2onito3;e1ssa0L;nufactu3rke1;a8ea7i6od0Jyi0;cen0Qf1s1;r2si0;n5ug0E;i6n0J;c4lS;ci0magi2n6ro2;nova1terac1;andPea1i7o6un1;l5wO;ki0ri0;athe3rie6ui5;vi0;ar0CenHi8l7or6ros1un5;ecas1mat1;ir1oo5;l7n6;anDdi0;i0li0;di0gin6;ee3;a8eba1irec1oub1r6umO;awi0es05i6;n4vi0;n6ti0;ci0;aFelebra1hDlBo8r6ur7;aw6os00;li0;a7di0lo3mplai2n6o4pi0ve3;duc1sul1;cMti0;apDea3imIo6ubI;ni0tK;a6ee3;n1t1;m9s1te3;ri0;aJeGitElDoBr9u6;il5ll7r6;pi0;yi0;an5;di0;a1m6o4;bi0;esHoa1;c6i0;hi0;gin2lon6t1;gi0;ni0;bys7c4ki0;ki0;it1;c9dverti8gi0rg7ssu6;mi0;ui0;si0;coun1ti0;ti0;ng",Unit:"true¦a09b06cZdYexXfTgRhePin00joule0DkMlJmDnan0AoCp9quart0Dsq ft,t7volts,w6y2ze3°1µ0;g,s;c,f,n;dXear1o0;ttT; 0s 0;old;att06b;erPon0;!ne04;ascals,e1i0;cZnt02;rcent,tL;hms,uI;/s,e4i0m²,²,³;/h,cro2l0;e0liM;!²;grNsT;gEtL;it1u0;menSx;erRreR;b5elvins,ilo1m0notQ;/h,ph,²;!byIgrGmEs;ct0rtzN;aLogrE;allonLb0ig5rD;ps;a2emtGl0t6; oz,uid ou0;nceH;hrenheit,radG;aby9;eci3m1;aratDe1m0oulombD;²,³;lsius,nti0;gr2lit1m0;et0;er8;am7;b1y0;te5;l,ps;c2tt0;os0;econd1;re0;!s","Adj|Noun":"true¦0:0T;a0Sb0Nc0Dde0Ce07f01g00homel09iYjuXlWmQnPoOpMrJsBt7u4va2w1;atershed,elcome;gabo4nilla,ria1;b0Ent;ndergr1pstairs;adua0Kou1;nd;a3e1oken,ri0;en,r1;min0ror0C;boo,n;e6ist00o4qua3ta2u1well;bordina0Dper6;b04ndard;re,t;cial06l1;e,ve0H;cret,n1ri0;ior;e1outiJubbish;ar,laVnt0p1;resentaUublican;atie0Beriodic0otenti0r1;emiOincip0;ffiYpposi01v0;agging,ovel;aRe4in3o1;biQdernUr1;al,t0;iature,or;di1tr04;an,um;attFiber0;stice,veniK;de0mpressionNn1;cumbeYdividu0noXstaY;enious,old;a4e2i1luid;ne;llow,m1;aDinH;t,vo1;riJuriJ;l3pRx1;c1ecu7pM;ess;d1iF;er;mographMriva3;hiDlassLo1rude;m4n2opera1;tive;cre9stitueHtemporary,vertab1;le;m2p1;anion,lex;er2un1;ist;ci0;lank,o4r1;i2u1;te;ef;ttom,urgeois;cadem6d3l2nim0rab;al;ert;oles1ult;ce1;nt;ic",ProperNoun:"true¦barbie,c4diego,e3f2kirby,m0nis,riel;ercedes,i0;ckey,ssy;inn,ranco;lmo,uro;atalina,hristi",Ordinal:"true¦eBf7nin5s3t0zeroE;enDhir1we0;lfCn7;d,t3;e0ixt8;cond,vent7;et0th;e6ie7;i2o0;r0urt3;tie4;ft1rst;ight0lev1;e0h,ie1;en0;th",Cardinal:"true¦bEeBf5mEnine7one,s4t0zero;en,h2rDw0;e0o;lve,n5;irt6ousands,ree;even2ix2;i3o0;r1ur0;!t2;ty;ft0ve;e2y;ight0lev1;!e0y;en;illions",Multiple:"true¦b3hundred,m3qu2se1t0;housand,r2;pt1xt1;adr0int0;illion",City:"true¦0:6Y;1:5Y;2:6D;3:5R;4:5O;a65b50c4Fd45e41f3Tg3Eh36i2Xj2Sk2Bl20m1In18o15p0Tq0Rr0Ks01tPuOvLwDxiBy9z5;a7h5i4Juri4L;a5e5ongsh0;ng3E;greb,nzib5D;ang2e5okoha3Punfu;katerin3Erev0;a5n0N;m5En;arsBeAi6roclBu5;h0xi,zh5M;c7n5;d5nipeg,terth4;hoek,s1I;hi5Wkl37;l60xford;aw;a6ern2i5ladivost5Jolgogr6F;en3lni6M;lenc4Vncouv3Rr3ughn;lan bat1Brumqi,trecht;aDbilisi,eCheBi9o8r7u5;l1Zn60r5;in,ku;ipoli,ondh5Z;kyo,m2Zron1OulouS;an5jua3l2Umisoa69ra3;j4Ushui; hag60ssaloni2I;gucigal26hr0l av1U;briz,i6llinn,mpe57ng5rtu,shk2S;i3Fsh0;an,chu1n0p2Fyu0;aEeDh8kopje,owe1Gt7u5;ra5zh4Y;ba0Ht;aten is56ockholm,rasbou65uttga2W;an8e6i5;jiazhua1llo1m5Vy0;f51n5;ya1zh4I;gh3Lt4R;att46o1Wv45;cramen16int ClBn5o paulo,ppo3Srajevo; 7aa,t5;a 5o domin3F;a3fe,m1M;antonBdie3Dfrancisco,j5ped3Osalvad0K;o5u0;se;em,z26;lou57peters25;aAe9i7o5;me,sar5t58;io;ga,o5yadh;! de janei3F;cife,ykjavik;b4Sip4lei2Inc2Pwalpindi;ingdao,u5;ez2i0P;aEeDhCiBo8r7u6yong5;ya1;eb56ya1;ag50etor3M;rt5zn0; 5la4Do;au prin0Melizabe25sa04;ls3Qrae58tts27;iladelph3Hnom pe1Boenix;r22tah tik3F;lerZnaji,r4Nt5;na,r33;ak45des0Km1Nr6s5ttawa;a3Wlo;an,d06;a7ew5ing2Govosibir1Kyc; 5cast37;del25orlea45taip15;g8iro4Un5pl2Xshv34v0;ch6ji1t5;es,o1;a1o1;a6o5p4;ya;no,sa0X;aFeCi9o6u5;mb2Bni27sc3Z;gadishu,nt6s5;c14ul;evideo,re30;ami,l6n15s5;kolc,sissauga;an,waukee;cca,d5lbour2Nmph40ndo1D;an,ell5i3;in,ín;cau,drAkass2Sl9n8r5shh47;aca6ib5rakesh,se2L;or;i1Sy;a4BchEdal0Zi44;mo;id;aCeiAi8o6u5vRy2;anLckn0Odhia3;n5s angel26;d2g bea1N;brev2Be3Jma5nz,sb2verpo28;!ss27;c5pzig;est17; p6g5ho2Xn0Dusan25;os;az,la34;aHharFiClaipeBo9rak0Eu7y5;iv,o5;to;ala lump4n5;mi1sh0;hi0Ilka2Ypavog4si5wlo2;ce;da;ev,n5rkuk;gst2sha5;sa;k5toum;iv;bIdu3llakuric0Rmpa3Dn6ohsiu1ra5un1Jwaguc0R;c0Qj;d5o,p4;ah1Uy;a7e6i5ohannesW;l1Wn0;dd34rusalem;ip4k5;ar2I;bad0mph1PnBrkutVs8taYz5̇zm7;m6tapala5;pa;ir;fah0l6tanb5;ul;am2Wi2H;che2d5;ianap2Ko20;aAe7o5yder2T; chi mi5ms,nolulu;nh;f6lsin5rakli2;ki;ei;ifa,lifax,mCn5rb1Dva3;g8nov01oi;aFdanEenDhCiPlasgBo9raz,u5;a5jr23;dal6ng5yaquil;zh1J;aja2Lupe;ld coa1Athen5;bu2P;ow;ent;e0Uoa;sk;lw7n5za;dhi5gt1E;nag0U;ay;aisal26es,o8r6ukuya5;ma;ankfu5esno;rt;rt5sh0; wor6ale5;za;th;d5indhov0Pl paso;in5mont2;bur5;gh;aBe8ha0Xisp4o7resd0Lu5;b5esseldorf,rb0shanbe;ai,l0I;ha,nggu0rtmu13;hradSl6nv5troit;er;hi;donghIe6k09l5masc1Wr es sala1IugavpiY;i0lU;gu,je2;aJebu,hAleve0Vo5raio02uriti1N;lo7n6penhag0Ar5;do1Lk;akKst0V;gUm5;bo;aBen8i6ongqi1ristchur5;ch;ang m7ca5ttago1;go;g6n5;ai;du,zho1;ng5ttogr12;ch8sha,zh07;i9lga8mayenJn6pe town,r5;acCdiff;ber17c5;un;ry;ro;aVeNhKirmingh0UoJr9u5;chareSdapeSenos air7r5s0tu0;g5sa;as;es;a9is6usse5;ls;ba6t5;ol;ne;sil8tisla7zzav5;il5;le;va;ia;goZst2;op6ubaneshw5;ar;al;iBl9ng8r5;g6l5n;in;en;aluru,hazi;fa5grade,o horizonte;st;ji1rut;ghd09kGnAot9r7s6yan n4;ur;el,r05;celo3ranquil07;na;ou;du1g6ja lu5;ka;alo6k5;ok;re;ng;ers5u;field;a02bZccYddis abaXgartaWhmedUizawl,lQmNnHqaXrEsBt7uck5;la5;nd;he7l5;an5;ta;ns;h5unci2;dod,gab5;at;li5;ngt2;on;a6chora5kaLtwerp;ge;h7p5;ol5;is;eim;aravati,m0s5;terd5;am; 6buquerq5eppo,giers,maty;ue;basrah al qadim5mawsil al jadid5;ah;ab5;ad;la;ba;ra;idj0u dha5;bi;an;lbo6rh5;us;rg",Region:"true¦0:2N;1:2T;2:2K;a2Qb2Dc1Zd1Ues1Tf1Rg1Lh1Hi1Cj18k13l10m0Pn07o05pZqWrTsKtFuCv9w5y3zacatec2U;akut0o0Du3;cat2k07;a4est 3isconsin,yomi1M;bengal,vi6;rwick2Bshington3;! dc;er4i3;rgin0;acruz,mont;dmurt0t3;ah,tar3; 2La0X;a5e4laxca1Rripu1Xu3;scaDva;langa1nnessee,x2F;bas0Vm3smNtar25;aulip2Dil nadu;a8i6o4taf11u3ylh1F;ffYrr04s1A;me1Cno1Quth 3;cVdU;ber0c3kkim,naloa;hu2ily;n4skatchew2xo3;ny; luis potosi,ta catari1;a3hode9;j3ngp07;asth2shahi;ingh25u3;e3intana roo;bec,en5reta0R;ara7e5rince edward3unjab; i3;sl0B;i,nnsylv3rnambu0B;an0;!na;axa0Ydisha,h3klaho20ntar3reg6ss0Bx0G;io;aJeDo5u3;evo le3nav0W;on;r3tt17va scot0;f8mandy,th3; 3ampton16;c5d4yo3;rk14;ako1N;aroli1;olk;bras1Mva0Cw3; 4foundland3;! and labrador;brunswick,hamp0Xjers4mexiSyork3;! state;ey;galOyarit;a9eghala0Mi5o3;nta1r3;dov0elos;ch5dlanCn4ss3zor11;issippi,ouri;as geraOneso18;ig2oac2;dhy12harasht0Gine,ni4r3ssachusetts;anhao,i el,ylF;p3toba;ur;anca0Ie3incoln0IouisH;e3iR;ds;a5e4h3omi;aka06ul1;ntucky,ra01;bardino,lmyk0ns0Qr3;achay,el0nata0X;alis5har3iangxi;kh3;and;co;daho,llino6n3owa;d4gush3;et0;ia1;is;a5ert4i3un2;dalFm0D;fordZ;mpYrya1waii;ansu,eorg0lou7oa,u3;an4erre3izhou,jarat;ro;ajuato,gdo3;ng;cesterS;lori3uji2;da;sex;ageTe6o4uran3;go;rs3;et;lawaLrbyK;aEeaDh8o3rimea ,umbr0;ahui6l5nnectic4rsi3ventry;ca;ut;i02orado;la;e4hattisgarh,i3uvash0;apQhuahua;chn4rke3;ss0;ya;ra;lFm3;bridge6peche;a8ihar,r7u3;ck3ryat0;ingham3;shi3;re;emen,itish columb0;h0ja cal7lk6s3v6;hkorto3que;st2;an;ar0;iforn0;ia;dygea,guascalientes,lAndhr8r4ss3;am;izo1kans4un3;achal 6;as;na;a 3;pradesh;a5ber4t3;ai;ta;ba4s3;ka;ma",Country:"true¦0:39;1:2M;a2Xb2Ec22d1Ye1Sf1Mg1Ch1Ai14j12k0Zl0Um0Gn05om3DpZqat1KrXsKtCu6v4wal3yemTz2;a25imbabwe;es,lis and futu2Y;a2enezue32ietnam;nuatu,tican city;.5gTkraiZnited 3ruXs2zbeE;a,sr;arab emirat0Kkingdom,states2;! of am2Y;k.,s.2; 28a.;a7haBimor-les0Bo6rinidad4u2;nis0rk2valu;ey,me2Ys and caic1U; and 2-2;toba1K;go,kel0Znga;iw2Wji2nz2S;ki2U;aCcotl1eBi8lov7o5pa2Cri lanka,u4w2yr0;az2ed9itzerl1;il1;d2Rriname;lomon1Wmal0uth 2;afr2JkLsud2P;ak0en0;erra leoEn2;gapo1Xt maart2;en;negKrb0ychellY;int 2moa,n marino,udi arab0;hele25luc0mart20;epublic of ir0Dom2Duss0w2;an26;a3eHhilippinTitcairn1Lo2uerto riM;l1rtugE;ki2Cl3nama,pua new0Ura2;gu6;au,esti2;ne;aAe8i6or2;folk1Hth3w2;ay; k2ern mariana1C;or0N;caragua,ger2ue;!ia;p2ther19w zeal1;al;mib0u2;ru;a6exi5icro0Ao2yanm05;ldova,n2roc4zamb9;a3gol0t2;enegro,serrat;co;c9dagasc00l6r4urit3yot2;te;an0i15;shall0Wtin2;ique;a3div2i,ta;es;wi,ys0;ao,ed01;a5e4i2uxembourg;b2echtenste11thu1F;er0ya;ban0Hsotho;os,tv0;azakh1Ee3iriba03o2uwait,yrgyz1E;rWsovo;eling0Jnya;a2erF;ma15p1B;c6nd5r3s2taly,vory coast;le of m19rael;a2el1;n,q;ia,oI;el1;aiSon2ungary;dur0Mg kong;aAermany,ha0Pibralt9re7u2;a5ern4inea2ya0O;!-biss2;au;sey;deloupe,m,tema0P;e2na0M;ce,nl1;ar;bTmb0;a6i5r2;ance,ench 2;guia0Dpoly2;nes0;ji,nl1;lklandTroeT;ast tim6cu5gypt,l salv5ngl1quatorial3ritr4st2thiop0;on0; guin2;ea;ad2;or;enmark,jibou4ominica3r con2;go;!n B;ti;aAentral african 9h7o4roat0u3yprQzech2; 8ia;ba,racao;c3lo2morPngo-brazzaville,okFsta r03te d'ivoiK;mb0;osD;i2ristmasF;le,na;republic;m2naTpe verde,yman9;bod0ero2;on;aFeChut00o8r4u2;lgar0r2;kina faso,ma,undi;azil,itish 2unei;virgin2; is2;lands;liv0nai4snia and herzegoviGtswaGuvet2; isl1;and;re;l2n7rmuF;ar2gium,ize;us;h3ngladesh,rbad2;os;am3ra2;in;as;fghaFlCmAn5r3ustr2zerbaijH;al0ia;genti2men0uba;na;dorra,g4t2;arct6igua and barbu2;da;o2uil2;la;er2;ica;b2ger0;an0;ia;ni2;st2;an",Place:"true¦aUbScOdNeMfLgHhGiEjfk,kClAm8new eng7ord,p5s4t2u1vostok,wake is7y0;akutCyz;laanbaatar,pO;ahiti,he 0;bronx,hamptons;akhalFfo,oho,under2yd;acifTek,h0itcairn;l,x;land;a0co,idHuc;gadRlibu,nhattR;a0gw,hr;s,x;osrae,rasnoyar0ul;sk;ax,cn,nd0st;ianKochina;arlem,kg,nd,ovd;ay village,re0;at 0enwich;brita0lakB;in;co,ra;urope,verglad8;en,fw,own2xb;dg,gk,h0lt;a1ina0uuk;town;morro,tham;cn,e0kk,rooklyn;l air,verly hills;frica,m7n2r3sia,tl1zor0;es;!ant2;adyr,tar0;ct0;ic0; oce0;an;ericas,s",WeekDay:"true¦fri2mon2s1t0wednesd3;hurs1ues1;aturd1und1;!d0;ay0;!s",Month:"true¦dec0february,july,nov0octo1sept0;em0;ber",Date:"true¦ago,t0week end,yesterd2;mr2o0;d0morrow;ay;!w",Duration:"true¦century,dAh9m6q5se4w1y0;ear,r;eek1k0;!s;!e4;ason,c;tr,uarter;i0onth;lliseco0nute;nd;our,r;ay,ecade",FemaleName:"true¦0:IT;1:IX;2:I5;3:I6;4:IN;5:IA;6:JE;7:GR;8:JA;9:J6;A:HE;B:HO;C:IF;D:J3;E:IJ;F:H3;G:C5;H:HQ;aGJbFEcDKdCTeBJfB0gA9h9Pi9Cj8Bk7Bl5Vm45n3Jo3Fp33qu32r2As15t0Eu0Cv03wWxiUyPzI;aMeJineb,oIsof3;e3Qf3la,ra;h2iLlJna,ynI;ab,ep;da,ma;da,h2iIra;nab;aLeKi0FolB4uJvI;etAonDI;i0na;le0sen3;el,gm3Fn,rGBs8S;aoIme0nyi;m5XyAA;aNendDShiD9iI;dele9lKnI;if44niIo0;e,f43;a,helmi0lIma;a,ow;ka0nB;aNeKiIusa5;ck81ktoriBHlAole7viI;anGenIR;da,lA6rIs0;a,nIoniGX;a,iFJ;leInesGX;nI9rI;i1y;g9rIxGY;su5te;aZeVhSiOoMrJuIy2;i,la;acIRiIu0L;c3na,sI;hGta;nIr0H;iGya;aKffaEInIs6;a,gtiI;ng;!nFJra;aJeIomasi0;a,l9Mo87res1;l3ndolwethu;g9Do85rJssI;!a,ie;eIi,ri8;sa,za;bPlNmLnJrIs6tia0wa0;a60yn;iIya;a,ka,s6;arGe2iIm75ra;!ka;a,iI;a,t6;at6it6;a0Gcarlet3Te0ChYiUkye,neza0oStOuJyI;bI4lvi1;ha,mayI7ni7sJzI;an3KetAie,y;anIi8;!a,e,nI;aCe;aKeI;fIl5DphI;an4;cHSr5;b3fiA5m0MnIphi1;d2ia,ja,ya;er2lKmon1nJobh8NtI;a,i;dy;lEJv3;aNeJirIo0risF1y5;a,lDF;ba,e0i5lKrI;iIr6Gyl;!d8Ffa;ia,lDR;hd,iNki2nKrJu0w0yI;la,ma,na;i,le9on,ron;aJda,ia,nIon;a,on;!ya;k6mI;!aa;lKrJtaye7ZvI;da,inj;e0ife;en1i0ma;anA2bMd3Kh1PiBkLlKmJnd2rIs6vannaC;aCi0;ant6i2;lDGma,ome;ee0in8Qu2;in1ri0;a05e00hYiVoIuthDE;bTcSghRl8InQsKwJxI;anAWie,y;an,e0;aJeIie,lD; merBKann8ll1marD8t7;!lInn1;iIyn;e,nI;a,dG;da,i,na;ayy8D;hel63io;bDHer7yn;a,cJkImas,nGta,ya;ki,o;helHki;ea,iannG9oI;da,n1L;an0bKemGgi0iJnIta,y0;a88ee;han83na;a,eI;cE7kaC;bi0chJe,i0mo0nIquEHy0;di,ia;aEFelIiB;!e,le;een4ia0;aOeNhLipaluk,oKrIute67;iIudenCN;scil3LyamvaB;lly,rt3;ilome0oebe,ylI;is,lis;ggy,nelope,r5t2;ige,m0UnLo5rvaDDtJulI;a,etAin1;ricIt4T;a,e,ia;do2i07;ctav3dJfCWis6lIphCWumC0yunbileg;a,ga,iv3;eIvAB;l3tA;aXeViNoJurIy5;!ay,ul;a,eKor,rJuI;f,r;aCeEma;ll1mi;aOcMhariBLkLlaKna,sIta,vi;anIha;ur;!y;a,iDPki;hoHk9UolI;a,eDG;!mh;hir,lIna,risFsreE;!a,lBQ;asuMdLh3i6DnKomi8rgELtIzanin zah2;aIhal4;li1s6;cy,etA;e9iER;nngu30;a0Ackenz4e02iNoKrignayani,uriDAyI;a,rI;a,lOna,tH;bi0i2llBFnI;a,iI;ca,ka,qD0;a,cUkaTlOmi,nMrJtzi,yI;ar;aJiam,lI;anEK;!l,nB;dy,eIh,n4;nhHrva;aLdKiCMlI;iIy;cent,e;red;!gros;!e5;ae5hI;ae5el40;ag5FgOi,lLrI;edi79iJjem,on,yI;em,l;em,sF;an4iIliF;nIsCB;a,da;!an,han;b0DcAPd0Be,g09ha,i08ja,l06n04rMsoum60tLuJv82x9HyIz4;bell,ra,soB6;de,rI;a,eE;h8Eild1t4;a,cYgUiLjor4l7Sn4s6tKwa,yI;!aIbe6Wja9lAB;m,nBE;a,ha,in1;!aKbC8eJja,lDna,sIt64;!a,ol,sa;!l1H;! Kh,mJnI;!a,e,n1;!awit,i;aliAEcJeduarBfern5GjIlui5Y;o6Ful3;ecil3la2;arKeJie,oIr46ueriA;!t;!ry;et44i39;el4Wi77y;dIon,ue5;akran7y;ak,en,iIlo3Q;a,ka,nB;a,re,s4te;daIg4;!l3C;alDd4elIge,isD8on0;ei9in1yn;el,le;a0Oe0DiZoRuMyI;d3la,nI;!a,dJeBEnIsCI;!a,eBD;a,sCG;aCTcKel0QiFlJna,pIz;e,i7;a,u,wa;iIy;a0Te,ja,l2LnB;is,l1TrKttJuIvel4;el5is1;e,ie;aLeJi8na,rI;a86i8;lIn1t7;ei;!in1;aTbb9AdSepa,lNnKsJv3zI;!a,be5MetAz4;a,etA;!a,dI;a,sIy;ay,ey,i,y;a,iKja,lI;iIy;a9Ye;!aI;!nG;ia,ya;!nI;!a,ne;aQda,e0iOjZla,nNoLsKtIx4y5;iIt4;c3t3;e2NlCD;la,nIra;a,ie,o2;a,or1;a,gh,laI;!ni;!h,nI;a,d2e,n5Q;cPdon95iOkes6mi98na,rNtKurJvIxmi,y5;ern1in3;a,e55ie,yn;as6iJoI;nya,ya;fa,s6;a,isF;a,la;ey,ie,y;a05e00hYiPlAHoOrKyI;lIra;a,ee,ie;istIy6D;a,en,iJyI;!na;!e,n5A;nul,ri,urtnAX;aPerOlAWmKrIzzy;a,stI;en,in;!berlJmernI;aq;eIi,y;e,y;a,stE;!na,ra;aIei2ongordzol;dij1w5;el7OiLjsi,lKnJrI;a,i,ri;d2na,za;ey,i,lBAs4y;ra,s6;bi7cAGdiat7GeAZiSlRmQnyakuma1BrOss6JtLvi7yI;!e,lI;a,eI;e,i8J;a6DeJhIi4OlDri0y;ar6Ber6Bie,leErAZy;!lyn8Eri0;a,en,iIl5Soli0yn;!ma,nGsF;a5il1;ei8Ci,l4;a,tl6K;a09eZiWoOuI;anMdLliIst63;a8FeIsF;!n9tI;!a,te;e5Ji3Ky;a,i7;!anOcelDdNelHhan7PleMni,sJva0yI;a,ce;eIie;fIlDph5U;a,in1;en,n1;i8y;!a,e,n42;lIng;!i1ElI;!i1D;anOle0nLrKsI;i8AsI;!e,i89;i,ri;!a,elHif2CnI;a,etAiIy;!e,f2A;a,e8BiJnI;a,e8AiI;e,n1;cNda,mi,nJque4WsminGvie2y9zI;min8;a8eJiI;ce,e,n1s;!lIsFt0G;e,le;inJk4lDquelI;in1yn;da,ta;da,lSmQnPo0rOsJvaIzaro;!a0lu,na;aKiJlaIob81;!n9J;do2;belIdo2;!a,e,l39;a74en1i0ma;di2es,gr6Vji;a9elBogI;en1;a,e9iIo0se;a0na;aTePiKoIusFyacin2B;da,ll4rten23snI;a,i9M;lJmaI;ri;aJdIlaJ;a,egard;ry;ath1CiKlJnriet7rmi9sI;sa,t1B;en2Sga,mi;di;bi2Dil8ElOnNrKsJtIwa,yl8E;i5Pt4;n5Vti;iImo4Zri50;etI;!te;aCnaC;a,ey,l4;a04eYiTlRoPrLunKwI;enIyne1Q;!dolD;ay,el;acJetIiselB;a,chE;e,ieI;!la;ld1AogooI;sh;adys,enIor3yn2H;a,da,na;aLgi,lJna,ov85selIta;a,e,le;da,liI;an;!n0;mMnKorgJrI;ald3Oi,m3Btru87;etAi4T;a,eIna;s26vieve;ma;bJle,mIrnet,yH;al5Ki5;i5CrielI;a,l1;aVeSiRlorPoz3rI;anKeJiI;da,eB;da,ja;!cI;esJiIoi0O;n1s5Y;!ca;a,encI;e,ia;en,o0;lJn0rnI;anB;ec3ic3;jr,n7rLtIy8;emJiIma,ouma7;ha,ma,n;eh;ah,iBrah,za0;cr4Ld0Oe0Ni0Mk7l05mXn4WrUsOtNuMvI;aKelJiI;!e,ta;inGyn;!ngel2S;geni1ni43;h5Qta;mMperanLtI;eJhIrel5;er;l2Zr8;za;a,eralB;iIma,nest2Jyn;cIka,n;a,ka;a,eNiKmI;aIie,y;!li9;lIn1;ee,iIy;a,e,ja;lIrald;da,y;aXeViOlNma,no2oLsKvI;a,iI;na,ra;a,ie;iIuiI;se;a,en,ie,y;a0c3da,f,nNsKzaI;!betIve7;e,h;aIe,ka;!beI;th;!a,or;anor,nG;!a;!in1na;leEs6;vi;eJiIna,wi0;e,th;l,n;aZeNh3iMjeneLoI;lor5Qminiq4Gn3DrItt4;a,eEis,la,othIthy;ea,y;ba;an0AnaCon9ya;anRbQde,ePiNlKmetr3nIsir5H;a,iI;ce,se;a,iJla,orIphi9;es,is;a,l6A;dIrdI;re;!d59na;!b2ForaCraC;a,d2nI;!a,e;hl3i0l0HmOnMphn1rJvi1WyI;le,na;a,by,cJia,lI;a,en1;ey,ie;a,etAiI;!ca,el1Bka,z;arIia;is;a0Se0Oh05i03lVoKristJynI;di,th3;al,i0;lQnNrJurI;tn1E;aKd2MiIn2Mri9;!nI;a,e,n1;!l4;cepci57n4sI;tanIuelo;ce,za;eIleE;en,tA;aKeoJotI;il4Z;!pat2;ir8rKudI;etAiI;a,ne;a,e,iI;ce,s00;a2er2ndI;i,y;aSeOloe,rI;isKyI;stI;al;sy,tI;a1Qen,iIy;an1e,n1;deKlseJrI;!i8yl;a,y;li9;nNrI;isLlJmI;ai9;a,eIotA;n1tA;!sa;d2elHtI;al,elH;cJlI;esAi42;el3ilI;e,ia,y;itlZlYmilXndWrOsMtIy5;aKeKhIri0;erIleErDy;in1;ri0;a32sI;a31ie;a,iOlMmeKolJrI;ie,ol;!e,in1yn;lIn;!a,la;a,eIie,o7y;ne,y;na,sF;a0Hi0H;a,e,l1;is7l4;in,yn;a0Ie02iZlXoUrI;andi8eRiKoJyI;an0nn;nwDoke;an3CdgMg0XtI;n2WtI;!aJnI;ey,i,y;ny;etI;!t8;an0e,nI;da,na;bbi8glarJlo06nI;i7n4;ka;ancIossom,ythe;a,he;an18lja0nIsm3I;i7tI;ou;aVcky,linUni7rQssPtKulaCvI;!erlI;ey,y;hKsy,tI;e,iIy8;e,na;!anI;ie,y;!ie;nIt6yl;adJiI;ce;etAi9;ay,da;!triI;ce,z;rbKyaI;rmI;aa;a2o2ra;a2Sb2Md23g1Zi1Qj5l16m0Xn0Aoi,r05sVtUuQvPwa,yJzI;ra,u0;aLes6gKlJseI;!l;in;un;!nI;a,na;a,i2I;drKgus1RrJsteI;ja;el3;a,ey,i,y;aahua,he0;hJi2Gja,mi7s2DtrI;id;aNlJraqIt21;at;eJi8yI;!n;e,iIy;gh;!nI;ti;iKleJo6pi7;ta;en,n1tA;aIelH;!n1J;a01dje5eZgViTjRnKohito,toIya;inetAnI;el5ia;!aLeJiImK;e,ka;!mItA;ar4;!belJliFmV;sa;!le;a,eliI;ca;ka,sIta;a,sa;elIie;a,iI;a,ca,n1qI;ue;!tA;te;!bJmIstasiNya;ar3;el;aMberLeliKiIy;e,l3naI;!ta;a,ja;!ly;hHiJl3nB;da;a,ra;le;aXba,eQiNlLthKyI;a,c3sI;a,on,sa;ea;iIys0O;e,s0N;a,cJn1sIza;a,e,ha,on,sa;e,ia,ja;c3is6jaLksaLna,sKxI;aIia;!nd2;ia,saI;nd2;ra;ia;i0nJyI;ah,na;a,is,naCoud;la;c6da,leEmOnMsI;haClI;inIyZ;g,n;!h;a,o,slI;ey;ee;en;at6g4nJusI;ti0;es;ie;aXdiUelNrI;eKiI;anNenI;a,e,ne;an0;na;!aMeLiJyI;nn;a,n1;a,e;!ne;!iI;de;e,lDsI;on;yn;!lI;i9yn;ne;aLbJiIrM;!gaL;ey,i8y;!e;gaI;il;dLliyKradhJs6;ha;ya;ah;a,ya",FirstName:"true¦aLblair,cHdevGgabrieFhinaEjCk9l8m4nelly,quinn,re3s0;h0umit;ay,e0iloh;a,lby;g6ne;a1el0ina,org5;!okuh9;naia,r0;ion,lo;ashawn,uca;asCe1ir0rE;an;lsAnyat2rry;am0ess6ie,ude;ie,m5;ta;le;an,on;as2h0;arl0eyenne;ie;ey,sidy;lex2ndr1ubr0;ey;a,ea;is",LastName:"true¦0:9G;1:9W;2:9O;3:9Y;4:9I;5:8L;6:9L;7:A1;8:9F;9:8A;A:78;B:6G;C:6K;a9Vb8Nc7Ld6Ye6Tf6Fg5Wh59i55j4Qk45l3Nm2Sn2Fo27p1Oquispe,r18s0Ft05vVwOxNyGzD;aytsAEhD;aDou,u;ng,o;aGeun81iDoshiAAun;!lD;diDmaz;rim,z;maDng;da,guc98mo6VsDzaA;aAhiA8;iao,u;aHeGiEoDright,u;jc8Tng;lDmm0nkl0sniewsA;liA2s3;b0iss,lt0;a5Tgn0lDtanabe;k0sh;aHeGiEoDukB;lk5roby5;dBllalDnogr2Zr10ss0val37;ba,obos;lasEsel7P;lGn dFrg8FsEzD;qu7;ily9Pqu7silj9P;en b35ijk,yk;enzue96verde;aLeix1KhHi2j6ka3IoGrFsui,uD;om50rD;c2n0un1;an,embl8UynisA;dor96lst31m4rr9th;at5Ni7NoD;mErD;are70laci65;ps3s0Z;hirBkah8Enaka;a01chXeUhQiNmKoItFuEvDzabo;en8Bobod34;ar7bot4lliv2zuA;aEein0oD;i68j3Myan8W;l6rm0;kol5lovy5re6Rsa,to,uD;ng,sa;iDy60;rn5tD;!h;l5ZmEnDrbu;at8gh;mo6Eo6K;aFeDimizu;hu,vchD;en7Duk;la,r17;gu8mDoh,pulve8Trra4S;jDyD;on5;evi6Giltz,miDneid0roed0ulz,warz;dEtD;!z;!t;ar42h6ito,lFnDr4saAto,v4;ch7d0AtDz;a4Pe,os;as,ihBm3Zo0Q;aOeNiKoGuEyD;a67oo,u;bio,iz,sD;so,u;bEc7Bdrigue57g03j73mDosevelt,ssi,ta7Nux,w3Z;a4Ce0O;ertsDins3;!on;bei0LcEes,vDzzo;as,e8;ci,hards3;ag2es,it0ut0y9;dFmEnDsmu7Zv5F;tan1;ir7os;ic,u;aSeLhJiGoErDut6;asad,if60ochazk1V;lishc23pDrti63u55we67;e2Tov48;cEe09nD;as,to;as61hl0;aDillips;k,m,n5L;de3AetIna,rGtD;ersErovDtersC;!a,ic;en,on;eDic,ry,ss3;i8ra,tz,z;ers;h71k,rk0tEvD;ic,l3T;el,t2O;bJconnor,g2ClGnei5QrEzD;demir,turk;ella3MtDwe5O;ega,iz;iDof6GsC;vDyn1E;ei8;aPri1;aLeJguy1iFoDune44ym2;rodahl,vDwak;ak3Uik5otn57;eEkolDlsCx3;ic,ov6X;ls1miD;!n1;ils3mD;co42ec;gy,kaEray2varD;ro;jiDmu8shiD;ma;aWcUeQiPoIuD;lGnFrDssoli5T;atDpTr68;i,ov4;oz,te4C;d0l0;h2lInr13o0GrEsDza0Y;er,s;aFeEiDoz5r3Ete4C;!n6F;au,i8no,t4N;!l9;i2Rl0;crac5Ohhail5kke3Qll0;hmeFij0j2FlEn2Xrci0ssiDyer19;!er;n0Io;dBti;cartDlaughl6;hy;dMe6Egnu5Fi0jer35kLmJnci5ArFtEyD;er,r;ei,ic,su1O;iEkBqu9roqu6tinD;ez,s;a55c,nD;!o;a53mD;ad5;e5Pin1;rig4Ps1;aSeMiIoGuEyD;!nch;k4nDo;d,gu;mbarDpe2Svr4;di;!nDu,yana1T;coln,dD;bDholm;erg;bed5UfeGhtFitn0kaEn6rDw2H;oy;!j;in1on1;bvDvD;re;iDmmy,rsCu,voie;ne,t12;aTennedy,h2iSlQnez48oJrGuEvar2woD;k,n;cerDmar59znets5;a,o2H;aDem0i31yeziu;sni3RvD;ch3W;bay4Grh0Ksk0UvaFwalDzl5;czDsA;yk;cFlD;!cDen3S;huk;!ev4ic,s;e6uiveD;rt;eff0l4mu8nnun1;hn,llFminsArEstra33to,ur,yDzl5;a,s0;j0HlsC;oe;aMenLha2Qim0RoEuD;ng,r4;e2KhFnErge2Ku2OvD;anB;es,ss3;anEnsD;en,on,t3;nesDsC;en,s1;ki27s1;cGkob3RnsDrv06;en,sD;enDon;!s;ks3obs1;brahimBglesi3Ake4Ll0DnoZoneFshikEto,vanoD;u,v4A;awa;scu;aPeIitchcock,jaltal6oFrist46uD;!aDb0gh9ynh;m2ng;a24dz4fEjga2Tk,rDx3B;ak0Yvat;er,fm3B;iGmingw3NnErD;nand7re8;dDriks1;ers3;kkiEnD;on1;la,n1;dz4g1lvoLmJnsCqIrr0SsFuEyD;as36es;g1ng;anEhiD;mo0Q;i,ov08;ue;alaD;in1;rs1;aNeorgMheorghe,iKjonJoGrEuDw3;o,staf2Utierr7zm2;ayDg4iffitVub0;li1H;lub3Rme0JnEodD;e,m2;calv9zale0H;aj,i;l,mDordaL;en7;iev3A;gnJlGmaFnd2Mo,rDs2Muthi0;cDza;ia;ge;eaElD;agh0i,o;no;e,on;ab0erLiHjeldsted,lor9oFriedm2uD;cDent9ji3E;hs;ntaDrt6st0urni0;na;lipEsD;ch0;ovD;!ic;hatBnanFrD;arDei8;a,i;deS;ov4;dGinste6riksCsDva0D;cob2YpDtra2W;inoza,osiL;en,s3;er,is3wards;aUeMiKjurhuJoHrisco0ZuEvorakD;!oQ;arte,boEmitru,rDt2U;and,ic;is;g2he0Imingu7n2Ord1AtD;to;us;aDmitr29ssanayake;s,z; GbnaFlEmirDrvis1Lvi,w2;!ov4;gado,ic;th;bo0groot,jo04lEsilDvri9;va;a cruz,e3uD;ca;hl,mcevsAnEt2EviD;d5es,s;ieDku1S;ls1;ki;a06e01hOiobNlarkMoFrD;ivDuz;elli;h1lHntGoFrDs26x;byn,reD;a,ia;ke,p0;i,rer0N;em2liD;ns;!e;anu;aLeIiu,oGriDuJwe;stD;eDiaD;ns1;i,ng,uFwDy;!dhury;!n,onEuD;ng;!g;kEnDpm2tterjee,v7;!d,g;ma,raboD;rty;bGl08ng4rD;eghetEnD;a,y;ti;an,ota0L;cer9lder3mpbeIrFstDvadi07;iDro;llo;doEt0uDvalho;so;so,zo;ll;es;a08eWhTiRlNoGrFyD;rne,tyD;qi;ank5iem,ooks,yant;gdan5nFruya,su,uchEyHziD;c,n5;ard;darDik;enD;ko;ov;aEondD;al;nco,zD;ev4;ancRshwD;as;a01oDuiy2;umDwmD;ik;ckNethov1gu,ktLnJrD;gGisFnD;ascoDds1;ni;ha;er,mD;ann;gtDit7nett;ss3;asD;hi;er,ham;b4ch,ez,hMiley,kk0nHrDu0;bEnDua;es,i0;ieDosa;ri;dDik;a8yopadhyD;ay;ra;er;k,ng;ic;cosZdYguilXkhtXlSnJrGsl2yD;aEd6;in;la;aEsl2;an;ujo,ya;dFgelD;ovD;!a;ersGov,reD;aDjL;ss1;en;en,on,s3;on;eksejGiyGmeiFvD;ar7es;ez;da;ev;ar;ams;ta",MaleName:"true¦0:DO;1:CP;2:D7;3:AK;4:CL;5:C0;6:CG;7:D3;8:BT;9:AS;A:95;B:DB;C:D4;D:BN;aCAbB8cA8d99e8Jf83g7Gh6Ti6Dj5Fk53l4Fm37n2Uo2Op2Gqu2Er1Ms12t0Gu0Fv08wUxTyJzE;aEor0;cEh9Kkaria,n0C;hFkE;!aC8;ar5VeC7;aMoGuE;sEu2LvBK;if,uf;nGsFusE;ouf,sE;ef;aEg;s,tE;an,h0;hli,nB9ssY;avi3ho4;aNeLiGoEyaBO;jcie88lfgang,odrow,utE;!er;lEnst1;bGey,fredBlE;aB0iE;am,e,s;e98ur;i,nde9sE;!l8t1;lFyE;l1ne;lEt3;a9Yy;aHiEladimir,ojte7V;cFha0kt68nceErgA6va0;!nt;e3Xt66;lentEn9T;inE;!e;ghBFlyss5Anax,sm0;aXeShOiMoIrGuFyE;!l3ro6s1;n7r5A;avAIeEist0oy,um0;ntAAv5Xy;bGd8SmEny;!as,mEoharu;aCCie,y;iAy;mEt5;!my,othy;adGeoFia0KomE;!as;!do8H;!de5;dHrE;en99rE;an98eEy;ll,n97;!dy;dgh,ha,iEnn3req,tsu4S;cAQka;aUcotSeQhMiKoIpenc3tEur1Xylve97zym1;anGeEua86;f0phBDvEwa85;e60ie;!islaw,l8;lom1uE;leyma6ta;dElAm1yabonga;!dhart75n8;aGeE;lErm0;d1t1;h7Lne,qu11un,wn,y6;aEbasti0k2Cl4Qrg4Nth,ymoAF;m5n;!tE;!ie,y;lFmEnti2Gq59ul;!ke5KmDu4;ik,vato7P;aZeVhe9WiRoIuFyE;an,ou;b7EdFf5pe7LssE;!elBJ;ol3Gy;an,bLc63dJel,geIh0landBmHnGry,sFyE;!ce;coe,s;!aA2nD;an,eo;l46r;er79g3n8olfo,riE;go;bDeAR;cEl8;ar6Jc6IhFkEo;!ey,ie,y;a8Wie;gFid,ubCyEza;an1KnZ;g9TiE;na9Ps;ch6Rfa4lImHndGpha4sFul,wi2IyE;an,mo6V;h7Km5;alAXol2Vy;iADon;f,ph;ent2inE;cy,t1;aJeHhilGier6UrE;aka18eE;m,st1;!ip,lip;dA5rcy,tE;ar,e3Fr1Z;b4Idra74tr6KulE;!o19;ctav3Ei3liv3m9Zndrej,rIsFtEum7wC;is,to;aFc7k7m0vE;al5T;ma;i,vM;aMeKiGoEu39;aEel,j5l0ma0r3J;h,m;cFg4i47kE;!au,h7Hola;holAkEolA;!olA;al,d,il,ls1vE;il8K;hom,tE;e,hE;anEy;!a4i4;a00eXiNoIuFyE;l2Hr1;hamFr6LstaE;fa,p55;ed,mI;di0Xe,hamGis2DntFsEussa;es,he;e,y;ad,ed,mE;ad,ed;cJgu4hai,kHlGnFtchE;!e9;a7Vik;house,o0Ct1;ae5Pe9NolE;aj;ah,hE;aFeE;al,l;el,l;hFlv2rE;le,ri9v2;di,met;ay0hUjd,ks2BlSmadXnRrLs1tGuricFxE;imilianBwe9;e,io;eHhFiAtEus,yA;!eo,hew,ia;eEis;us,w;j,o;cIio,kHlGqu6Zsha9tEv2;iEy;!m,n;in,on;el,oQus;!el91oPus;iHu4;achEcolm,ik;ai,y;amFdi,eEmoud;sh;adEm5H;ou;aXeRiPlo3AoLuFyE;le,nd1;cHiGkEth3uk;aEe;!s;gi,s,z;as,iaE;no;g0nn7CrenGuEv82we9;!iE;e,s;!zo;am,oE;n4r;a7Vevi,la4BnIonHst3thaGvE;eEi;nte;bo;!a6Eel;!ny;mGnFrEur55wr55;ry,s;ce,d1;ar,o4Y;aMeIhal7GiFristEu4Ky6J;i0o54;er0p,rE;k,ollE;os;en0iGnErmit,v3U;!dr3XnEt1;e18y;r,th;cp3j5m5Sna6OrFsp7them,uE;ri;im,l;a01eViToHuE;an,lEst2;en,iE;an,en,o,us;aOeMhnLkubAnJrHsE;eFhEi7Vue;!ua;!ph;dEge;i,on;!aEny;h,s,th55;!ath54ie,nD;!l,sEy;ph;o,qu2;an,mE;!mD;d,ffHrEs5;a5YemFmai6oEry;me,ni0Y;i7Fy;!e5OrE;ey,y;cLdCkJmIrGsFvi3yE;dCs1;on,p3;ed,od,rEv4V;e5Bod;al,es4Mis1;a,e,oEub;b,v;ob,quE;es;aXbRchiQgOkeNlija,nuMonut,rKsGtEv0;ai,suE;ki;aFha0i6ZmaEsac;el,il;ac,iaE;h,s;a,vinEw2;!g;k,nngu5F;!r;nacEor;io;ka;ai,rahE;im;aQeKoJuEyd7;be2FgHmber4KsE;eyFsE;a2e2;in,n;h,o;m3ra36sse2wa40;aIctHitHnrFrE;be28m0;iEy;!q0Z;or;th;bMlLmza,nKo,rGsFyE;a47dC;an,s0;lGo4Nry,uEv8;hi44ki,tE;a,o;an,ey;k,s;!im;ib;aWeSiQlenPoMrIuE;ilFsE;!tavo;herme,lerE;mo;aGegEov3;!g,orE;io,y;dy,h5J;nzaFrE;an,d1;lo;!n;lbe4Xno,oE;rg37van4X;oGrE;aEry;ld,rdB;ffr8rge;brFlCrEv2;la14r3Hth,y;e33ielE;!i5;aSePiNlLorrest,rE;anFedEitz;!dDer11r11;cGkE;!ie,lE;in,yn;esLisE;!co,z2W;etch3oE;yd;d4lEonn;ip;deriFliEng,rnan05;pe,x;co;bi0di,hd;dYfrXit0lSmLnIo2rGsteb0th0uge6vEymCzra;an,eE;ns,re2X;gi,i0AnErol,v2w2;estBie;oFriqEzo;ue;ch;aJerIiFmE;aIe2Q;lErh0;!iE;o,s;s1y;nu4;be0Bd1iGliFm3t1viEwood;n,s;ot1Ss;!as,j4EsE;ha;a2en;!d2Vg7mHoFuFwE;a26in;arE;do;oWuW;a02eRiPoHrag0uGwFylE;an,l0;ay6ight;a6dl8nc0st2;minHnFri0ugEvydAy29;!lA;!a2HnEov0;e9ie,y;go,iFykA;as;cEk;!k;armuEll1on,rk;id;andNj0lbeMmetri5nKon,rIsGvFwExt3;ay6ey;en,in;hawn,moE;nd;ek,rE;ick;is,nE;is,y;rt;re;an,le,mLnKrGvE;e,iE;!d;en,iGne9rEyl;eEin,yl;l35n;n,o,us;!i4ny;iEon;an,en,on;a08e06hYiar0lOoJrHuFyrE;il,us;rtE;!is;aEistob0S;ig;dy,lHnFrE;ey,neli5y;or,rE;ad;by,e,in,l2t1;aIeGiEyK;fEnt;fo0Et1;meEt5;nt;rGuFyE;!t1;de;enE;ce;aIeGrisE;!toE;ph3;st3;er;d,rEs;b4leE;s,y;cEdric,s7;il;lHmer1rE;ey,lFro9y;ll;!os,t1;eb,v2;a07eZiVlaUoSrFuEyr1;ddy,rtL;aMeHiGuFyE;an,ce,on;ce,no;an,ce;nFtE;!t;dFtE;!on;an,on;dFndE;en,on;!foEl8y;rd;bby,rEyd;is;i6ke;bGlFshE;al;al,lD;ek;nIrEshoi;at,nFtE;!r1B;aEie;rdB;!iFjam2nD;ie,y;to;kaNlazs,nIrE;n8rEt;eEy;tt;ey;dEeF;ar,iE;le;ar16b0Ud0Qf0Ogust2hm0Li0Ija0Hl03mZnSputsiRrIsaHugust5veFyEziz;a0kh0;ry;us;hi;aLchKiJjun,maInGon,tEy0;hEu09;ur;av,oE;ld;an,ndB;!el,ki;ie;ta;aq;as,dIgelBtE;hony,oE;i6nE;!iBy;ne;er,reEy;!as,i,s,w;iGmaEos;nu4r;el;ne,r,t;an,beQdCeKfIi,lHonGphYt1vE;aOin;on;so,zo;an,en;onUrE;ed;c,jaHksandGssaHxE;!andE;er,ru;ar,er;ndE;ro;rtB;ni;dCm7;ar;en;ad,eE;d,t;in;onE;so;aFi,olfBri0vik;!o;mEn;!a;dIeHraFuE;!bakr,lfazl;hEm;am;!l;allJelGoulaye,ulE;!lErG;ah,o;! rE;ahm0;an;ah;av,on",Person:"true¦ashton kutchUbTcOdMeKgastPhIinez,jHkGleFmDnettLoCpAr5s4t2va1w0;arrDoode;lentino rossi,n go4;a0heresa may,iger woods,yra banks;tum,ylor;addam hussain,carlett johanssKlobodan milosevic;ay romano,e3o1ush limbau0;gh;d stewart,nald0;inho,o;ese witherspoFilly;a0ipJ;lmIris hiltD;prah winfrFra;essia0itt romnEubarek;en;bron james,e;anye west,endall,iefer sutherland,obe bryant;aime,effers7k rowling;a0itlBulk hogan;lle berry,rris5;ff0meril lagasse,zekiel;ie;a0enzel washingt2ick wolf;lt1nte;ar1lint0;on;dinal wols1son0;! palm2;ey;arack obama,rock;er",Adjective:"true¦0:95;1:80;2:7X;3:8W;4:8Q;5:6E;6:81;7:86;8:8R;9:8D;A:5W;a7Mb77c6Pd67e5Qf58g50h4Pi3Rjuni44k3Pl3Fm33n2To2Ep1Wquart63r1Ls0Rt0JuMvIwBye1J;ast54eFholeEiDoB;man5oBrthwhi6u0F;d7Hzy;despr8Fs6E;!sa6;ather13eBll o5Jste2Q;!k5;aDeCiBola5D;b95ce versa,gi2Q;ng4Vrsa5B;ca0lu54;lt06nHpDrCsBttermo8X;ef75u4;b67ge0; Db2ApCsBti7Y;ca6et,ide dO;er,i4L;f3Tto da3;aWbecom2cVdPeOfNiMknLmKpJrGsCtoFus1wB;a06iel4E;e6Zi2FoDpCuB;pervis1spect2;e0ok6X;ld;eBu5;cognQgul0LlBsolv1;at1ent2;a9recedeY;arri1et;own;que,vers4;air,orese6O;mploy1nd2xpect1;eBue;cid1rB;!a6RcovAly2sDwB;aBei7C;tAy;iz1to43;heck1onvinc2;ppeal2ssum2tteCuthorB;iz1;nd1;i3Gra;aGeDhough59ip 1PoCrB;anspa6Yi3;gethAle83rp9;ena6FmpCrB;r3Ftia6P;e8o6N;leBst3Q;nt1;a03c01eZhYiWkiVmug,nobb3ZoPpMqueam3ZtGuBymb70;bDi generis,pBr5;erBre1O;! dupAb,viX;du1sBurb50;eq73tanda7P;atu69eFi0UrByl3T;aBin4D;ightBy; fBfB;or5X;adfa7Hri6;arCeBirit1lend9ot on;c2Ye34;k5se; caGlub6mbAphisticFrEuCvB;erei5Iiet;ndBth0X;pro6F;d9ry;at1;ll1;g1WnB;ce57g6;am30eA;at1co1Hem5lf3AnBre7;so5V;ath2holBient2K;ar5;cr1me,tisfac5M;aJeEheumato9iCoB;bu6Xtt58y4;ghtBv4;-w2f54;bYcEdu6OlDnown1sBtard1;is3DoB;lu3na0;e1Buc3B;e0ondi3;b9ciB;al,st;aNeLicayu7laKopuli6NrCuB;bl5Vnjabi;eGiEoB;!b2QfCmi3BpBv4Vxi1Z;er,ort60;a7u63;maBor,sti7va3;!ry;ci60exist2mBpa9;a1Oi63;c9id;ac28rBti3;fe67ma32ti32v5V;i28rCsB;s5Qt;allCtB;-ti05i4;el;bMffKkJld InGrFthAutEverB;!aCni58seas,t,wB;ei57rou57;ll;do0Wer;d2Ug1M; bBbBgo2li7;oa60;fashion1school;!ay; gua5XbBli7;eat;eCsB;ce7er0Co0R;dia0se;aJeIiHoBuanc1;nDrthBt1V;!eB;rn;chaCdescri5Lprof29sB;top;la0;ght5;arby,cessa4Bighbor5xt;k1usiat2;aIeHinGoCuB;d14ltip6;deDl13nBot,st;ochroBth5;me;rn,st;dblRi;nac2re;cDgenta,in,j03keshift,mmCnBscu4E;da3Uy;ali2Ioth;ab37ho;aJeGiEoCuB;mber2sh;ngBut19;stand2term;ghtwei44teraB;l,te;ft-w2gBssAth4;al,eBi0B;nda3P;ngu9ps1st;aput,ind5nB;ow2;gno4Xll03mVnDpso 25rB;a3releB;va0; QaPcoMdJe2AfIhibi3CiWnHoGsDtBvalu0V;a4KeB;n48rdep1U;a7igColBuboD;ub6ve0;nifica0;rdi41;a3er;eriCluenOreq3X;eCiEoB;or;fini3p1Ltermi3W;mpCnside8rB;re48;le3;ccu8deq3Xppr36;fBsitu,vitro;ro0;mFpB;arDeCl0SoBropA;li3r0P;nd2rfe40;ti4;aCeBi0T;d2Yn3M;tu22;egCiB;c0Lte8;al,iB;tiB;ma3;aIelHiFoCumB;a7dr3I;me ma2BnCrrBs04ur5;if30;e3Qo2I;ghfalut1LspB;an2X;lUpf1W;lCnBrdZtI;dy;f,low1;aiHener2Siga25lob4oGraDuB;ilBng ho;ty;cCtB;ef1Ois;ef1N;od;nf1L;aPeMinLlJoErB;aCeBoz1L;q2Ptf1I;gi6nt2H;olErB; keeps,eBge0FmAtu2Owa38;go2i1BseeB;ab6;ish;ag37uB;e0oresce0;al,i3;dCmini7rB;ti6; up;bl1i0l2Hmiliar,r Bux;oBreach2;ff;aOfficie0lMmJnHqu4re2Pthere4veryday,xB;a2Oem2RplEquisi3traDuB;be2WlB;ta0;!va1G;icB;it; Bti0O;rou3sui3;erCiB;ne0;ge0;dBe18;er5;gAsB;t,ygo2;er;aQeHiCoBrea15ue;mina0ne,rma0ubK;dact1Jfficult,m,sCverB;ge0se;creCeJjoi0pa8tB;a0in23;et,te; IadpHceGfiFgene8liDpCreli21spe8voB;id,ut;ende0;ca3ghB;tf0A;a0ni3;as1;an;facto;i5ngeroX;ly;arRePivil,oErCuB;nn2stoma0M;aBu0Iystal0Y;v02z1;erKgniza0loJmInDrCveB;rt;po8ru1N;cEduHgr13jDsCtraB;dic09ry;eq11ta0;oi0ug4;a0Vi14;mensu8pass0Z;ni4ss4;ci0S;leba3rtaB;in;diac,efM;aMeFizarEliKoCrBuck nak1;and new,isk,on1F;gBldface,na fiT;us;re;autifGhiFloEnCsByoF;iPt;eUiBt;gn;v1w;nd;ul;ckCnkru0ZrrB;en;!wards; priori,b0Qc0Nd0Gf0Ag08h07l00mp6ntiquXpRrLsleep,ttracti09uHvEwB;aCkB;wa0X;ke,re;ant garCeraB;ge;de;diDtB;heBoimmu7;ntX;toG;bitEchiv4roDtiB;fiB;ci4;ga0;raB;ry;pBt;aEetiz2rB;oprB;ia3;ing;re0;at1e;ed;le;cohFiJkaDl,oCriBterP;ght;of;li7;ne;olB;ic;ead;ainZed,gressiB;ve;fCra9;id;ectClB;ue0;ioB;na3; FeDvB;erB;se;pt,qB;ua3;hoc,infinitB;um;cu8tu4u3;al;ra3;erMlKoIrFsCuB;nda0;e0olu3traB;ct;te;eaCuB;pt;st;aBve;rd;aBe;ze;ra0;nt","Adj|Past":"true¦0:2V;1:2M;2:2P;a2Eb29c1Rd19e13f0Ygift0h0Vi0Oj0Nknown,l0Km0Fn0Do0Ap03qua02rTsDt9u7v5w3;arp0ea3or5;kHth2O;a3e0U;ri0;ni3pd1s0;fi0t0;ar5hreatCr3wi2N;a3ou18;ck0in0pp0;get0ni1L;aGcaFeEhDimCm00oak0pAt6u3;bsid24gge2Is3;pe3ta1P;ct0nd0;at0e5r3uU;ength3ip0;en0;am0reotyp0;eci3ik0ott0;al1Wfi0;pHul1;ar0ut;al0c1Gle2t1O;r0tt22;t3ut0;is1Hur1;aAe3;c7duc0f1Ag6l1new0qu5s3;pe2t3;or0ri2;e1Zir0;ist1Uul1;eiv0o3;mme09rd0v1S;lli0ti18;li17;arallel0l7o6r3ump0;e4o3;ce0Ilo0Hnou1Qpos0te2;fe0Koc8pY;i1Dli0Q;a3e16;nn0;c4rgan18verlo3;ok0;cupi0;e3ot0;ed0gle2;a5e4ix0o3;di0Tt0F;as0Olt0;n3rk0;ag0ufact0M;eft,i4o3;ad0st;cens0mit0st0;agg0us0L;mp8n3sol1;br0debt0f6t3volv0;e3ox0D;gr1n3re15;d0si0H;e2oW;li0oLrov0;amm0Xe1o3;ok0r3;ri0C;aNe6i5lavo07ocus0r3;a3i0;ct05g0Jm0;niWx0;ar0;duc1mbarraKn7quipp0stabliUx3;p3te5;a4e3;ct0rie0P;nd0;ha0NsX;aIeAi3;gniZminiNre2s3;a7c5grun02t3;o3reBurb0;rt0;iplQou3;nt0rD;bl0;cenTdMf7lay0pre6ra5t3velop0;a3ermM;il0;ng0;ss0;e4o3;rm0;rr0;m3t0;ag0;alcul1eGharg0lFo8r5u3;lt3stomQ;iv1;a4owd0u3;sh0;ck0mp0;d0lo8m5n3ok0vV;centr1s3troll0;idTolid1;b4pl3;ic1;in0;ur0;assi5os0;lebr1n5r3;ti3;fi0;tralA;a6i5o3roken,urn0;il0r0t3und;tl0;as0;k0laIs0;bandon0cJdGffe2lDnBpp9ss7u3ward0;g4thor3;iz0;me3;nt0;o5u3;m0r0;li0re3;ci1;im1ticip1;at0;leg0t3;er0;ct0;ju4o6va3;nc0;st0;ce3knowledg0;pt0;ed",Determiner:"true¦aBboth,d9e6few,l4mu8neiDplenty,s3th2various,wh0;at0ich0;evC;at,e4is,ose;everal,ome;a,e0;!ast,s;a1i6l0very;!se;ch;e0u;!s;!n0;!o0y;th0;er",Adverb:"true¦a09b05d01eXfRhPinOjustNkinda,likewi00mLnIoDpBquite,r8s4t1up0very,well; to,wards5;h1iny bit,o0wiO;o,t6w05;en,us;eldom,o0uch;!me1rt0; of;hZtimes,w0B;a1e0;alT;ndomSthN;ar excellDer0oint blank; Nhaps;f3n0;ce0ly;! 0;ag04moY; courIten;ewKo0; longEt 0;onIwithstanding;aybe,eanwhiAore0;!ovB;! aboW;deed,steX;en0;ce;or2u0;lArther0;!moL; 0ev3;examp0good,suJ;le;n1v0;er; mas0ough;se;e0irect1; 1finite0;ly;juAtrop;ackw2y 0;far,n0;ow;ard; DbroCd nauseam,gBl6ny3part,s2t 0w4;be6l0mo6wor6;arge,ea5; soon,ide;mo1w0;ay;re;l 1mo0one,ready,so,ways;st;b1t0;hat;ut;ain;ad;lot,posteriori",Currency:"true¦$,aud,bQcOdJeurIfHgbp,hkd,iGjpy,kElDp8r7s3usd,x2y1z0¢,£,¥,ден,лв,руб,฿,₡,₨,€,₭,﷼;lotyQł;en,uanP;af,of;h0t5;e0il5;k0q0;elK;oubleJp,upeeJ;e2ound st0;er0;lingG;n0soF;ceEnies;empi7i7;n,r0wanzaCyatC;!onaBw;ls,nr;ori7ranc9;!os;en3i2kk,o0;b0ll2;ra5;me4n0rham4;ar3;e0ny;nt1;aht,itcoin0;!s","Adj|Present":"true¦a00bluZcRdMeKfHhollGidNlEmCnarrGoBp9qua8r7s4t2utt3w0;aIet,ound,ro0;ng,ug01;end0hin,op;er;e1l0mooth,our,pa8u8;i2ow;cu6daVlNpaJ;eplicaUigV;ck;aDr0;eseOime,ompt;bscu1pen,wn;atu0eLodeD;re;ay,eJi0;gNve;ow;i1r0;ee,inge;rm;l0mpty,xpress;abo4ic7;amp,e2i1oub0ry;le;ffu8r5;fu7libe0;raB;l4o0;mple9n2ol,rr1unterfe0;it;ect;juga6sum5;e1o0;se;an;nt;lig2pproxi0;ma0;te;ht",Comparable:"true¦0:3B;1:3Q;2:3F;3:2D;a3Ub3Cc30d2Qe2Jf27g1Vh1Li1Fj1Ek1Bl14m0Yn0To0Sp0Jqu0Hr08sJtEuDvBw5y4za0R;el11ou3A;a8e6hi1Hi4ry;ck0Dde,l4n1ry,se;d,y;a4i3T;k,ry;nti34ry;a4erda2ulgar;gue,in,st;g0pcomi31;a7en2Thi6i5ough,r4;anqu28en1ue;dy,g36me0ny,r03;ck,rs24;ll,me,rt,wd3I;aRcarQePhNiMkin0BlImGoEpDt7u5w4;eet,ift;b4dd0Vperfi1Wrre24;sta22t3;a8e7iff,r5u4;pUr1;a4ict,o2P;ig2Wn0N;a1ep,rn;le,rk;e1Oi2Wright0;ci1Vft,l4on,re;emn,id;a4el0;ll,rt;e6i4y;g2Nm4;!y;ek,nd2T;ck,l0mp3;a4iRort,rill,y;dy,l01rp;ve0Ixy;ce,y;d,fe,int0l1Ev0U;a9e7i6o4ude;mantic,o16sy,u4;gh,nd;ch,pe,tzy;a4d,mo0A;dy,l;gg5ndom,p4re,w;id;ed;ai2i4;ck,et;hoBi1ClAo9r6u4;ny,r4;e,p3;egna2ic5o4;fouSud;ey,k0;liXor;ain,easa2;ny;dd,i0ld,ranL;aive,e6i5o4;b3isy,rm0Vsy;ce,mb3;a4w;r,t;ad,e6ild,o5u4;nda0Yte;ist,o1;a5ek,l4;low;s0ty;a8ewd,i7o4ucky;f0Gn5o12u4ve0w0Wy0K;d,sy;e0g;ke0tt3ve0;me,r4te;ge;e5i4;nd;en;ol0ui1B;cy,ll,n4;secu7t4;e4ima5;llege2rmedia4;te;re;aBe8i7o6u4;ge,m4ng1E;b3id;me0t;gh,l0;a4fVsita2;dy,v4;en0y;nd15ppy,r4;d,sh;aEenDhBiAl9oofy,r4;a7e6is0o4ue12;o4ss;vy;at,en,y;nd,y;ad,ib,ooE;a2d1;a4o4;st0;t3uiS;u1y;aDeeb3i9lat,o7r6u4;ll,n4r0S;!ny;aDesh,iend0;a4rmEul;my;erce5nan4;ciB;! ;le;ir,ke,n08r,st,ul4;ty;a7erie,sse5v4xtre0G;il;nti4;al;r5s4;tern,y;ly,th0;aCe9i6ru5u4;ll,mb;nk;r5vi4;ne;e,ty;a4ep,nB;d4f,r;!ly;ppVrk;aDhAl8o6r5u4;dd0r0te;isp,uel;ar4ld,mmon,st0ward0zy;se;e4ou1;ar,vO;e4il0;ap,e4;sy;gey,lm,ri4;ng;aJiHlEoCr6u4;r0sy;ly;a8i5o4;ad,wn;g5llia2;nt;ht;sh,ve;ld,un4;cy;a5o4ue;nd,o1;ck,nd;g,tt4;er;d,ld,w1;dy;bsu7ng6we4;so4;me;ry;rd",Infinitive:"true¦0:8U;1:8F;2:9C;3:90;4:7Z;5:7M;6:98;7:81;8:9F;9:91;A:9G;B:8W;C:7T;D:7P;E:7J;F:86;a7Zb7Dc6Nd5Fe4Df43g3Zh3Vi3Bj38k36l2Xm2Rnou3Uo2Mp25qu24r1As08tWuRvPwG;aMeLiJrG;eHiG;ng,te;ak,st4;d5e7BthG;draw,er;a2d,ep;i2ke,nGrn;d0t;aGie;li9Bni8ry;nGplift;cov0dHear7GlGplug,tie,ve82;ea8o3J;erGo;go,sta9Dval93whelm;aPeNhKoJrG;aGemb4;ffi3Emp4nsG;aCpi7;pp4ugh5;aHiHrGwaD;eat5i2;nk;aGll,m8Z;ch,se;ck4ilor,keGmp0r7K;! paD;a0Gc0Fe0Dh09i07l05m04n03o01pWquVtOuJwG;all6YeeHiG;m,ng;p,t5;bIccumb,ffHggeBmm8Zp2DrG;mouFvi2;er,i3;li7Wmer9siGveD;de,st;aKe7PiIrG;ang4eGi2;ng1Zw;fGnW;f5le;gg0rG;t4ve;a3Pi8;awn,eJiIlHoGri68;il,of;ay,it;ll,t;ak,nd;lGot6Iw;icEve;eak,i0K;a8ugg4;aGiA;m,y;ft,nGt;g,k;aIi5CoHriGun;nk,v5O;ot,rt5;ke,rp5tt0ve;eGll,nd,que7Hv0w;!k,m;aven9ul7V;dd5tis16y;att4eHip5oG;am,ut;a05b03c01d00fXgroup,heaWiVlTmSnRpPq2YsLtJvG;amp,eHiGo2N;sEve;l,rt;i7rG;ie2ofE;eFiItGurfa3;aDo1TrG;a5QiCuctu7;de,gn,st;el,hra1lGreseF;a3e63;d0ew,o02;a5Le2To2;a6eFiGoad,y;e2nq3Dve;mbur1nf2M;r1t;inHleCocus,re8uG;el,rbi8;an3e;aCu3;ei2k7Dla3GoGyc4;gni54nci4up,v0;oot,uG;ff;ct,d,liG;se,ze;a8en5Kit,o6;aUerSiRlumm0SoQrIuG;b3Hke,ni8rGt;poDs6R;eKoG;cId,fe31hibEnoHpo1sp0truAvG;e,iAo4P;un3;la32u7;a5Bc1LdHf0ocSsup0CvG;a5GeF;etermi3ZiC;a58rt4Q;er3npoiF;cei2fo39i8mea6plex,sGvaA;eve7iB;mp0n11rGtrol,ve,y;a5Mt5I;bser2cJpIutHverGwe;lap,s13tu64u1;gr4Jnu1Upa3;era6i3Ppo1;cupy;aKe06iHoGultiply;leBu5Z;micHnGspla3;ce,g4us;!k;im,ke,na9;aNeJiGo1u33;e,ke,ng0quGv5;eGi62;fy;aInG;d,gG;th5;rn,ve;ng1Zu18;eep,nG;e3Kow;o42uG;gg4xtaG;po1;gno7mUnG;cSdQfPgeBhOitia6ju7q0YsMtIun5PvG;eGo0N;nt,st;erHimi5MoxiOrG;odu3uA;aCn,prGru5M;et;iBpi7tGu7;il,ruC;abEibE;eBo25u1;iGul9;ca6;i6luA;b58mer1pG;aDer43ly,oHrG;is5Jo2;rt,se,veG;ri8;aIear,iGoiBuD;de,jaGnd0;ck;mp0ng,pp5ve;ath0et,i2le1PoIrG;aGow;b,pp4ze;!ve4P;ast5er3Ii55lOorJrHuG;lf3Qr3M;ee2YolG;ic;b3BeIfeEgGs49;eGi2;!t;clo1go,sGwa4H;had2W;ee,i2L;a0FdEl0Dm08nQquip,rPsOt3BvMxG;cKeDha4iJpHtG;ing0Pol;eGi7loEo1un9;ct,di6;st,t;luA;alua6oG;ke,l2;chew,pou1tab11;a1u4G;aWcTdRfQgOhan3joy,lNqMrLsuKtIvG;e0TisG;a9i4L;er,i3rG;a2Ien2WuB;e,re;i2Uol;ui7;ar9iB;a9eGra2ulf;nd0;or3;ang0oGu7;r1w;lo1ou0ArHuG;mb0;oa2Ky3Z;b4ct;bHer9pG;hasi1Wow0;a0Sody,rG;a3oiG;d0l;ap1eCuG;ci3Pde;rGt;ma0Mn;a0Me01iIo,rGwind4;aw,ed9oG;p,wn;agno1e,ff0g,mi28sJvG;eGul9;rGst;ge,t;ab4bTcNlod9mant4pLru3HsKtG;iGoDu2X;lHngG;ui8;!l;ol2uaA;eGla3o1ro2;n1r1;a2Oe2XlJoHuG;ss;uGv0;ra9;aGo1;im;a38ur1;af5bXcRduCep5fPliOmLnJpIra1Tta1NvG;eGol2;lop;aDiCoD;oGy;te,un3;eHoG;li8;an;mEv0;a3i03oGraud,y;rm;ei2iKoIrG;ee,yG;!pt;de,mGup4;missi2Upo1;de,ma6ph0;aHrief,uG;g,nk;rk;mp5rk5uF;a03ea1h01i00lZoHrGurta17;a2ea6ipp4;ales3eWhabEinciAllVmTnGrroA;cQdNfLju7no6qu0sJtIvG;eGin3;ne,r9;a0Hin25ribu6;er2iGoli27pi7titu6ult;d0st;iGroFu1;de,gu7rm;eHoG;ne;mn,n1;eGluA;al,i2;buBe,men3pG;e6ly;eCiAuA;r3xiB;ean1iQ;rcumveFte;eGoo1;ri8w;ncGre5t0ulk;el;aYeSiRlOoNrJuG;iHrGy;st,y;ld;aIeHiGoad5;ng;astfeJed;ke;il,l12mba0XrrMth0;aHeGow;ed;ze;de,nd;!come,gKha2liJnd,queaIstHtGwild0;ray;ow;th;e2tt4;in;bysEckfi7ff4tG;he;it;b15c0Td0Kff0Igr0Hl0Dm09n03ppZrXsQttNuLvIwaG;it,k5;en;eDoG;id;rt;gGto06;meF;aHeBraC;ct;ch;pi7sHtoG;ni8;aIeGi03u7;mb4rt;le;il;re;g0Hi1ou1rG;an9i2;eaIly,oiFrG;ai1o2;nt;r,se;aKiOnHtG;icipa6;eHoGul;un3y;al;ly1;aHu1;se;lgaGze;ma6;iIlG;e9oGuA;t,w;gn;ee;ix,oG;rd;aZjLmiIoHsoG;rb;pt,rn;niGt;st0;er;ouHuB;st;rn;cJhie2knowled9quiGtiva6;es3re;ce;ge;eMomIrHusG;e,tom;ue;moHpG;any,li8;da6;te;pt;andMet,iAoIsG;coIol2;ve;li8rt,uG;nd;sh;de;on",Participle:"true¦f4g3h2less6s1w0;ors5ritt5;e4h5;ast3e2;iv2one;l2r0;ight0;en;own",Modal:"true¦c5lets,m4ought3sh1w0;ill,o5;a0o4;ll,nt;! to,a;ight,ust;an,o0;uld","Adj|Gerund":"true¦0:2C;1:2E;2:22;3:20;4:1X;5:24;a1Zb1Uc1Cd0Ze0Uf0Kg0Eh0Di07jud1Sl04m01oXpTrNsCt7up6veWw0Lyiel4;lif0sZ;aUe9hr7i3ouc22r6wis0;eZoub2us0yi1;ea0Ji6;l2vi1;l2mp0;atisf28creec1Xhoc0Bkyrocke0lo0ZoEpDt9u7we6;e0Yl2;pp1Gr6;gi1pri5roun4;a7ea1Zi6ri07un18;mula0r3;gge3r6;t2vi1;ark2ee4;a6ot1O;ki1ri1;aAe7ive0o6us1M;a3l2;defi0Zfres1Kig0ZlaCs0v6war4;ea2itali6ol0M;si1zi1;gi1ll1Smb2vi1;a1Rerple8ier19lun14r6un1F;e6o0X;ce4s5vai2;xi1;ffs8pKut7ver6wi1;arc1Blap0Dri4whel1H;goi1l1Lst0U;et0;eande3i7o0Bu6;mb2;s5tiga0;a7i6o08;fesa07mi0vi1;cHg0Rs0;mAn6rri08;c8s7te13vi6;go1Cti1;pi3ul0;orpo1Area5;po5;arrowi1ea2orrif17umilia0;lAr6;a0ipWo7uel6;i1li1;undbrea6wi1;ki1;a3ea0W;aEetc0Pit0lBo9r7ulf6;il2;ee0Vigh6ust0Z;te01;r6un4;ebo4th0E;a7o6;a0we3;mi1tte3;di1scina0;m9n7x6;ac0ci0is0plo4;ab2c6du3ga01sQ;han0oura00;barras5erZpowe3;aHeAi6;s6zz0K;appoin0gus0sen0t6;r6u0L;ac0es5;biliBcAfiKgra4m9pres5ser8v6;asAelo6;pi1;vi1;an4eaG;a0BliF;ta0;maMri1sYun0;aMhJlo5o6ripp2ut0;mCn6rrespon4;cerAf9spi3t6vinO;in7r6;as0ibu0ol2;ui1;lic0u5;ni1;fAm9p6;e7ro6;mi5;l2ti1;an4;or0;a6ea0il2;llen6rO;gi1;lMptiva0;e9in4lin4o7rui5u6;d4st2;i2oJri1un6;ci1;coH;bsoOcJgonHlarGmEppea2rCs6;pi3su3to6;n7un4;di1;is6;hi1;ri1;res0;li1;a9u5;si1;mi1;i6zi1;zi1;c6hi1;ele7ompan6;yi1;ra0;ti1;rbi1;ng","Person|Verb":"true¦b2ch1drew,grant,ja3ma0ollie,pat,rob,sue,wade;ck,rk;ase,u1;ob,u0;ck","Person|Place":"true¦a5darw6h3jordan,k2orlando,s0victo7;a0ydney;lvador,mara,ntiago;ent,obe;amil0ous0;ton;lexand1ust0;in;ria","Person|Date":"true¦a2j0sep;an0une;!uary;p0ugust,v0;ril"};const Po="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Ao=Po.split("").reduce((function(e,t,n){return e[t]=n,e}),{});var Eo=function(e){if(void 0!==Ao[e])return Ao[e];let t=0,n=1,r=36,a=1;for(;n=0;n--,a*=36){let r=e.charCodeAt(n)-48;r>10&&(r-=7),t+=r*a}return t};var jo=function(e){const t=new RegExp("([0-9A-Z]+):([0-9A-Z]+)");for(let n=0;n{let o=e.nodes[r];"!"===o[0]&&(t.push(a),o=o.slice(1));const i=o.split(/([A-Z0-9,]+)/g);for(let o=0;o{const n=t.split("¦");return e[n[0]]=n[1],e}),{}),n={};return Object.keys(t).forEach((function(e){const r=No(t[e]);"true"===e&&(e=!0);for(let t=0;t{let t=Do(ko[e]);Go.test(e)?Object.keys(t).forEach((t=>{if(Bo[t]=e,"Noun|Verb"===e){let e=To(t,zo);Bo[e]="Plural|Verb"}})):Object.keys(t).forEach((t=>{Oo[t]=e}))})),[":(",":)",":P",":p",":O",";(",";)",";P",";p",";O",":3",":|",":/",":\\",":$",":*",":@",":-(",":-)",":-P",":-p",":-O",":-3",":-|",":-/",":-\\",":-$",":-*",":-@",":^(",":^)",":^P",":^p",":^O",":^3",":^|",":^/",":^\\",":^$",":^*",":^@","):","(:","$:","*:",")-:","(-:","$-:","*-:",")^:","(^:","$^:","*^:","<3","Oo[e]="Emoticon")),delete Oo[""],delete Oo.null,delete Oo[" "];const Ho="Adjective";var Vo={beforeTags:{Determiner:Ho,Possessive:Ho},afterTags:{Adjective:Ho},beforeWords:{seem:Ho,seemed:Ho,seems:Ho,feel:Ho,feels:Ho,felt:Ho,appear:Ho,appears:Ho,appeared:Ho,also:Ho,over:Ho,under:Ho,too:Ho,it:Ho,but:Ho,still:Ho,really:Ho,quite:Ho,well:Ho,very:Ho,deeply:Ho,profoundly:Ho,extremely:Ho,so:Ho,badly:Ho,mostly:Ho,totally:Ho,awfully:Ho,rather:Ho,nothing:Ho,something:Ho,anything:Ho,not:Ho,me:Ho,is:Ho},afterWords:{too:Ho,also:Ho,or:Ho}};const Fo="Gerund";var $o={beforeTags:{Adverb:Fo,Preposition:Fo,Conjunction:Fo},afterTags:{Adverb:Fo,Possessive:Fo,Person:Fo,Pronoun:Fo,Determiner:Fo,Copula:Fo,Preposition:Fo,Conjunction:Fo,Comparative:Fo},beforeWords:{been:Fo,keep:Fo,continue:Fo,stop:Fo,am:Fo,be:Fo,me:Fo,began:Fo,start:Fo,starts:Fo,started:Fo,stops:Fo,stopped:Fo,help:Fo,helps:Fo,avoid:Fo,avoids:Fo,love:Fo,loves:Fo,loved:Fo,hate:Fo,hates:Fo,hated:Fo},afterWords:{you:Fo,me:Fo,her:Fo,him:Fo,them:Fo,their:Fo,it:Fo,this:Fo,there:Fo,on:Fo,about:Fo,for:Fo}};var So={beforeTags:Object.assign({},Vo.beforeTags,$o.beforeTags,{Imperative:"Gerund",Infinitive:"Adjective",PresentTense:"Gerund",Plural:"Gerund"}),afterTags:Object.assign({},Vo.afterTags,$o.afterTags,{Singular:"Adjective"}),beforeWords:Object.assign({},Vo.beforeWords,$o.beforeWords,{is:"Adjective",was:"Adjective",suggest:"Gerund",recommend:"Gerund"}),afterWords:Object.assign({},Vo.afterWords,$o.afterWords,{to:"Gerund",not:"Gerund",the:"Gerund"})};const Jo="Singular";var Mo={beforeTags:{Determiner:Jo,Possessive:Jo,Acronym:Jo,Noun:Jo,Adjective:Jo,PresentTense:Jo,Gerund:Jo,PastTense:Jo,Infinitive:Jo,Date:Jo},afterTags:{Value:Jo,Modal:Jo,Copula:Jo,PresentTense:Jo,PastTense:Jo,Demonym:Jo},beforeWords:{the:Jo,with:Jo,without:Jo,of:Jo,for:Jo,any:Jo,all:Jo,on:Jo,cut:Jo,cuts:Jo,save:Jo,saved:Jo,saves:Jo,make:Jo,makes:Jo,made:Jo,minus:Jo,plus:Jo,than:Jo,another:Jo,versus:Jo,neither:Jo,favorite:Jo,best:Jo,daily:Jo,weekly:Jo,linear:Jo,binary:Jo,mobile:Jo,lexical:Jo,technical:Jo,computer:Jo,scientific:Jo,formal:Jo},afterWords:{of:Jo,system:Jo,aid:Jo,method:Jo,utility:Jo,tool:Jo,reform:Jo,therapy:Jo,philosophy:Jo,room:Jo,authority:Jo,says:Jo,said:Jo,wants:Jo,wanted:Jo,is:Jo}};const Lo={beforeTags:{Determiner:void 0,Cardinal:"Noun"}};var Wo={beforeTags:Object.assign({},Vo.beforeTags,Mo.beforeTags,Lo.beforeTags),afterTags:Object.assign({},Vo.afterTags,Mo.afterTags),beforeWords:Object.assign({},Vo.beforeWords,Mo.beforeWords,{are:"Adjective",is:"Adjective",was:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vo.afterWords,Mo.afterWords)};let Ko="PastTense";const qo={beforeTags:{Adverb:Ko,Pronoun:Ko,ProperNoun:Ko,Auxiliary:Ko,Noun:Ko},afterTags:{Possessive:Ko,Pronoun:Ko,Determiner:Ko,Adverb:Ko,Comparative:Ko,Date:Ko},beforeWords:{be:Ko,who:Ko,get:"Adjective",had:Ko,has:Ko,have:Ko,been:Ko,it:Ko,as:Ko,for:"Adjective"},afterWords:{by:Ko,back:Ko,out:Ko,in:Ko,up:Ko,down:Ko,for:Ko,the:Ko,with:Ko,as:Ko,on:Ko,at:Ko}};var Uo={beforeTags:Object.assign({},Vo.beforeTags,qo.beforeTags),afterTags:Object.assign({},Vo.afterTags,qo.afterTags),beforeWords:Object.assign({},Vo.beforeWords,qo.beforeWords),afterWords:Object.assign({},Vo.afterWords,qo.afterWords)};const Ro="Infinitive";var Qo={beforeTags:{Modal:Ro,Adverb:Ro,Negative:Ro,Plural:Ro},afterTags:{Determiner:Ro,Adverb:Ro,Possessive:Ro,Preposition:Ro},beforeWords:{i:Ro,we:Ro,you:Ro,they:Ro,to:Ro,please:Ro,will:Ro,have:Ro,had:Ro,would:Ro,could:Ro,should:Ro,do:Ro,did:Ro,does:Ro,can:Ro,must:Ro,us:Ro,me:Ro,he:Ro,she:Ro,it:Ro,being:Ro},afterWords:{the:Ro,me:Ro,you:Ro,him:Ro,her:Ro,them:Ro,it:Ro,a:Ro,an:Ro,up:Ro,down:Ro,by:Ro,out:Ro,off:Ro,under:Ro,when:Ro,all:Ro,to:Ro,because:Ro,although:Ro,before:Ro,how:Ro,otherwise:Ro,together:Ro,though:Ro,yet:Ro}};const Zo={afterTags:{Noun:"Adjective",Conjunction:void 0}};var Xo={beforeTags:Object.assign({},Vo.beforeTags,Qo.beforeTags,{Adverb:void 0,Negative:void 0}),afterTags:Object.assign({},Vo.afterTags,Qo.afterTags,Zo.afterTags),beforeWords:Object.assign({},Vo.beforeWords,Qo.beforeWords,{have:void 0,had:void 0,not:void 0,went:"Adjective",goes:"Adjective",got:"Adjective",be:"Adjective"}),afterWords:Object.assign({},Vo.afterWords,Qo.afterWords,{to:void 0})};const _o={Copula:"Gerund",PastTense:"Gerund",PresentTense:"Gerund",Infinitive:"Gerund"},Yo={},ei={are:"Gerund",were:"Gerund",be:"Gerund",no:"Gerund",without:"Gerund",you:"Gerund",we:"Gerund",they:"Gerund",he:"Gerund",she:"Gerund",us:"Gerund",them:"Gerund"},ti={the:"Gerund",this:"Gerund",that:"Gerund",me:"Gerund",us:"Gerund",them:"Gerund"};var ni={beforeTags:Object.assign({},$o.beforeTags,Mo.beforeTags,_o),afterTags:Object.assign({},$o.afterTags,Mo.afterTags,Yo),beforeWords:Object.assign({},$o.beforeWords,Mo.beforeWords,ei),afterWords:Object.assign({},$o.afterWords,Mo.afterWords,ti)};var ri={beforeTags:Object.assign({},Qo.beforeTags,Mo.beforeTags,{Adjective:"Singular"}),afterTags:Object.assign({},Qo.afterTags,Mo.afterTags,{ProperNoun:"Infinitive",Gerund:"Infinitive",Adjective:"Infinitive",Copula:"Singular"}),beforeWords:Object.assign({},Qo.beforeWords,Mo.beforeWords,{is:"Singular",was:"Singular",of:"Singular"}),afterWords:Object.assign({},Qo.afterWords,Mo.afterWords,{instead:"Infinitive",about:"Infinitive",to:null,by:null,in:null})};const ai="Person";var oi={beforeTags:{Honorific:ai,Person:ai,Preposition:ai},afterTags:{Person:ai,ProperNoun:ai,Verb:ai},ownTags:{ProperNoun:ai},beforeWords:{hi:ai,hey:ai,yo:ai,dear:ai,hello:ai},afterWords:{said:ai,says:ai,told:ai,tells:ai,feels:ai,felt:ai,seems:ai,thinks:ai,thought:ai,spends:ai,spendt:ai,plays:ai,played:ai,sing:ai,sang:ai,learn:ai,learned:ai,wants:ai,wanted:ai}};const ii="Month",si={beforeTags:{Date:ii,Value:ii},afterTags:{Date:ii,Value:ii},beforeWords:{by:ii,in:ii,on:ii,during:ii,after:ii,before:ii,between:ii,until:ii,til:ii,sometime:ii,of:ii,this:ii,next:ii,last:ii,previous:ii,following:ii},afterWords:{sometime:ii,in:ii,of:ii,until:ii,the:ii}};var li={beforeTags:Object.assign({},oi.beforeTags,si.beforeTags),afterTags:Object.assign({},oi.afterTags,si.afterTags),beforeWords:Object.assign({},oi.beforeWords,si.beforeWords),afterWords:Object.assign({},oi.afterWords,si.afterWords)};const ui="Place",ci={beforeTags:{Place:ui},afterTags:{Place:ui,Abbreviation:ui},beforeWords:{in:ui,by:ui,near:ui,from:ui,to:ui},afterWords:{in:ui,by:ui,near:ui,from:ui,to:ui,government:ui,council:ui,region:ui,city:ui}};let hi="Unit";const di="Honorific";let gi={first:di,general:di,royal:di,vice:di,rear:di,major:di};const mi={"Adj|Gerund":So,"Adj|Noun":Wo,"Adj|Past":Uo,"Adj|Present":Xo,"Noun|Verb":ri,"Noun|Gerund":ni,"Person|Noun":{beforeTags:Object.assign({},Mo.beforeTags,oi.beforeTags),afterTags:Object.assign({},Mo.afterTags,oi.afterTags),beforeWords:Object.assign({},Mo.beforeWords,oi.beforeWords,{i:"Infinitive",we:"Infinitive"}),afterWords:Object.assign({},Mo.afterWords,oi.afterWords)},"Person|Date":li,"Person|Verb":{beforeTags:Object.assign({},oi.beforeTags,Qo.beforeTags),afterTags:Object.assign({},oi.afterTags,Qo.afterTags),beforeWords:Object.assign({},oi.beforeWords,Qo.beforeWords),afterWords:Object.assign({},oi.afterWords,Qo.afterWords)},"Person|Place":{beforeTags:Object.assign({},ci.beforeTags,oi.beforeTags),afterTags:Object.assign({},ci.afterTags,oi.afterTags),beforeWords:Object.assign({},ci.beforeWords,oi.beforeWords),afterWords:Object.assign({},ci.afterWords,oi.afterWords)},"Unit|Noun":{beforeTags:{Value:hi},afterTags:{},beforeWords:{per:hi,every:hi,each:hi,square:hi,cubic:hi,sq:hi,metric:hi},afterWords:{per:hi,squared:hi,cubed:hi,long:hi}},"Honorific|Noun":{beforeTags:{Honorific:di,ProperNoun:di,Ordinal:di},afterTags:{Person:di,ProperNoun:di},beforeWords:Object.assign({},gi,{honorable:di,honourable:di,worship:di,excellency:di,majesty:di,right:di}),afterWords:gi}},pi=(e,t)=>{let n=Object.keys(e).reduce(((t,n)=>(t[n]="Infinitive"===e[n]?"PresentTense":"Plural",t)),{});return Object.assign(n,t)};mi["Plural|Verb"]={beforeWords:pi(mi["Noun|Verb"].beforeWords,{had:"Plural",have:"Plural"}),afterWords:pi(mi["Noun|Verb"].afterWords,{his:"PresentTense",her:"PresentTense",its:"PresentTense",in:null,to:null}),beforeTags:pi(mi["Noun|Verb"].beforeTags,{Conjunction:"PresentTense",Noun:void 0,ProperNoun:"PresentTense"}),afterTags:pi(mi["Noun|Verb"].afterTags,{Gerund:"Plural",Noun:"PresentTense",Value:"PresentTense"})};var fi=mi;const bi="Adjective",vi="Infinitive",yi="PresentTense",wi="Singular",ki="PastTense",Pi="Adverb",Ai="Plural",Ei="Verb",ji="LastName",Ii="Participle";var Ni=[null,null,{ea:wi,ia:"Noun",ic:bi,ly:Pi,"'n":Ei,"'t":Ei},{oed:ki,ued:ki,xed:ki," so":Pi,"'ll":"Modal","'re":"Copula",azy:bi,eer:"Noun",end:Ei,ped:ki,ffy:bi,ify:vi,ing:"Gerund",ize:vi,ibe:vi,lar:bi,mum:bi,nes:yi,nny:bi,ous:bi,que:bi,rol:wi,sis:wi,ogy:wi,oid:wi,ian:wi,zes:yi,eld:ki,ken:Ii,ven:Ii,ten:Ii,ect:vi,ict:vi,ign:vi,ful:bi,bal:bi},{amed:ki,aped:ki,ched:ki,lked:ki,rked:ki,reed:ki,nded:ki,mned:bi,cted:ki,dged:ki,ield:wi,akis:ji,cede:vi,chuk:ji,czyk:ji,ects:yi,ends:Ei,enko:ji,ette:wi,wner:wi,fies:yi,fore:Pi,gate:vi,gone:bi,ices:Ai,ints:Ai,ruct:vi,ines:Ai,ions:Ai,less:bi,llen:bi,made:bi,nsen:ji,oses:yi,ould:"Modal",some:bi,sson:ji,tion:wi,tage:"Noun",ique:wi,tive:bi,tors:"Noun",vice:wi,lier:wi,fier:wi,wned:ki,gent:wi,tist:wi,pist:wi,rist:wi,mist:wi,yist:wi,vist:wi,lite:wi,site:wi,rite:wi,mite:wi,bite:wi,mate:wi,date:wi,ndal:wi,vent:wi,uist:wi,gist:wi,note:wi,cide:wi,wide:bi,vide:vi,ract:vi,duce:vi,pose:vi,eive:vi,lyze:vi,lyse:vi,iant:bi,nary:bi},{elist:wi,holic:wi,phite:wi,tized:ki,urned:ki,eased:ki,ances:Ai,bound:bi,ettes:Ai,fully:Pi,ishes:yi,ities:Ai,marek:ji,nssen:ji,ology:"Noun",osome:wi,tment:wi,ports:Ai,rough:bi,tches:yi,tieth:"Ordinal",tures:Ai,wards:Pi,where:Pi,archy:"Noun",pathy:"Noun",opoly:"Noun",embly:"Noun",phate:"Noun",ndent:wi,scent:wi,onist:wi,anist:wi,alist:wi,olist:wi,icist:wi,ounce:vi,iable:bi,borne:bi,gnant:bi,inant:bi,igent:bi,atory:bi,rient:wi,dient:wi},{auskas:ji,parent:wi,cedent:wi,ionary:wi,cklist:wi,keeper:"Actor",logist:"Actor",teenth:"Value"},{opoulos:ji,borough:"Place",sdottir:ji}];const Di="Adjective";var xi=[null,null,{},{neo:"Noun",bio:"Noun","de-":"Verb","re-":"Verb","un-":"Verb"},{anti:"Noun",auto:"Noun",faux:Di,hexa:"Noun",kilo:"Noun",mono:"Noun",nano:"Noun",octa:"Noun",poly:"Noun",semi:Di,tele:"Noun","pro-":Di,"mis-":"Verb","dis-":"Verb","pre-":Di},{anglo:"Noun",centi:"Noun",ethno:"Noun",ferro:"Noun",grand:"Noun",hepta:"Noun",hydro:"Noun",intro:"Noun",macro:"Noun",micro:"Noun",milli:"Noun",nitro:"Noun",penta:"Noun",quasi:Di,radio:"Noun",tetra:"Noun","omni-":Di,"post-":Di},{pseudo:Di,"extra-":Di,"hyper-":Di,"inter-":Di,"intra-":Di,"deca-":Di},{electro:"Noun"}];const Ci="Adjective",Ti="Infinitive",Gi="PresentTense",Oi="Singular",Bi="PastTense",zi="Expression",Hi="LastName";var Vi={a:[[/.[aeiou]na$/,"Noun","tuna"],[/.[oau][wvl]ska$/,Hi],[/.[^aeiou]ica$/,Oi,"harmonica"],[/^([hyj]a+)+$/,zi,"haha"]],c:[[/.[^aeiou]ic$/,Ci]],d:[[/[aeiou](pp|ll|ss|ff|gg|tt|rr|bb|nn|mm)ed$/,Bi,"popped"],[/.[aeo]{2}[bdgmnprvz]ed$/,Bi,"rammed"],[/.[aeiou][sg]hed$/,Bi,"gushed"],[/.[aeiou]red$/,Bi,"hired"],[/.[aeiou]r?ried$/,Bi,"hurried"],[/[^aeiou]ard$/,Oi,"steward"],[/[aeiou][^aeiou]id$/,Ci,""],[/.[vrl]id$/,Ci,"livid"],[/..led$/,Bi,"hurled"],[/.[iao]sed$/,Bi,""],[/[aeiou]n?[cs]ed$/,Bi,""],[/[aeiou][rl]?[mnf]ed$/,Bi,""],[/[aeiou][ns]?c?ked$/,Bi,"bunked"],[/[aeiou]gned$/,Bi],[/[aeiou][nl]?ged$/,Bi],[/.[tdbwxyz]ed$/,Bi],[/[^aeiou][aeiou][tvx]ed$/,Bi],[/.[cdflmnprstv]ied$/,Bi,"emptied"]],e:[[/.[lnr]ize$/,Ti,"antagonize"],[/.[^aeiou]ise$/,Ti,"antagonise"],[/.[aeiou]te$/,Ti,"bite"],[/.[^aeiou][ai]ble$/,Ci,"fixable"],[/.[^aeiou]eable$/,Ci,"maleable"],[/.[ts]ive$/,Ci,"festive"],[/[a-z]-like$/,Ci,"woman-like"]],h:[[/.[^aeiouf]ish$/,Ci,"cornish"],[/.v[iy]ch$/,Hi,"..ovich"],[/^ug?h+$/,zi,"ughh"],[/^uh[ -]?oh$/,zi,"uhoh"],[/[a-z]-ish$/,Ci,"cartoon-ish"]],i:[[/.[oau][wvl]ski$/,Hi,"polish-male"]],k:[[/^(k){2}$/,zi,"kkkk"]],l:[[/.[gl]ial$/,Ci,"familial"],[/.[^aeiou]ful$/,Ci,"fitful"],[/.[nrtumcd]al$/,Ci,"natal"],[/.[^aeiou][ei]al$/,Ci,"familial"]],m:[[/.[^aeiou]ium$/,Oi,"magnesium"],[/[^aeiou]ism$/,Oi,"schism"],[/^[hu]m+$/,zi,"hmm"],[/^\d+ ?[ap]m$/,"Date","3am"]],n:[[/.[lsrnpb]ian$/,Ci,"republican"],[/[^aeiou]ician$/,"Actor","musician"],[/[aeiou][ktrp]in'$/,"Gerund","cookin'"]],o:[[/^no+$/,zi,"noooo"],[/^(yo)+$/,zi,"yoo"],[/^wo{2,}[pt]?$/,zi,"woop"]],r:[[/.[bdfklmst]ler$/,"Noun"],[/[aeiou][pns]er$/,Oi],[/[^i]fer$/,Ti],[/.[^aeiou][ao]pher$/,"Actor"],[/.[lk]er$/,"Noun"],[/.ier$/,"Comparative"]],t:[[/.[di]est$/,"Superlative"],[/.[icldtgrv]ent$/,Ci],[/[aeiou].*ist$/,Ci],[/^[a-z]et$/,"Verb"]],s:[[/.[^aeiou]ises$/,Gi],[/.[rln]ates$/,Gi],[/.[^z]ens$/,"Verb"],[/.[lstrn]us$/,Oi],[/.[aeiou]sks$/,Gi],[/.[aeiou]kes$/,Gi],[/[aeiou][^aeiou]is$/,Oi],[/[a-z]'s$/,"Noun"],[/^yes+$/,zi]],v:[[/.[^aeiou][ai][kln]ov$/,Hi]],y:[[/.[cts]hy$/,Ci],[/.[st]ty$/,Ci],[/.[tnl]ary$/,Ci],[/.[oe]ry$/,Oi],[/[rdntkbhs]ly$/,"Adverb"],[/.(gg|bb|zz)ly$/,Ci],[/...lly$/,"Adverb"],[/.[gk]y$/,Ci],[/[bszmp]{2}y$/,Ci],[/.[ai]my$/,Ci],[/[ea]{2}zy$/,Ci],[/.[^aeiou]ity$/,Oi]]};const Fi="Verb",$i="Noun";var Si={leftTags:[["Adjective",$i],["Possessive",$i],["Determiner",$i],["Adverb",Fi],["Pronoun",Fi],["Value",$i],["Ordinal",$i],["Modal",Fi],["Superlative",$i],["Demonym",$i],["Honorific","Person"]],leftWords:[["i",Fi],["first",$i],["it",Fi],["there",Fi],["not",Fi],["because",$i],["if",$i],["but",$i],["who",Fi],["this",$i],["his",$i],["when",$i],["you",Fi],["very","Adjective"],["old",$i],["never",Fi],["before",$i],["a","Singular"],["the",$i],["been",Fi]],rightTags:[["Copula",$i],["PastTense",$i],["Conjunction",$i],["Modal",$i]],rightWords:[["there",Fi],["me",Fi],["man","Adjective"],["only",Fi],["him",Fi],["it",Fi],["were",$i],["took",$i],["himself",Fi],["went",$i],["who",$i],["jr","Person"]]},Ji={rules:"ig|2ger,ng|2er,hin|3ner,n|1er,ot|2ter,lat|3ter,t|1er,ray|3er,y|ier,ross|4er,im|2mer,m|1er,f|1er,b|1er,er|2,r|1er,p|1er,h|1er,w|1er,k|1er,l|1er,d|1er,e|1r",exceptions:"good|better,bad|worse,wet|3ter,lay|3er,neat|4ter,fat|3ter,mad|3der,sad|3der,wide|4r,late|4r,safe|4r,fine|4r,dire|4r,fake|4r,pale|4r,rare|4r,rude|4r,sore|4r",rev:"arger|4,esser|5,igger|2,impler|5,reer|3,hinner|3,remier|6,urer|3,aucher|5,almer|3,raver|4,uter|3,iviner|5,erier|4,enuiner|6,rosser|4,uger|3,andomer|5,emoter|5,quarer|5,taler|4,iper|3,hiter|4,rther|5,rmer|2,ayer|2,immer|2,somer|4,amer|3,adder|2,nger|2,fer|1,tler|3,cer|2,ber|1,uer|2,bler|3,tter|1,rer|1,ser|2,per|1,her|1,wer|1,ker|1,ner|1,ler|1,ter|1,der|1,ier|y"},Mi={rules:"omoting|4e,haring|3e,ploring|4e,mbining|4e,nviting|4e,belling|3,ntoring|4e,uiding|3e,orging|3e,dhering|4e,alysing|4e,nciling|4e,mpeding|4e,uoting|3e,evoting|4e,nsating|4e,gnoring|4e,roding|3e,iaising|4e,esaling|4e,rowsing|4e,rfering|4e,kating|3e,robing|3e,tponing|4e,mmuting|4e,laning|3e,moking|3e,nfining|4e,nduring|4e,nciting|4e,busing|3e,eleting|4e,esiring|4e,rbating|4e,larging|4e,ploding|4e,haking|3e,hading|3e,biding|3e,udding|2,neating|4e,craping|4e,efuting|4e,thoring|4e,eusing|3e,agining|4e,rekking|3,suading|4e,ubating|4e,ronzing|4e,euvring|4e,bliging|4e,laking|3e,riming|3e,asising|4e,lunging|4e,cilling|3,pinging|4e,hoking|3e,creting|4e,ralling|3,miling|3e,wathing|4e,edoring|4e,odding|2,aloging|4e,rseding|4e,xcusing|4e,halling|3,ialling|3,inuting|4e,xciting|4e,chuting|4e,hrining|4e,eciting|4e,xuding|3e,isusing|4e,uizzing|3,ithing|3e,izzling|4e,haling|3e,dmiring|4e,rsaking|4e,parging|4e,ixating|4e,anuring|4e,iecing|3e,erusing|4e,eething|4e,entring|4e,goating|4e,langing|4e,stining|4e,lescing|4e,erlying|3ie,pleting|4e,ausing|3e,ciding|3e,enging|3e,casing|3e,cising|3e,esiding|4e,uning|2e,delling|3,storing|4e,tiring|3e,leging|3e,piling|3e,tising|3e,ecuting|4e,eduling|4e,uelling|3,liding|3e,uging|2e,celling|3,ubing|2e,laming|3e,ebating|4e,njuring|4e,scaping|4e,truding|4e,chising|4e,vading|3e,shaping|4e,iping|2e,naming|3e,ulging|3e,raking|3e,fling|2e,taping|3e,noting|3e,lading|3e,scaling|4e,riding|3e,rasing|3e,coping|3e,ruling|3e,wining|3e,viding|3e,quiring|4e,velling|3,alyzing|4e,laring|3e,coring|3e,ranging|4e,ousing|3e,puting|3e,vening|3e,idding|2,hining|3e,urging|3e,coding|3e,niting|3e,nelling|3,dising|3e,uising|3e,caring|3e,lapsing|4e,erging|3e,pating|3e,mining|3e,ibuting|4e,coming|3e,paring|3e,taking|3e,hasing|3e,vising|3e,ituting|4e,writing|4e,eezing|3e,piring|3e,luting|3e,voking|3e,iguring|4e,uming|2e,curing|3e,mising|3e,iking|2e,edding|2,luding|3e,suring|3e,rising|3e,ribing|3e,rading|3e,ceding|3e,nsing|2e,kling|2e,fusing|3e,azing|2e,cling|2e,nising|3e,ducing|3e,rcing|2e,gling|2e,easing|3e,uating|3e,lising|3e,lining|3e,mating|3e,mming|1,pling|2e,bbing|1,vating|3e,dling|2e,dating|3e,rsing|2e,dging|2e,tling|2e,turing|3e,icing|2e,acing|2e,gating|3e,gging|1,tating|3e,rring|1,nning|1,uing|1e,bling|2e,iating|3e,cating|3e,aging|2e,osing|2e,ncing|2e,nating|3e,pping|1,lating|3e,tting|1,rating|3e,ving|1e,izing|2e,ing|",exceptions:"being|is,using|2e,making|3e,creating|5e,changing|5e,owing|2e,raising|4e,competing|6e,defining|5e,counselling|7,hiring|3e,filing|3e,controlling|7,totalling|5,infringing|7e,citing|3e,dying|1ie,doping|3e,baking|3e,hoping|3e,refining|5e,exchanging|7e,charging|5e,stereotyping|9e,voting|3e,tying|1ie,discharging|8e,basing|3e,lying|1ie,expediting|7e,typing|3e,breathing|6e,framing|4e,boring|3e,dining|3e,firing|3e,hiding|3e,appraising|7e,tasting|4e,waning|3e,distilling|6,baling|3e,boning|3e,faring|3e,honing|3e,wasting|4e,phoning|4e,luring|3e,propelling|6,timing|3e,wading|3e,abating|4e,compelling|6,vying|1ie,fading|3e,biting|3e,zoning|3e,dispelling|6,pasting|4e,praising|5e,telephoning|8e,daring|3e,waking|3e,shoring|4e,gaming|3e,padding|3,rerouting|6e,fringing|5e,braising|5e,coking|3e,recreating|7e,sloping|4e,sunbathing|7e,overcharging|9e,everchanging|9e,patrolling|6,joking|3e,extolling|5,expelling|5,reappraising|9e,wadding|3,gaping|3e,poking|3e,persevering|8e,pining|3e,recordkeeping|10e,landfilling|7,liming|3e,interchanging|10e,toting|3e,roping|3e,wiring|3e,aching|3e,gassing|3,getting|3,travelling|6,putting|3,sitting|3,betting|3,mapping|3,tapping|3,letting|3,hitting|3,tanning|3,netting|3,popping|3,fitting|3,deterring|5,barring|3,banning|3,vetting|3,omitting|4,wetting|3,plotting|4,budding|3,clotting|4,hemming|3,slotting|4,singeing|5,reprogramming|9,jetting|3,kidding|3,befitting|5,podding|3,wedding|3,donning|3,warring|3,penning|3,gutting|3,cueing|3,refitting|5,petting|3,cramming|4,napping|3,tinning|3",rev:"lan|3ning,egin|4ning,can|3ning,pan|3ning,hin|3ning,kin|3ning,win|3ning,un|2ning,pin|3ning,n|1ing,ounsel|6ling,otal|4ling,abel|4ling,evel|4ling,ancel|5ling,istil|5ling,xcel|4ling,tencil|6ling,piral|5ling,arshal|6ling,nitial|6ling,hrivel|6ling,xtol|4ling,andfil|6ling,trol|4ling,fuel|4ling,model|5ling,nnel|4ling,pel|3ling,l|1ing,ransfer|7ring,lur|3ring,tir|3ring,tar|3ring,pur|3ring,car|3ring,nfer|4ring,efer|4ring,cur|3ring,r|1ing,ermit|5ting,ransmit|7ting,ommit|5ting,nit|3ting,orget|5ting,abysit|6ting,dmit|4ting,hut|3ting,hat|3ting,utfit|5ting,but|3ting,egret|5ting,llot|4ting,mat|3ting,pot|3ting,lit|3ting,emit|4ting,submit|6ting,pit|3ting,rot|3ting,quit|4ting,cut|3ting,set|3ting,t|1ing,tem|3ming,wim|3ming,kim|3ming,um|2ming,rim|3ming,m|1ing,tep|3ping,wap|3ping,top|3ping,hop|3ping,cap|3ping,rop|3ping,rap|3ping,lap|3ping,ip|2ping,p|1ing,ye|2ing,oe|2ing,ie|ying,ee|2ing,e|ing,hed|3ding,hred|4ding,bed|3ding,bid|3ding,d|1ing,ki|2ing,rek|3king,k|1ing,isc|3ing,echarg|6ing,ng|2ing,g|1ging,uiz|3zing,z|1ing,mb|2ing,rb|2ing,b|1bing,o|1ing,x|1ing,f|1ing,s|1ing,w|1ing,y|1ing,h|1ing"},Li={rules:"roken|1ake,hosen|2ose,allen|3,rozen|1eeze,asten|4,engthen|5,essen|3,hrunken|2ink,lain|2y,poken|1eak,tolen|1eal,eaten|3,un|in,itten|2e,gotten|1et,ighten|4,idden|2e,worn|1ear,sen|2,aken|3,ven|2,wn|1,rought|1ing,uilt|3d,urst|4,ealt|3,reamt|4,urt|3,nelt|2el,eapt|3,eft|1ave,eant|3,hot|2ot,pat|1it,et|2,ut|2,it|2,ent|2d,ept|1ep,urned|3,reated|5,eard|3,eld|old,ead|3,lid|3e,old|ell,ped|2ed,pilled|4,ound|ind,ved|2,aid|1y,ug|ig,ung|ing,ade|1ke,hone|1ine,come|4,gone|2,nuck|1eak,unk|ink",exceptions:"been|2,bled|3ed,bought|1uy,fed|2ed,fled|3e,flown|2y,fought|1ight,had|2ve,hung|1ang,led|2ad,lit|2ght,met|2et,run|3,sat|1eat,seen|3,sought|1eek,woven|1eave,bet|3,brought|2ing,dealt|4,dived|4,heard|4,left|2ave,made|2ke,read|4,shaved|5,slain|3y",rev:"uy|ought,ly|1own,ay|1id,rake|1oken,hoose|2sen,reate|5d,lee|2d,reeze|1ozen,aste|4n,rove|4n,hine|1one,lide|3,hrive|5d,come|4,ite|2ten,ide|2den,se|2n,ake|3n,ive|3n,uild|3t,old|eld,ind|ound,eed|1d,end|2t,urn|3ed,ean|3t,un|2,in|un,urst|4,right|5en,eight|5en,urt|3,eet|1t,hoot|2t,pit|1at,eat|3en,get|1otten,set|3,ut|2,it|2,ream|4t,ig|ug,ang|ung,ing|ung,all|3en,neel|2lt,ell|old,pill|4ed,teal|1olen,eap|3t,eep|1pt,ength|5en,ess|3en,hrink|2unken,neak|1uck,eek|ought,peak|1oken,ink|unk,wear|1orn,go|2ne,w|1n"},Wi={rules:"as|1ve,tudies|3y,mbodies|4y,evies|2y,arties|3y,emedies|4y,mpties|3y,eadies|3y,obbies|3y,ullies|3y,nesties|4y,zzes|2,pies|1y,nies|1y,oes|1,xes|1,plies|2y,ries|1y,shes|2,sses|2,ches|2,fies|1y,s|",exceptions:"are|is,focuses|5,relies|3y,flies|2y,gasses|3,has|2ve",rev:"uy|2s,oy|2s,ey|2s,ay|2s,y|ies,adio|4s,aboo|4s,o|1es,tograph|7s,erth|4s,gh|2s,h|1es,as|2ses,s|1es,ic|2s,zz|2es,x|1es,f|1s,b|1s,g|1s,m|1s,w|1s,p|1s,k|1s,l|1s,d|1s,n|1s,r|1s,t|1s,e|1s"},Ki={rules:"east|4,uthwest|7,ot|2test,it|2test,lat|3test,weet|4test,t|1est,ig|2gest,ng|2est,hin|3nest,n|1est,nner|4most,uter|4most,r|1est,rey|3est,ricey|3iest,y|iest,ross|4est,f|1est,b|1est,m|1est,p|1est,h|1est,w|1est,k|1est,l|1est,d|1est,e|1st",exceptions:"good|best,bad|worst,wet|3test,far|1urthest,gay|3est,neat|4test,shy|3est,fat|3test,late|4st,wide|4st,fine|4st,severe|6st,fake|4st,pale|4st,rare|4st,rude|4st,sore|4st,dire|4st",rev:"east|4,argest|4,iggest|2,implest|5,afest|3,uthwest|7,hinnest|3,ncerest|5,urthest|ar,ravest|4,utest|3,eriest|4,rossest|4,dsomest|5,ugest|3,riciest|3ey,emotest|5,quarest|5,rangest|5,ipest|3,urest|3,cest|2,ermost|2,fest|1,best|1,amest|3,itest|3,ngest|2,uest|2,yest|1,tlest|3,mest|1,blest|3,sest|2,pest|1,hest|1,ttest|1,west|1,rest|1,kest|1,nest|1,lest|1,test|1,dest|1,iest|y"};const qi=/^.([0-9]+)/;var Ui=function(e,t,n){if(t.exceptions.hasOwnProperty(e))return n&&console.log("exception, ",e,t.exceptions[e]),function(e,t){let n=t.exceptions[e],r=n.match(qi);if(null===r)return t.exceptions[e];let a=Number(r[1])||0;return e.substr(0,a)+n.replace(qi,"")}(e,t);let r=t.rules;t.reversed&&(r=t.rev),r=function(e,t={}){let n=t[e[e.length-1]]||[];return t[""]&&(n=n.concat(t[""])),n}(e,r);for(let t=0;t{let n=e[0]||"",r=n[n.length-1]||"";t[r]=t[r]||[],t[r].push(e)})),t},Qi=/^([0-9]+)/,Zi=function(e){const t=/\|/;return e.split(/,/).map((e=>{let n=e.split(t);return function(e="",t=""){let n=(t=String(t)).match(Qi);if(null===n)return[e,t];let r=Number(n[1])||0,a=e.substring(0,r);return[e,a+t.replace(Qi,"")]}(n[0],n[1])}))};var Xi=function(e={}){return(e=Object.assign({},e)).rules=Zi(e.rules),e.rules=Ri(e.rules),e.rev&&(e.rev=Zi(e.rev),e.rev=Ri(e.rev)),e.exceptions=Zi(e.exceptions),e.exceptions=e.exceptions.reduce(((e,t)=>(e[t[0]]=t[1],e)),{}),e};var _i=function(e){let{rules:t,exceptions:n,rev:r}=e;var a;return a=n,n=Object.entries(a).reduce(((e,t)=>(e[t[1]]=t[0],e)),{}),{reversed:!Boolean(e.reversed),rules:t,exceptions:n,rev:r}};const Yi=Xi({rules:"een|1,egan|2in,on|in,pun|1in,ewn|2,ave|ive,poke|1eak,hose|2ose,roke|1eak,roze|1eeze,ode|ide,orbade|3id,hone|1ine,tole|1eal,rose|1ise,woke|1ake,wrote|2ite,made|2ke,came|1ome,ove|ive,ore|ear,elped|3,elcomed|6,hared|4,nvited|5,eclared|6,eard|3,avelled|4,ombined|6,uided|4,etired|5,choed|3,ncelled|4,epeated|5,moked|4,entred|5,dhered|5,esired|5,ompeted|6,erseded|6,ramed|4,qualled|4,iloted|4,stponed|6,uelled|3,opelled|4,gnored|5,xtruded|6,caled|4,ndured|5,lamed|4,quared|5,mpeded|5,rouped|4,efeated|5,robed|4,lid|3e,magined|6,nselled|4,uthored|6,ebuted|4,shrined|6,tialled|4,erfered|6,eaped|3,yped|3,laked|4,tirred|3,ooted|3,leated|4,ncited|5,oubted|4,mpelled|4,nnulled|4,pined|4,ircled|5,ecited|5,reathed|6,nvaded|5,onfided|6,pedited|6,alcined|6,ycotted|5,dmired|5,xcreted|6,ubed|3,taked|4,onfined|6,heated|4,rimed|4,amelled|4,achined|6,litzed|4,xcited|5,xpelled|4,xtolled|4,ouled|3,imicked|4,ivalled|4,eeped|3,naked|4,tyled|4,iased|3,nhaled|5,oeuvred|6,grammed|6,kied|2,miled|4,pited|4,eterred|4,hoked|4,kidded|3,ollided|6,pleted|5,cided|4,plored|5,stored|5,longed|4,filed|4,rbed|2,suaded|5,ciled|4,edded|2,tined|4,phoned|5,fled|3,nited|4,iped|3,hauled|4,treated|5,nnelled|4,basted|5,njured|5,twined|5,uzzed|3,did|1o,odded|2,vided|4,old|ell,pared|4,mbed|2,stood|2and,pired|4,held|1old,vened|4,cored|4,read|4,piled|4,aped|3,gled|3,named|4,arred|2,oated|3,kled|3,ooled|3,uned|3,figured|6,bid|3,ound|ind,oped|2,ibed|3,quired|5,uled|3,oded|3,ceded|4,cured|4,sided|4,voked|4,rled|2,outed|3,mined|4,urred|2,ighted|4,umed|3,sured|4,iked|3,mmed|1,pled|3,fed|1,bbed|1,eled|2,luded|4,aid|1y,ferred|3,tled|3,dled|3,raded|4,oted|3,eed|2,aled|2,lined|4,mped|2,fted|2,lted|2,gged|1,eted|2,xed|1,bled|3,pted|2,tured|4,uted|3,ued|2,iled|2,nned|1,yed|1,rted|2,pped|1,tted|1,wed|1,lled|2,ited|2,med|1,sted|2,ssed|2,ged|2,ved|2,nted|2,ked|1,cted|2,ced|2,ied|y,hed|1,sed|2,ded|1,zed|2,ned|1,red|1,ated|3,ell|all,rought|1ing,hought|1ink,eft|1ave,eant|3,ealt|3,eat|3,hot|2ot,urt|3,eapt|3,elt|1el,went|go,built|4d,at|it,got|1et,ut|2,it|2,et|2,ent|2d,ept|1ep,st|2,truck|2ike,nuck|1eak,tunk|1ink,ank|ink,ook|ake,ug|ig,ang|ing,ung|ing,nderlay|5ie,dezvous|7,wam|1im,drew|2aw,saw|1ee,ew|ow",exceptions:"was|is,were|are,had|2ve,led|2ad,met|2et,cited|4,focused|5,sought|1eek,lost|3e,defined|6,died|3,hired|4,bought|1uy,ran|1un,controlled|7,taught|1each,hoped|4,shed|4,refined|6,caught|2tch,flew|2y,owed|3,fought|1ight,fired|4,fed|2ed,pied|3,fared|4,tied|3,fled|3e,cared|4,ate|eat,dyed|3,lit|2ght,winged|4,bred|3ed,pent|3,wired|4,persevered|9,baked|4,dined|4,fined|4,shored|5,hid|3e,padded|3,waned|4,wove|1eave,lied|3,wasted|5,sloped|5,joked|4,ached|4,baled|4,bit|3e,bled|3ed,boned|4,caned|4,dispelled|6,egged|3,hung|1ang,patrolled|6,tasted|5,faked|4,bored|4,eyed|3,gamed|4,gassed|3,pored|4,timed|4,toned|4,zoned|4,poked|4,dared|4,been|2,said|2y,found|1ind,took|1ake,came|1ome,gave|1ive,fell|1all,brought|2ing,rose|1ise,put|3,sent|3d,spent|4d,spoke|2eak,left|2ave,won|1in,told|1ell,meant|4,heard|4,got|1et,arose|2ise,read|4,let|3,hit|3,cost|4,dealt|4,laid|2y,drove|2ive,sat|1it,cast|4,beat|4,lent|3d,sang|1ing,banned|3,jarred|3,wound|1ind,omitted|4,quit|4,slid|4e,rang|1ing,fit|3,rent|3d,bet|3,sank|1ink,reaped|4,manned|3,rode|1ide,rebutted|5,bound|1ind,barred|3,recast|6,netted|3,tanned|3,plotted|4,tore|1ear,spun|2in,pitted|3,shone|2ine,donned|3,dove|1ive,spat|2it,bent|3d,leapt|4,seeped|4,sewn|3,twinned|4,wrung|2ing,deterred|5,blew|2ow",rev:"egin|2an,lan|3ned,nderpin|7ned,kin|3ned,hin|3ned,pan|3ned,can|3ned,un|2ned,n|1ed,ecome|2ame,hoose|2se,trike|2uck,lee|2d,trive|2ove,vercome|4ame,reeze|1oze,hake|1ook,nderlie|5ay,istake|3ook,etake|2ook,wake|1oke,write|2ote,make|2de,rtake|2ook,see|1aw,e|1d,elp|3ed,roup|4ed,oop|3ed,velop|5ed,eep|1pt,mp|2ed,p|1ped,hink|1ought,eek|ought,reak|1oke,neak|1uck,tink|1unk,rink|1ank,k|1ed,ommit|5ted,ermit|5ted,oadcast|7,dmit|4ted,hoot|2t,plit|4,hut|3,llot|4ted,nit|3ted,orget|3ot,egret|5ted,hrust|5,ormat|5ted,hat|3ted,lat|3ted,urt|3,cquit|5ted,urst|4,ransmit|7ted,emit|4ted,pot|3ted,cut|3,submit|6ted,set|3,t|1ed,now|1ew,trew|4n,draw|2ew,throw|3ew,grow|2ew,w|1ed,uy|ought,ey|2ed,pay|2id,oy|2ed,ay|2ed,y|ied,ravel|5led,ancel|5led,qual|4led,uel|3led,ounsel|6led,nitial|6led,nnul|4led,namel|5led,xtol|4led,ival|4led,teal|1ole,eel|1lt,trol|4led,sell|1old,nnel|4led,pel|3led,l|1ed,ransfer|7red,pur|3red,lur|3red,tir|3red,par|3red,nfer|4red,wear|1ore,bear|1ore,efer|4red,cur|3red,r|1ed,pread|5,hed|3,rind|1ound,mbed|4ded,reed|2d,hred|4ded,eread|5,orbid|3ade,leed|2d,kid|3ded,build|4t,od|2ded,stand|2ood,hold|1eld,bid|3,d|1ed,cho|3ed,go|went,do|1id,tem|3med,um|2med,rim|3med,kim|3med,wim|1am,lam|3med,m|1ed,lug|3ged,ig|ug,pring|2ang,gg|2ed,ang|ung,long|4ed,og|2ged,ling|1ung,ag|2ged,ub|2bed,ib|2bed,ob|2bed,rb|2ed,ab|2bed,mb|2ed,imic|4ked,dezvous|7,s|1ed,ki|2ed,z|1ed,f|1ed,x|1ed,h|1ed"}),es=Xi(Wi),ts=Xi(Mi),ns=Xi(Li),rs=_i(Yi),as=_i(es),os=_i(ts),is=_i(ns),ss=Xi(Ji),ls=Xi(Ki);var us={fromPast:Yi,fromPresent:es,fromGerund:ts,fromParticiple:ns,toPast:rs,toPresent:as,toGerund:os,toParticiple:is,toComparative:ss,toSuperlative:ls,fromComparative:_i(ss),fromSuperlative:_i(ls)},cs=["academy","administration","agence","agences","agencies","agency","airlines","airways","army","assoc","associates","association","assurance","authority","autorite","aviation","bank","banque","board","boys","brands","brewery","brotherhood","brothers","bureau","cafe","co","caisse","capital","care","cathedral","center","centre","chemicals","choir","chronicle","church","circus","clinic","clinique","club","co","coalition","coffee","collective","college","commission","committee","communications","community","company","comprehensive","computers","confederation","conference","conseil","consulting","containers","corporation","corps","corp","council","crew","data","departement","department","departments","design","development","directorate","division","drilling","education","eglise","electric","electricity","energy","ensemble","enterprise","enterprises","entertainment","estate","etat","faculty","federation","financial","fm","foundation","fund","gas","gazette","girls","government","group","guild","herald","holdings","hospital","hotel","hotels","inc","industries","institut","institute","institutes","insurance","international","interstate","investment","investments","investors","journal","laboratory","labs","llc","ltd","limited","machines","magazine","management","marine","marketing","markets","media","memorial","ministere","ministry","military","mobile","motor","motors","musee","museum","news","observatory","office","oil","optical","orchestra","organization","partners","partnership","petrol","petroleum","pharmacare","pharmaceutical","pharmaceuticals","pizza","plc","police","polytechnic","post","power","press","productions","quartet","radio","reserve","resources","restaurant","restaurants","savings","school","securities","service","services","societe","society","sons","subcommittee","syndicat","systems","telecommunications","telegraph","television","times","tribunal","tv","union","university","utilities","workers"].reduce(((e,t)=>(e[t]=!0,e)),{}),hs=[[/([^v])ies$/i,"$1y"],[/(ise)s$/i,"$1"],[/(kn|[^o]l|w)ives$/i,"$1ife"],[/^((?:ca|e|ha|(?:our|them|your)?se|she|wo)l|lea|loa|shea|thie)ves$/i,"$1f"],[/^(dwar|handkerchie|hoo|scar|whar)ves$/i,"$1f"],[/(antenn|formul|nebul|vertebr|vit)ae$/i,"$1a"],[/(octop|vir|radi|nucle|fung|cact|stimul)(i)$/i,"$1us"],[/(buffal|tomat|tornad)(oes)$/i,"$1o"],[/(ause)s$/i,"$1"],[/(ease)s$/i,"$1"],[/(ious)es$/i,"$1"],[/(ouse)s$/i,"$1"],[/(ose)s$/i,"$1"],[/(..[aeiu]s)es$/i,"$1"],[/(vert|ind|cort)(ices)$/i,"$1ex"],[/(matr|append)(ices)$/i,"$1ix"],[/([xo]|ch|ss|sh)es$/i,"$1"],[/men$/i,"man"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(cris|ax|test)es$/i,"$1is"],[/(alias|status)es$/i,"$1"],[/(ss)$/i,"$1"],[/(ic)s$/i,"$1"],[/s$/i,""]];var ds=function(e,t){const{irregularPlurals:n}=t.two;let r=(a=n,Object.keys(a).reduce(((e,t)=>(e[a[t]]=t,e)),{}));var a;if(r.hasOwnProperty(e))return r[e];for(let t=0;t(ms[t].forEach((n=>e[n]=t)),e)),{});var ps=ms;var fs=function(e){let t=e.substring(e.length-3);if(!0===ps.hasOwnProperty(t))return ps[t];let n=e.substring(e.length-2);return!0===ps.hasOwnProperty(n)?ps[n]:"s"===e.substring(e.length-1)?"PresentTense":null};const bs={are:"be",were:"be",been:"be",is:"be",am:"be",was:"be",be:"be",being:"be"};var vs=function(e,t,n){const{fromPast:r,fromPresent:a,fromGerund:o,fromParticiple:i}=t.two.models;let{prefix:s,verb:l,particle:u}=function(e,t){let n="",r={};t.one&&t.one.prefixes&&(r=t.one.prefixes);let[a,o]=e.split(/ /);return o&&!0===r[a]&&(n=a,a=o,o=""),{prefix:n,verb:a,particle:o}}(e,t),c="";if(n||(n=fs(e)),bs.hasOwnProperty(e))c=bs[e];else if("Participle"===n)c=Ui(l,i);else if("PastTense"===n)c=Ui(l,r);else if("PresentTense"===n)c=Ui(l,a);else{if("Gerund"!==n)return e;c=Ui(l,o)}return u&&(c+=" "+u),s&&(c=s+" "+c),c};var ys=function(e,t){const{toPast:n,toPresent:r,toGerund:a,toParticiple:o}=t.two.models;if("be"===e)return{Infinitive:e,Gerund:"being",PastTense:"was",PresentTense:"is"};let[i,s]=(e=>/ /.test(e)?e.split(/ /):[e,""])(e),l={Infinitive:e,PastTense:Ui(i,n),PresentTense:Ui(i,r),Gerund:Ui(i,a),FutureTense:"will "+e},u=Ui(i,o);return u!==e&&u!==l.PastTense&&(l.Participle=u),s&&Object.keys(l).forEach((e=>{l[e]+=" "+s})),l};var ws={toInfinitive:vs,conjugate:ys,all:function(e,t){let n=ys(e,t);return delete n.FutureTense,Object.values(n).filter((e=>e))}};var ks=function(e="",t=[]){const n=e.length;for(let r=n<=6?n-1:6;r>=1;r-=1){let a=e.substring(n-r,e.length);if(!0===t[a.length].hasOwnProperty(a)){return e.slice(0,n-r)+t[a.length][a]}}return null};const Ps=[null,{y:"ily"},{ly:"ly",ic:"ically"},{ial:"ially",ual:"ually",tle:"tly",ble:"bly",ple:"ply",ary:"arily"},{},{},{}],As={cool:"cooly",whole:"wholly",full:"fully",good:"well",idle:"idly",public:"publicly",single:"singly",special:"especially"};var Es=function(e){if(As.hasOwnProperty(e))return As[e];let t=ks(e,Ps);return t||e+"ly"};const js=function(e,t){const n=t.two.models.toSuperlative;return Ui(e,n)},Is=function(e,t){const n=t.two.models.toComparative;return Ui(e,n)},Ns="ically",Ds=new Set(["analyt"+Ns,"chem"+Ns,"class"+Ns,"clin"+Ns,"crit"+Ns,"ecolog"+Ns,"electr"+Ns,"empir"+Ns,"frant"+Ns,"grammat"+Ns,"ident"+Ns,"ideolog"+Ns,"log"+Ns,"mag"+Ns,"mathemat"+Ns,"mechan"+Ns,"med"+Ns,"method"+Ns,"method"+Ns,"mus"+Ns,"phys"+Ns,"phys"+Ns,"polit"+Ns,"pract"+Ns,"rad"+Ns,"satir"+Ns,"statist"+Ns,"techn"+Ns,"technolog"+Ns,"theoret"+Ns,"typ"+Ns,"vert"+Ns,"whims"+Ns]),xs=[null,{},{ly:""},{ily:"y",bly:"ble",ply:"ple"},{ally:"al",rply:"rp"},{ually:"ual",ially:"ial",cally:"cal",eally:"eal",rally:"ral",nally:"nal",mally:"mal",eeply:"eep",eaply:"eap"},{ically:"ic"}],Cs=new Set(["early","only","hourly","daily","weekly","monthly","yearly","mostly","duly","unduly","especially","undoubtedly","conversely","namely","exceedingly","presumably","accordingly","overly","best","latter","little","long","low"]),Ts={wholly:"whole",fully:"full",truly:"true",gently:"gentle",singly:"single",customarily:"customary",idly:"idle",publically:"public",quickly:"fast",well:"good"};var Gs=function(e){return e.endsWith("ly")?Ds.has(e)?e.replace(/ically/,"ical"):Cs.has(e)?null:Ts.hasOwnProperty(e)?Ts[e]:ks(e,xs)||e:null};const Os=[null,{y:"iness"},{le:"ility",al:"ality",ay:"ayness"},{ial:"y",ing:"ment",ess:"essness",ous:"ousness",ive:"ivity",ect:"ection"},{ting:"ting",ring:"ring",cial:"ciality",nate:"nation",rate:"ration",bing:"bingness",atic:"acy",sing:"se",iful:"y",ible:"ibility"},{erate:"eration"},{ionate:"ion"}],Bs={clean:"cleanliness",naive:"naivety",dramatic:"drama",ironic:"irony",deep:"depth",automatic:"automation",simple:"simplicity",boring:"boredom",free:"freedom",wise:"wisdom",fortunate:"fortune",gentle:"gentleness",quiet:"quiet",expensive:"expense",offensive:"offence"},zs=new Set(["terrible","annoying"]);var Hs={toSuperlative:js,toComparative:Is,toAdverb:Es,toNoun:function(e){if(Bs.hasOwnProperty(e))return Bs[e];if(zs.has(e))return null;let t=ks(e,Os);return t||e+"ness"},fromAdverb:Gs,fromSuperlative:function(e,t){const n=t.two.models.fromSuperlative;return Ui(e,n)},fromComparative:function(e,t){const n=t.two.models.fromComparative;return Ui(e,n)},all:function(e,t){let n=[e];return n.push(js(e,t)),n.push(Is(e,t)),n.push(Es(e)),n=n.filter((e=>e)),n=new Set(n),Array.from(n)}},Vs={noun:gs,verb:ws,adjective:Hs},Fs={Singular:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.noun.toPlural(e,r);a[o]||(t[o]=t[o]||"Plural")},Comparable:(e,t,n,r)=>{let a=r.one.lexicon,{toSuperlative:o,toComparative:i}=n.two.transform.adjective,s=o(e,r);a[s]||(t[s]=t[s]||"Superlative");let l=i(e,r);a[l]||(t[l]=t[l]||"Comparative"),t[e]="Adjective"},Demonym:(e,t,n,r)=>{let a=n.two.transform.noun.toPlural(e,r);t[a]=t[a]||["Demonym","Plural"]},Infinitive:(e,t,n,r)=>{let a=r.one.lexicon,o=n.two.transform.verb.conjugate(e,r);Object.entries(o).forEach((e=>{a[e[1]]||t[e[1]]||(t[e[1]]=e[0])}))},PhrasalVerb:(e,t,n,r)=>{let a=r.one.lexicon;t[e]=["PhrasalVerb","Infinitive"];let o=r.one._multiCache,[i,s]=e.split(" ");a[i]||(t[i]=t[i]||"Infinitive");let l=n.two.transform.verb.conjugate(i,r);Object.entries(l).forEach((e=>{if("Actor"===e[0]||""===e[1])return;t[e[1]]||a[e[1]]||(t[e[1]]=e[0]),o[e[1]]=!0;let n=e[1]+" "+s;t[n]=t[n]||[e[0],"PhrasalVerb"]}))},Multiple:(e,t)=>{t[e]=["Multiple","Cardinal"],t[e+"th"]=["Multiple","Ordinal"],t[e+"ths"]=["Multiple","Fraction"]},Cardinal:(e,t)=>{t[e]=["TextValue","Cardinal"]},Ordinal:(e,t)=>{t[e]=["TextValue","Ordinal"],t[e+"s"]=["TextValue","Fraction"]}};var $s=function(e,t){const{methods:n,model:r}=t;let a={},o={};return Object.keys(e).forEach((t=>{let i=e[t],s=(t=(t=t.toLowerCase().trim()).replace(/'s\b/,"")).split(/ /);s.length>1&&(o[s[0]]=!0),!0===Fs.hasOwnProperty(i)&&Fs[i](t,a,n,r),a[t]=a[t]||i})),delete a[""],delete a.null,delete a[" "],{lex:a,_multi:o}};var Ss=function(e){const t=/[,:;]/;let n=[];return e.forEach((e=>{let r=0;e.forEach(((a,o)=>{t.test(a.post)&&function(e,t){const n=/^[0-9]+$/;let r=e[t];if(!r)return!1;const a=new Set(["may","april","august","jan"]);if("like"===r.normal||a.has(r.normal))return!1;if(r.tags.has("Place")||r.tags.has("Date"))return!1;if(e[t-1]&&(e[t-1].tags.has("Date")||a.has(e[t-1].normal)))return!1;let o=r.normal;return 1!==o.length&&2!==o.length&&4!==o.length||!n.test(o)}(e,o+1)&&(n.push(e.slice(r,o+1)),r=o+1)})),re.endsWith(t))):"s"===t&&!Ls.find((t=>e.endsWith(t)))},Ks={two:{quickSplit:Ss,expandLexicon:$s,transform:Vs,looksPlural:Ws}};var qs=function(e){const{irregularPlurals:t}=e.two,{lexicon:n}=e.one;return Object.entries(t).forEach((e=>{n[e[0]]=n[e[0]]||"Singular",n[e[1]]=n[e[1]]||"Plural"})),e};const Us=function(e,t,n){return Object.entries(e.exceptions).reduce(((e,r)=>(t&&(e[r[0]]=t),e[r[1]]=n,e)),{})};var Rs=function(e){let{lexicon:t}=e.one;const{toPast:n,toPresent:r,toGerund:a,toSuperlative:o,toComparative:i}=e.two.models;let s={},l={};return l=Us(n,"Infinitive","PastTense"),Object.assign(s,l),l=Us(r,"Infinitive","Verb"),Object.assign(s,l),l=Us(a,"Infinitive","Gerund"),Object.assign(s,l),l=Us(o,"Adjective","Superlative"),Object.assign(s,l),l=Us(i,"Adjective","Comparative"),Object.assign(s,l),e.one.lexicon=Object.assign(s,t),e};let Qs={two:{models:us}};const Zs={"Adj|Gerund":"Adjective","Adj|Noun":"Adjective","Adj|Past":"Adjective","Adj|Present":"Adjective","Noun|Verb":"Singular","Noun|Gerund":"Gerund","Person|Noun":"Noun","Person|Date":"Month","Person|Verb":"Person","Person|Place":"Person","Plural|Verb":"Plural","Unit|Noun":"Noun","Honorific|Noun":"Noun"},Xs=function(e,t){const n={model:t,methods:Ks};let{lex:r,_multi:a}=Ks.two.expandLexicon(e,n);return Object.assign(t.one.lexicon,r),Object.assign(t.one._multiCache,a),t},_s=function(e,t,n){let r=ys(e,Qs);t[r.PastTense]=t[r.PastTense]||"PastTense",t[r.Gerund]=t[r.Gerund]||"Gerund",!0===n&&(t[r.PresentTense]=t[r.PresentTense]||"PresentTense")},Ys=function(e,t){let n={};const r=t.one.lexicon;return Object.keys(e).forEach((a=>{const o=e[a];if(n[a]=Zs[o],"Noun|Verb"!==o&&"Person|Verb"!==o||_s(a,r,!1),"Adj|Present"===o&&(_s(a,r,!0),function(e,t,n){let r=js(e,n);t[r]=t[r]||"Superlative";let a=Is(e,n);t[a]=t[a]||"Comparative"}(a,r,t)),"Adj|Gerund"===o||"Noun|Gerund"===o){let e=vs(a,Qs,"Gerund");r[e]||(n[e]="Infinitive")}if("Adj|Past"===o){let e=vs(a,Qs,"PastTense");r[e]||(n[e]="Infinitive")}})),t=Xs(n,t)};var el=function(e){return e=function(e,t){return Object.keys(e).forEach((n=>{"Uncountable"===e[n]&&(t.two.uncountable[n]=!0,e[n]="Uncountable")})),t}((e=Xs(e.one.lexicon,e)).one.lexicon,e),e=Ys(e.two.switches,e),e=Rs(e),e=qs(e)};let tl={one:{_multiCache:{},lexicon:Oo},two:{irregularPlurals:wo,models:us,suffixPatterns:Ni,prefixPatterns:xi,endsWith:Vi,neighbours:Si,regexNormal:[[/^[\w.]+@[\w.]+\.[a-z]{2,3}$/,"Email"],[/^(https?:\/\/|www\.)+\w+\.[a-z]{2,3}/,"Url","http.."],[/^[a-z0-9./].+\.(com|net|gov|org|ly|edu|info|biz|dev|ru|jp|de|in|uk|br|io|ai)/,"Url",".com"],[/^[PMCE]ST$/,"Timezone","EST"],[/^ma?c'.*/,"LastName","mc'neil"],[/^o'[drlkn].*/,"LastName","o'connor"],[/^ma?cd[aeiou]/,"LastName","mcdonald"],[/^(lol)+[sz]$/,"Expression","lol"],[/^wo{2,}a*h?$/,"Expression","wooah"],[/^(hee?){2,}h?$/,"Expression","hehe"],[/^(un|de|re)\\-[a-z\u00C0-\u00FF]{2}/,"Verb","un-vite"],[/^(m|k|cm|km)\/(s|h|hr)$/,"Unit","5 k/m"],[/^(ug|ng|mg)\/(l|m3|ft3)$/,"Unit","ug/L"]],regexText:[[/^#[\p{Number}_]*\p{Letter}/u,"HashTag"],[/^@\w{2,}$/,"AtMention"],[/^([A-Z]\.){2}[A-Z]?/i,["Acronym","Noun"],"F.B.I"],[/.{3}[lkmnp]in['‘’‛‵′`´]$/,"Gerund","chillin'"],[/.{4}s['‘’‛‵′`´]$/,"Possessive","flanders'"],[/^[\p{Emoji_Presentation}\p{Extended_Pictographic}]/u,"Emoji","emoji-class"]],regexNumbers:[[/^@1?[0-9](am|pm)$/i,"Time","3pm"],[/^@1?[0-9]:[0-9]{2}(am|pm)?$/i,"Time","3:30pm"],[/^'[0-9]{2}$/,"Year"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])$/,"Time","3:12:31"],[/^[012]?[0-9](:[0-5][0-9])?(:[0-5][0-9])? ?(am|pm)$/i,"Time","1:12pm"],[/^[012]?[0-9](:[0-5][0-9])(:[0-5][0-9])? ?(am|pm)?$/i,"Time","1:12:31pm"],[/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}/i,"Date","iso-date"],[/^[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,4}$/,"Date","iso-dash"],[/^[0-9]{1,4}\/[0-9]{1,2}\/([0-9]{4}|[0-9]{2})$/,"Date","iso-slash"],[/^[0-9]{1,4}\.[0-9]{1,2}\.[0-9]{1,4}$/,"Date","iso-dot"],[/^[0-9]{1,4}-[a-z]{2,9}-[0-9]{1,4}$/i,"Date","12-dec-2019"],[/^utc ?[+-]?[0-9]+$/,"Timezone","utc-9"],[/^(gmt|utc)[+-][0-9]{1,2}$/i,"Timezone","gmt-3"],[/^[0-9]{3}-[0-9]{4}$/,"PhoneNumber","421-0029"],[/^(\+?[0-9][ -])?[0-9]{3}[ -]?[0-9]{3}-[0-9]{4}$/,"PhoneNumber","1-800-"],[/^[-+]?\p{Currency_Symbol}[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?([kmb]|bn)?\+?$/u,["Money","Value"],"$5.30"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\p{Currency_Symbol}\+?$/u,["Money","Value"],"5.30£"],[/^[-+]?[$£]?[0-9]([0-9,.])+(usd|eur|jpy|gbp|cad|aud|chf|cny|hkd|nzd|kr|rub)$/i,["Money","Value"],"$400usd"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?\+?$/,["Cardinal","NumericValue"],"5,999"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?(st|nd|rd|r?th)$/,["Ordinal","NumericValue"],"53rd"],[/^\.[0-9]+\+?$/,["Cardinal","NumericValue"],".73th"],[/^[-+]?[0-9]+(,[0-9]{3})*(\.[0-9]+)?%\+?$/,["Percent","Cardinal","NumericValue"],"-4%"],[/^\.[0-9]+%$/,["Percent","Cardinal","NumericValue"],".3%"],[/^[0-9]{1,4}\/[0-9]{1,4}(st|nd|rd|th)?s?$/,["Fraction","NumericValue"],"2/3rds"],[/^[0-9.]{1,3}[a-z]{0,2}[-–—][0-9]{1,3}[a-z]{0,2}$/,["Value","NumberRange"],"3-4"],[/^[0-9]{1,2}(:[0-9][0-9])?(am|pm)? ?[-–—] ?[0-9]{1,2}(:[0-9][0-9])?(am|pm)$/,["Time","NumberRange"],"3-4pm"],[/^[0-9.]+([a-z°]{1,4})$/,"NumericValue","9km"]],switches:Bo,clues:fi,uncountable:{},orgWords:cs}};tl=el(tl);var nl=tl;const rl=/^(under|over|mis|re|un|dis|semi)-?/;var al=function(e,t,n){const r=n.two.switches;let a=e[t];if(r.hasOwnProperty(a.normal))a.switch=r[a.normal];else if(rl.test(a.normal)){let e=a.normal.replace(rl,"");e.length>3&&r.hasOwnProperty(e)&&(a.switch=r[e])}};var ol=function(e,t,n){if(!t||0===t.length)return;const r="undefined"!=typeof process&&process.env?process.env:self.env||{};r&&r.DEBUG_TAGS&&((e,t,n="")=>{let r=e.text||"["+e.implicit+"]";var a;"string"!=typeof t&&t.length>2&&(t=t.slice(0,2).join(", #")+" +"),t="string"!=typeof t?t.join(", #"):t,console.log(` ${(a=r,""+a+"").padEnd(24)} → #${t.padEnd(22)} ${(e=>""+e+"")(n)}`)})(e,t,n),e.tags=e.tags||new Set,"string"==typeof t?e.tags.add(t):t.forEach((t=>e.tags.add(t)))};const il=["Acronym","Abbreviation","ProperNoun","Uncountable","Possessive","Pronoun","Activity","Honorific"];var sl=function(e,t,n){let r=e[t],a=Array.from(r.tags);for(let e=0;ee.tags.has(t)))||(Ws(e.normal)?ol(e,"Plural","3-plural-guess"):ol(e,"Singular","3-singular-guess"))}(r),function(e){let t=e.tags;if(t.has("Verb")&&1===t.size){let t=fs(e.normal);t&&ol(e,t,"3-verb-tense-guess")}}(r)};const ll=/^\p{Lu}[\p{Ll}'’]/u,ul=/[0-9]/,cl=["Date","Month","WeekDay","Unit"],hl=/^[IVXLCDM]{2,}$/,dl=/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,gl={li:!0,dc:!0,md:!0,dm:!0,ml:!0};var ml=function(e,t,n){let r=e[t];r.index=r.index||[0,0];let a=r.index[1],o=r.text||"";return 0!==a&&!0===ll.test(o)&&!1===ul.test(o)?cl.find((e=>r.tags.has(e)))?null:(sl(e,t,n),r.tags.has("Noun")||r.tags.clear(),ol(r,"ProperNoun","2-titlecase"),!0):o.length>=2&&hl.test(o)&&dl.test(o)&&!gl[r.normal]?(ol(r,"RomanNumeral","2-xvii"),!0):null};const pl=function(e="",t=[]){const n=e.length;let r=7;n<=r&&(r=n-1);for(let a=r;a>1;a-=1){let r=e.substring(n-a,n);if(!0===t[r.length].hasOwnProperty(r)){return t[r.length][r]}}return null};var fl=function(e,t,n){let r=e[t];if(0===r.tags.size){let e=pl(r.normal,n.two.suffixPatterns);if(null!==e)return ol(r,e,"2-suffix"),r.confidence=.7,!0;if(r.implicit&&(e=pl(r.implicit,n.two.suffixPatterns),null!==e))return ol(r,e,"2-implicit-suffix"),r.confidence=.7,!0}return null};const bl=/['‘’‛‵′`´]/,vl=function(e,t){for(let n=0;nn-3&&(r=n-3);for(let n=r;n>2;n-=1){let r=e.substring(0,n);if(!0===t[r.length].hasOwnProperty(r))return t[r.length][r]}return null}(r.normal,n.two.prefixPatterns);if(null!==e)return ol(r,e,"2-prefix"),r.confidence=.5,!0}return null};const kl=new Set(["in","on","by","until","for","to","during","throughout","through","within","before","after","of","this","next","last","circa","around","post","pre","budget","classic","plan","may"]),Pl=function(e){if(!e)return!1;let t=e.normal||e.implicit;return!!kl.has(t)||(!!(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))||!!e.tags.has("ProperNoun"))},Al=function(e){return!!e&&(!!e.tags.has("Ordinal")||(!!(e.tags.has("Cardinal")&&e.normal.length<3)||("is"===e.normal||"was"===e.normal)))},El=function(e){return e&&(e.tags.has("Date")||e.tags.has("Month")||e.tags.has("WeekDay")||e.tags.has("Year"))};var jl=function(e,t){const n=e[t];if(n.tags.has("NumericValue")&&n.tags.has("Cardinal")&&4===n.normal.length){let r=Number(n.normal);if(r&&!isNaN(r)&&r>1400&&r<2100){let a=e[t-1],o=e[t+1];if(Pl(a)||Pl(o))return ol(n,"Year","2-tagYear");if(r>=1920&&r<2025){if(Al(a)||Al(o))return ol(n,"Year","2-tagYear-close");if(El(e[t-2])||El(e[t+2]))return ol(n,"Year","2-tagYear-far");if(a&&(a.tags.has("Determiner")||a.tags.has("Possessive"))&&o&&o.tags.has("Noun")&&!o.tags.has("Plural"))return ol(n,"Year","2-tagYear-noun")}}}return null};const Il=/^[A-Z]('s|,)?$/,Nl=/^[A-Z-]+$/,Dl=/([A-Z]\.)+[A-Z]?,?$/,xl=/[A-Z]{2,}('s|,)?$/,Cl=/([a-z]\.)+[a-z]\.?$/,Tl={I:!0,A:!0};var Gl=function(e,t,n){let r=e[t];return r.tags.has("RomanNumeral")||r.tags.has("Acronym")?null:function(e,t){let n=e.text;return!(!1===Nl.test(n)||n.length>5||Tl.hasOwnProperty(n)||t.one.lexicon.hasOwnProperty(e.normal)||!0!==Dl.test(n)&&!0!==Cl.test(n)&&!0!==Il.test(n)&&!0!==xl.test(n))}(r,n)?(r.tags.clear(),ol(r,["Acronym","Noun"],"3-no-period-acronym"),!0):!Tl.hasOwnProperty(r.text)&&Il.test(r.text)?(r.tags.clear(),ol(r,["Acronym","Noun"],"3-one-letter-acronym"),!0):r.tags.has("Organization")&&r.text.length<=3?(ol(r,"Acronym","3-org-acronym"),!0):r.tags.has("Organization")&&Nl.test(r.text)&&r.text.length<=6?(ol(r,"Acronym","3-titlecase-acronym"),!0):null};const Ol=function(e,t){if(!e)return null;let n=t.find((t=>e.normal===t[0]));return n?n[1]:null},Bl=function(e,t){if(!e)return null;let n=t.find((t=>e.tags.has(t[0])));return n?n[1]:null};var zl=function(e,t,n){const{leftTags:r,leftWords:a,rightWords:o,rightTags:i}=n.two.neighbours;let s=e[t];if(0===s.tags.size){let l=null;if(l=l||Ol(e[t-1],a),l=l||Ol(e[t+1],o),l=l||Bl(e[t-1],r),l=l||Bl(e[t+1],i),l)return ol(s,l,"3-[neighbour]"),sl(e,t,n),e[t].confidence=.2,!0}return null};const Hl=function(e,t){return!!e&&(!e.tags.has("FirstName")&&!e.tags.has("Place")&&(!!(e.tags.has("ProperNoun")||e.tags.has("Organization")||e.tags.has("Acronym"))||(n=e.text,!!/^\p{Lu}[\p{Ll}'’]/u.test(n)&&(0!==t||e.tags.has("Singular")))));var n};var Vl=function(e,t,n){const r=n.model.two.orgWords,a=n.methods.one.setTag;let o=e[t];if(!0===r[o.machine||o.normal]&&Hl(e[t-1])){a([e[t]],"Organization",n,null,"3-[org-word]");for(let r=t;r>=0&&Hl(e[r],r);r-=1)a([e[r]],"Organization",n,null,"3-[org-word]")}return null};var Fl=function(e,t,n){0===e[t].tags.size&&(ol(e[t],"Noun","3-[fallback]"),sl(e,t,n),e[t].confidence=.1)};const $l=(e,t)=>e[t].tags.has("ProperNoun")?"Noun":null,Sl=(e,t,n)=>0!==t||e[1]?null:n,Jl={"Adj|Gerund":(e,t)=>$l(e,t),"Adj|Noun":(e,t)=>$l(e,t)||function(e,t){return!e[t+1]&&e[t-1]&&e[t-1].tags.has("Determiner")?"Noun":null}(e,t),"Adj|Past":(e,t)=>$l(e,t),"Adj|Present":(e,t)=>$l(e,t),"Noun|Gerund":(e,t)=>$l(e,t),"Noun|Verb":(e,t)=>$l(e,t)||Sl(e,t,"Infinitive"),"Plural|Verb":(e,t)=>$l(e,t)||Sl(e,t,"PresentTense"),"Person|Noun":(e,t)=>$l(e,t),"Person|Verb":(e,t)=>0!==t?$l(e,t):null};var Ml=Jl;const Ll="undefined"!=typeof process&&process.env?process.env:self.env||{},Wl=/^(under|over|mis|re|un|dis|semi)-?/,Kl=(e,t)=>{if(!e||!t)return null;let n=e.normal||e.implicit,r=null;return t.hasOwnProperty(n)&&(r=t[n]),r&&Ll.DEBUG_TAGS&&console.log(`\n  ↓ - '${n}' `),r},ql=(e,t={},n)=>{if(!e||!t)return null;let r=Array.from(e.tags).sort(((e,t)=>(n[e]?n[e].parents.length:0)>(n[t]?n[t].parents.length:0)?-1:1)),a=r.find((e=>t[e]));return a&&Ll.DEBUG_TAGS&&console.log(`  ↓ - '${e.normal||e.implicit}' (#${a}) `),a=t[a],a};var Ul=function(e,t,n){const r=n.model,a=n.methods.one.setTag,{switches:o,clues:i}=r.two,s=e[t];let l=s.normal||s.implicit||"";if(Wl.test(l)&&!o[l]&&(l=l.replace(Wl,"")),s.switch){let o=s.switch;if(s.tags.has("Acronym")||s.tags.has("PhrasalVerb"))return;let u=function(e,t,n,r){if(!n)return null;const a=r.one.tagSet;let o=Kl(e[t+1],n.afterWords);return o=o||Kl(e[t-1],n.beforeWords),o=o||ql(e[t-1],n.beforeTags,a),o=o||ql(e[t+1],n.afterTags,a),o}(e,t,i[o],r);Ml[o]&&(u=Ml[o](e,t)||u),u?(a([s],u,n,null,`3-[switch] (${o})`),sl(e,t,r)):Ll.DEBUG_TAGS&&console.log(`\n -> X - '${l}' : (${o}) `)}};var Rl=function(e,t,n){let r=e[t+1];if(!r)return;let{prefixes:a}=n.one,o=e[t];!0===a[o.normal]&&(r.tags.has("Verb")&&(ol(o,"Verb","3-[prefix]"),ol(o,"Prefix","3-[prefix]")),r.tags.has("Adjective")&&(ol(o,"Adjective","3-[prefix]"),ol(o,"Prefix","3-[prefix]")))};const Ql={tagSwitch:al,checkSuffix:fl,checkRegex:yl,checkCase:ml,checkPrefix:wl,checkHyphen:Rl,checkYear:jl},Zl={checkAcronym:Gl,neighbours:zl,orgWords:Vl,nounFallback:Fl,switches:Ul},Xl=function(e,t,n){for(let r=0;r{let t=e.machine||e.normal||e.text;return t=t.replace(/'s$/,""),t},Plural:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.noun.toSingular(n,t.model)},Copula:()=>"is",PastTense:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"PastTense")},Gerund:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.verb.toInfinitive(n,t.model,"Gerund")},PresentTense:(e,t)=>{let n=e.machine||e.normal||e.text;return e.tags.has("Infinitive")?n:t.methods.two.transform.verb.toInfinitive(n,t.model,"PresentTense")},Comparative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromComparative(n,t.model)},Superlative:(e,t)=>{let n=e.machine||e.normal||e.text;return t.methods.two.transform.adjective.fromSuperlative(n,t.model)},Adverb:(e,t)=>{const{fromAdverb:n}=t.methods.two.transform.adjective;return n(e.machine||e.normal||e.text)}};var tu=function(e){const t=e.world,n=Object.keys(eu);e.docs.forEach((e=>{for(let r=0;r{e.forEach((e=>{e.penn=function(e){if(e.tags.has("ProperNoun")&&e.tags.has("Plural"))return"NNPS";if(e.tags.has("Possessive")&&e.tags.has("Pronoun"))return"PRP$";if("there"===e.normal)return"EX";if("to"===e.normal)return"TO";let t=e.tagRank||[];for(let e=0;e{e.implicit=e.normal,e.text="",e.normal=""}));for(let e=0;e{let t=gu.test(e[0].text);e.forEach(((t,n)=>{t.text=t.implicit,delete t.implicit,ne.toUpperCase()))}(e[0].text))})),this.compute("normal"),this}}e.prototype.contractions=function(){let e=this.match("@hasContraction+");return new Contractions(this.document,e.pointer)},e.prototype.contract=du};var pu=function(e,t,n){let[r,a]=t;n&&0!==n.length&&(n=n.map(((e,t)=>(e.implicit=e.text,e.machine=e.text,e.pre="",e.post="",e.text="",e.normal="",e.index=[r,a+t],e))),n[0]&&(n[0].pre=e[r][a].pre,n[n.length-1].post=e[r][a].post,n[0].text=e[r][a].text,n[0].normal=e[r][a].normal),e[r].splice(a,1,...n))};const fu=/'/;var bu=function(e,t){let n=e[t].normal.split(fu)[0];if(((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t))return[n,"has"];if("let"===n)return[n,"us"];if("there"===n){let r=e[t+1];if(r&&r.tags.has("Plural"))return[n,"are"]}return[n,"is"]};const vu=/'/;var yu=function(e,t){let n=e[t].normal.split(vu)[0];return"how"===n||"what"===n?[n,"did"]:!0===((e,t)=>e.slice(t+1,t+3).some((e=>e.tags.has("PastTense"))))(e,t)?[n,"had"]:[n,"would"]};var wu=function(e,t){if("ain't"===e[t].normal||"aint"===e[t].normal){if(e[t+1]&&"never"===e[t+1].normal)return["have"];let n=function(e,t){for(let n=t-1;n>=0;n-=1)if(e[n].tags.has("Noun")||e[n].tags.has("Pronoun")||e[n].tags.has("Plural")||e[n].tags.has("Singular"))return e[n];return null}(e,t);if(n){if("we"===n.normal||"they"===n.normal)return["are","not"];if("i"===n.normal)return["am","not"];if(n.tags&&n.tags.has("Plural"))return["are","not"]}return["is","not"]}return[e[t].normal.replace(/n't/,""),"not"]};const ku={that:!0,there:!0,let:!0,here:!0,everywhere:!0},Pu={in:!0,by:!0,for:!0};var Au=(e,t)=>{let n=e[t];if(ku.hasOwnProperty(n.machine||n.normal))return!1;if(n.tags.has("Possessive"))return!0;if(n.tags.has("Pronoun")||n.tags.has("QuestionWord"))return!1;let r=e[t+1];if(!r)return!0;if(r.tags.has("Verb"))return!!r.tags.has("Infinitive")||!!r.tags.has("PresentTense");if(r.tags.has("Noun")){let e=r.machine||r.normal;return"here"!==e&&"there"!==e&&"everywhere"!==e&&(!r.tags.has("Possessive")&&!(r.tags.has("ProperNoun")&&!n.tags.has("ProperNoun")))}if(e[t-1]&&!0===Pu[e[t-1].normal])return!0;let a=e[t+2];return!(!a||!a.tags.has("Noun")||a.tags.has("Pronoun"))||(r.tags.has("Adjective")||r.tags.has("Adverb")||r.tags.has("Verb"),!1)};const Eu=/'/,ju=function(e,t,n,r){let a=t.update();a.document=[e];let o=n+r;n>0&&(n-=1),e[o]&&(o+=1),a.ptrs=[[0,n,o]],a.compute(["lexicon","preTagger"]),function(e){e.forEach(((e,t)=>{e.index&&(e.index[1]=t)}))}(e)},Iu={d:(e,t)=>yu(e,t),t:(e,t)=>wu(e,t),s:(e,t,n)=>Au(e,t)?n.methods.one.setTag([e[t]],"Possessive",n,"2-contraction"):bu(e,t)},Nu=function(e,t){let n=t.fromText(e.join(" "));return n.compute("id"),n.docs[0]};var Du={contractionTwo:e=>{let{world:t,document:n}=e;n.forEach(((r,a)=>{for(let o=r.length-1;o>=0;o-=1){if(r[o].implicit)return;let i=null;!0===Eu.test(r[o].normal)&&([,i]=r[o].normal.split(Eu));let s=null;Iu.hasOwnProperty(i)&&(s=Iu[i](r,o,t)),s&&(s=Nu(s,e),pu(n,[a,o],s),ju(n[a],e,o,s.length))}}))}},xu={compute:Du,api:mu,hooks:["contractionTwo"]};const Cu="(misty|rusty|dusty|rich|randy|sandy|young|earnest|frank|brown)";const Tu=["i","we","they"];let Gu=[].concat([{match:"(got|were|was|is|are|am) (#PastTense|#Participle)",tag:"Passive",reason:"got-walked"},{match:"(was|were|is|are|am) being (#PastTense|#Participle)",tag:"Passive",reason:"was-being"},{match:"(had|have|has) been (#PastTense|#Participle)",tag:"Passive",reason:"had-been"},{match:"will be being? (#PastTense|#Participle)",tag:"Passive",reason:"will-be-cleaned"},{match:"#Noun [(#PastTense|#Participle)] by (the|a) #Noun",group:0,tag:"Passive",reason:"suffered-by"}],[{match:"[(all|both)] #Determiner #Noun",group:0,tag:"Noun",reason:"all-noun"},{match:"#Copula [(just|alone)]$",group:0,tag:"Adjective",reason:"not-adverb"},{match:"#Singular is #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"is-filled"},{match:"[#PastTense] #Singular is",group:0,tag:"Adjective",reason:"smoked-poutine"},{match:"[#PastTense] #Plural are",group:0,tag:"Adjective",reason:"baked-onions"},{match:"well [#PastTense]",group:0,tag:"Adjective",reason:"well-made"},{match:"#Copula [fucked up?]",group:0,tag:"Adjective",reason:"swears-adjective"},{match:"#Singular (seems|appears) #Adverb? [#PastTense$]",group:0,tag:"Adjective",reason:"seems-filled"},{match:"#Copula #Adjective? [(out|in|through)]$",group:0,tag:"Adjective",reason:"still-out"},{match:"^[#Adjective] (the|your) #Noun",group:0,ifNo:["all","even"],tag:"Infinitive",reason:"shut-the"},{match:"the [said] #Noun",group:0,tag:"Adjective",reason:"the-said-card"},{match:"#Noun (that|which|whose) [#PastTense] #Noun",ifNo:"#Copula",group:0,tag:"Adjective",reason:"that-past-noun"},{match:"too much",tag:"Adverb Adjective",reason:"bit-4"},{match:"a bit much",tag:"Determiner Adverb Adjective",reason:"bit-3"}],[{match:"#Adverb [#Adverb] (and|or|then)",group:0,tag:"Adjective",reason:"kinda-sparkly-and"},{match:"[(dark|bright|flat|light|soft|pale|dead|dim|faux|little|wee|sheer|most|near|good|extra|all)] #Adjective",group:0,tag:"Adverb",reason:"dark-green"}],[{match:"(a|an) [#Gerund]",group:0,tag:"Adjective",reason:"a|an"},{match:"as [#Gerund] as",group:0,tag:"Adjective",reason:"as-gerund-as"},{match:"more [#Gerund] than",group:0,tag:"Adjective",reason:"more-gerund-than"},{match:"(so|very|extremely) [#Gerund]",group:0,tag:"Adjective",reason:"so-gerund"},{match:"(found|found) it #Adverb? [#Gerund]",group:0,tag:"Adjective",reason:"found-it-gerund"},{match:"a (little|bit|wee) bit? [#Gerund]",group:0,tag:"Adjective",reason:"a-bit-gerund"}],[{match:"#Determiner [#Adjective] #Copula",group:0,tag:"Noun",reason:"the-adj-is"},{match:"#Adjective [#Adjective] #Copula",group:0,tag:"Noun",reason:"adj-adj-is"},{match:"(his|its) [%Adj|Noun%]",group:0,tag:"Noun",reason:"his-fine"},{match:"#Copula #Adverb? [all]",group:0,tag:"Noun",reason:"is-all"},{match:"(have|had) [#Adjective] #Preposition .",group:0,tag:"Noun",reason:"have-fun"},{match:"#Gerund (giant|capital|center|zone|application)",tag:"Noun",reason:"brewing-giant"},{match:"#Preposition (a|an) [#Adjective]$",group:0,tag:"Noun",reason:"an-instant"},{match:"[brand #Gerund?] new",tag:"Adverb",group:0,reason:"brand-new"}],[{match:"[still] #Adjective",group:0,tag:"Adverb",reason:"still-advb"},{match:"[still] #Verb",group:0,tag:"Adverb",reason:"still-verb"},{match:"[so] #Adjective",group:0,tag:"Adverb",reason:"so-adv"},{match:"[way] #Comparative",group:0,tag:"Adverb",reason:"way-adj"},{match:"[way] #Adverb #Adjective",group:0,tag:"Adverb",reason:"way-too-adj"},{match:"[all] #Verb",group:0,tag:"Adverb",reason:"all-verb"},{match:"#Verb [like]",group:0,ifNo:["#Modal","#PhrasalVerb"],tag:"Adverb",reason:"verb-like"},{match:"(barely|hardly) even",tag:"Adverb",reason:"barely-even"},{match:"[even] #Verb",group:0,tag:"Adverb",reason:"even-walk"},{match:"[even] (#Determiner|#Possessive)",group:0,tag:"#Adverb",reason:"even-the"},{match:"even left",tag:"#Adverb #Verb",reason:"even-left"},{match:"[way] #Adjective",group:0,tag:"#Adverb",reason:"way-over"},{match:"#PresentTense [(hard|quick|long|bright|slow|fast|backwards|forwards)]",ifNo:"#Copula",group:0,tag:"Adverb",reason:"lazy-ly"},{match:"[much] #Adjective",group:0,tag:"Adverb",reason:"bit-1"},{match:"#Copula [#Adverb]$",group:0,tag:"Adjective",reason:"is-well"},{match:"a [(little|bit|wee) bit?] #Adjective",group:0,tag:"Adverb",reason:"a-bit-cold"},{match:"[(super|pretty)] #Adjective",group:0,tag:"Adverb",reason:"super-strong"},{match:"(become|fall|grow) #Adverb? [#PastTense]",group:0,tag:"Adjective",reason:"overly-weakened"},{match:"(a|an) #Adverb [#Participle] #Noun",group:0,tag:"Adjective",reason:"completely-beaten"},{match:"#Determiner #Adverb? [close]",group:0,tag:"Adjective",reason:"a-close"},{match:"#Gerund #Adverb? [close]",group:0,tag:"Adverb",reason:"being-close"},{match:"(the|those|these|a|an) [#Participle] #Noun",group:0,tag:"Adjective",reason:"blown-motor"},{match:"(#PresentTense|#PastTense) [back]",group:0,tag:"Adverb",reason:"charge-back"}],[{match:"[sun] the #Ordinal",tag:"WeekDay",reason:"sun-the-5th"},{match:"[sun] #Date",group:0,tag:"WeekDay",reason:"sun-feb"},{match:"#Date (on|this|next|last|during)? [sun]",group:0,tag:"WeekDay",reason:"1pm-sun"},{match:"(in|by|before|during|on|until|after|of|within|all) [sat]",group:0,tag:"WeekDay",reason:"sat"},{match:"(in|by|before|during|on|until|after|of|within|all) [wed]",group:0,tag:"WeekDay",reason:"wed"},{match:"(in|by|before|during|on|until|after|of|within|all) [march]",group:0,tag:"Month",reason:"march"},{match:"[sat] #Date",group:0,tag:"WeekDay",reason:"sat-feb"},{match:"#Preposition [(march|may)]",group:0,tag:"Month",reason:"in-month"},{match:"(this|next|last) [(march|may)]",tag:"#Date #Month",reason:"this-month"},{match:"(march|may) the? #Value",tag:"#Month #Date #Date",reason:"march-5th"},{match:"#Value of? (march|may)",tag:"#Date #Date #Month",reason:"5th-of-march"},{match:"[(march|may)] .? #Date",group:0,tag:"Month",reason:"march-and-feb"},{match:"#Date .? [(march|may)]",group:0,tag:"Month",reason:"feb-and-march"},{match:"#Adverb [(march|may)]",group:0,tag:"Verb",reason:"quickly-march"},{match:"[(march|may)] #Adverb",group:0,tag:"Verb",reason:"march-quickly"}],[{match:"#Holiday (day|eve)",tag:"Holiday",reason:"holiday-day"},{match:"#Value of #Month",tag:"Date",reason:"value-of-month"},{match:"#Cardinal #Month",tag:"Date",reason:"cardinal-month"},{match:"#Month #Value to #Value",tag:"Date",reason:"value-to-value"},{match:"#Month the #Value",tag:"Date",reason:"month-the-value"},{match:"(#WeekDay|#Month) #Value",tag:"Date",reason:"date-value"},{match:"#Value (#WeekDay|#Month)",tag:"Date",reason:"value-date"},{match:"(#TextValue && #Date) #TextValue",tag:"Date",reason:"textvalue-date"},{match:"#Month #NumberRange",tag:"Date",reason:"aug 20-21"},{match:"#WeekDay #Month #Ordinal",tag:"Date",reason:"week mm-dd"},{match:"#Month #Ordinal #Cardinal",tag:"Date",reason:"mm-dd-yyy"},{match:"(#Place|#Demonmym|#Time) (standard|daylight|central|mountain)? time",tag:"Timezone",reason:"std-time"},{match:"(eastern|mountain|pacific|central|atlantic) (standard|daylight|summer)? time",tag:"Timezone",reason:"eastern-time"},{match:"#Time [(eastern|mountain|pacific|central|est|pst|gmt)]",group:0,tag:"Timezone",reason:"5pm-central"},{match:"(central|western|eastern) european time",tag:"Timezone",reason:"cet"}],[{match:"more #Noun",tag:"Noun",reason:"more-noun"},{match:"(right|rights) of .",tag:"Noun",reason:"right-of"},{match:"a [bit]",group:0,tag:"Noun",reason:"bit-2"},{match:"some [#Verb] #Plural",group:0,tag:"Noun",reason:"determiner6"},{match:"#Possessive #Ordinal [#PastTense]",group:0,tag:"Noun",reason:"first-thought"},{match:"(the|this|those|these) #Adjective [%Verb|Noun%]",group:0,tag:"Noun",ifNo:"#Copula",reason:"the-adj-verb"},{match:"(the|this|those|these) #Adverb #Adjective [#Verb]",group:0,tag:"Noun",reason:"determiner4"},{match:"the [#Verb] #Preposition .",group:0,tag:"Noun",reason:"determiner1"},{match:"#Determiner [#Verb] of",group:0,tag:"Noun",reason:"the-verb-of"},{match:"#Determiner #Noun of [#Verb]",group:0,tag:"Noun",ifNo:"#Gerund",reason:"noun-of-noun"},{match:"#PastTense #Preposition [#PresentTense]",group:0,ifNo:["#Gerund"],tag:"Noun",reason:"ended-in-ruins"},{match:"#Conjunction [u]",group:0,tag:"Pronoun",reason:"u-pronoun-2"},{match:"[u] #Verb",group:0,tag:"Pronoun",reason:"u-pronoun-1"},{match:"#Determiner [(western|eastern|northern|southern|central)] #Noun",group:0,tag:"Noun",reason:"western-line"},{match:"(#Singular && @hasHyphen) #PresentTense",tag:"Noun",reason:"hyphen-verb"},{match:"is no [#Verb]",group:0,tag:"Noun",reason:"is-no-verb"},{match:"do [so]",group:0,tag:"Noun",reason:"so-noun"},{match:"#Determiner [(shit|damn|hell)]",group:0,tag:"Noun",reason:"swears-noun"},{match:"to [(shit|hell)]",group:0,tag:"Noun",reason:"to-swears"},{match:"(the|these) [#Singular] (were|are)",group:0,tag:"Plural",reason:"singular-were"},{match:"a #Noun+ or #Adverb+? [#Verb]",group:0,tag:"Noun",reason:"noun-or-noun"},{match:"(the|those|these|a|an) #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"det-inf"},{match:"(the|those|these|a|an) #Adjective? [#PresentTense]",ifNo:["#Gerund","#Copula"],group:0,tag:"Noun",reason:"det-pres"},{match:"#Noun #Actor",tag:"Actor",reason:"thing-doer"},{match:"co #Singular",tag:"Actor",reason:"co-noun"},{match:"#Determiner [sun]",group:0,tag:"Singular",reason:"the-sun"},{match:"#Verb (a|an) [#Value]",group:0,tag:"Singular",reason:"did-a-value"},{match:"the [(can|will|may)]",group:0,tag:"Singular",reason:"the can"},{match:"#FirstName #Acronym? (#Possessive && #LastName)",tag:"Possessive",reason:"name-poss"},{match:"#Organization+ #Possessive",tag:"Possessive",reason:"org-possessive"},{match:"#Place+ #Possessive",tag:"Possessive",reason:"place-possessive"},{match:"#Possessive #PresentTense",ifNo:"#Gerund",tag:"Noun",reason:"possessive-verb"},{match:"#Value of a [second]",group:0,unTag:"Value",tag:"Singular",reason:"10th-of-a-second"},{match:"#Value [seconds]",group:0,unTag:"Value",tag:"Plural",reason:"10-seconds"},{match:"in [#Infinitive]",group:0,tag:"Singular",reason:"in-age"},{match:"a [#Adjective] #Preposition",group:0,tag:"Noun",reason:"a-minor-in"},{match:"#Determiner [#Singular] said",group:0,tag:"Actor",reason:"the-actor-said"},{match:"#Determiner #Noun [(feel|sense|process|rush|side|bomb|bully|challenge|cover|crush|dump|exchange|flow|function|issue|lecture|limit|march|process)] !(#Preposition|to|#Adverb)?",group:0,tag:"Noun",reason:"the-noun-sense"},{match:"[#PresentTense] (of|by|for) (a|an|the) #Noun #Copula",group:0,tag:"Plural",reason:"photographs-of"},{match:"#Infinitive and [%Noun|Verb%]",group:0,tag:"Infinitive",reason:"fight and win"},{match:"#Noun and [#Verb] and #Noun",group:0,tag:"Noun",reason:"peace-and-flowers"},{match:"the #Cardinal [%Adj|Noun%]",group:0,tag:"Noun",reason:"the-1992-classic"},{match:"#Copula the [%Adj|Noun%] #Noun",group:0,tag:"Adjective",reason:"the-premier-university"},{match:"i #Verb [me] #Noun",group:0,tag:"Possessive",reason:"scottish-me"}],[{match:"(this|that|the|a|an) [#Gerund #Infinitive]",group:0,tag:"Singular",reason:"the-planning-process"},{match:"(that|the) [#Gerund #PresentTense]",group:0,tag:"Plural",reason:"the-paving-stones"},{match:"#Determiner [#Gerund] #Noun",group:0,tag:"Adjective",reason:"the-gerund-noun"},{match:"#Pronoun #Infinitive [#Gerund] #PresentTense",group:0,tag:"Noun",reason:"tipping-sucks"},{match:"#Adjective [#Gerund]",group:0,tag:"Noun",reason:"early-warning"},{match:"[#Gerund] #Adverb? not? #Copula",group:0,tag:"Activity",reason:"gerund-copula"},{match:"[#Gerund] #Modal",group:0,tag:"Activity",reason:"gerund-modal"}],[{match:"#Infinitive (this|that|the) [#Infinitive]",group:0,tag:"Noun",reason:"do-this-dance"},{match:"#Gerund #Determiner [#Infinitive]",group:0,tag:"Noun",reason:"running-a-show"},{match:"#Determiner #Adverb [#Infinitive]",group:0,tag:"Noun",reason:"the-reason"},{match:"(the|this|a|an) [#Infinitive] #Adverb? #Verb",group:0,tag:"Noun",reason:"determiner5"},{match:"#Determiner [#Infinitive] #Noun",group:0,tag:"Noun",reason:"determiner7"},{match:"#Determiner #Adjective #Adjective? [#Infinitive]",group:0,tag:"Noun",reason:"a-nice-inf"},{match:"#Determiner #Demonym [#PresentTense]",group:0,tag:"Noun",reason:"mexican-train"},{match:"#Adjective #Noun+ [#Infinitive] #Copula",group:0,tag:"Noun",reason:"career-move"},{match:"at some [#Infinitive]",group:0,tag:"Noun",reason:"at-some-inf"},{match:"(go|goes|went) to [#Infinitive]",group:0,tag:"Noun",reason:"goes-to-verb"},{match:"(a|an) #Adjective? #Noun [#Infinitive] (#Preposition|#Noun)",group:0,tag:"Noun",reason:"a-noun-inf"},{match:"(a|an) #Noun [#Infinitive]$",group:0,tag:"Noun",reason:"a-noun-inf2"},{match:"#Copula [#Infinitive] #Noun",group:0,tag:"Noun",reason:"is-pres-noun"},{match:"#Gerund #Adjective? for [#Infinitive]",group:0,tag:"Noun",reason:"running-for"},{match:"#Gerund #Adjective to [#Infinitive]",group:0,tag:"Noun",reason:"running-to"},{match:"(one|1) [#Infinitive]",group:0,tag:"Singular",reason:"1-trains"},{match:"about [#Infinitive]",group:0,tag:"Singular",reason:"about-love"},{match:"on [#Infinitive]",group:0,tag:"Noun",reason:"on-stage"},{match:"any [#Infinitive]",group:0,tag:"Noun",reason:"any-charge"},{match:"no [#Infinitive]",group:0,tag:"Noun",reason:"no-doubt"},{match:"number of [#PresentTense]",group:0,tag:"Noun",reason:"number-of-x"},{match:"(taught|teaches|learns|learned) [#PresentTense]",group:0,tag:"Noun",reason:"teaches-x"},{match:"(try|use|attempt|build|make) [#Verb]",ifNo:["#Copula","#PhrasalVerb"],group:0,tag:"Noun",reason:"do-verb"},{match:"^[#Infinitive] (is|was)",group:0,tag:"Noun",reason:"checkmate-is"},{match:"#Infinitive much [#Infinitive]",group:0,tag:"Noun",reason:"get-much"},{match:"[cause] #Pronoun #Verb",group:0,tag:"Conjunction",reason:"cause-cuz"},{match:"the #Singular [#Infinitive] #Noun",group:0,tag:"Noun",ifNo:"#Pronoun",reason:"cardio-dance"},{match:"#Determiner #Modal [#Noun]",group:0,tag:"PresentTense",reason:"should-smoke"},{match:"(this|that) [#Plural]",group:0,tag:"PresentTense",reason:"this-verbs"},{match:"(let|make|made) (him|her|it|#Person|#Place|#Organization)+ [#Singular] (a|an|the|it)",group:0,tag:"Infinitive",reason:"let-him-glue"},{match:"#Verb (all|every|each|most|some|no) [#PresentTense]",ifNo:"#Modal",group:0,tag:"Noun",reason:"all-presentTense"},{match:"(had|have|#PastTense) #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adj-presentTense"},{match:"#Value #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"one-big-reason"},{match:"#PastTense #Adjective+ [#PresentTense]",group:0,tag:"Noun",reason:"won-wide-support"},{match:"(many|few|several|couple) [#PresentTense]",group:0,tag:"Noun",reason:"many-poses"},{match:"#Adverb #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"very-big-dream"},{match:"#Adjective #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"adorable-little-store"},{match:"#Gerund #Adverb? #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"higher-costs"},{match:"(#Noun && @hasComma) #Noun (and|or) [#PresentTense]",group:0,tag:"Noun",reason:"noun-list"},{match:"(many|any|some|several) [#PresentTense] for",group:0,tag:"Noun",reason:"any-verbs-for"},{match:"to #PresentTense #Noun [#PresentTense] #Preposition",group:0,tag:"Noun",reason:"gas-exchange"},{match:"#PastTense (until|as|through|without) [#PresentTense]",group:0,tag:"Noun",reason:"waited-until-release"},{match:"#Gerund like #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"like-hot-cakes"},{match:"some #Adjective [#PresentTense]",group:0,tag:"Noun",reason:"some-reason"},{match:"for some [#PresentTense]",group:0,tag:"Noun",reason:"for-some-reason"},{match:"(same|some|the|that|a) kind of [#PresentTense]",group:0,tag:"Noun",reason:"some-kind-of"},{match:"(same|some|the|that|a) type of [#PresentTense]",group:0,tag:"Noun",reason:"some-type-of"},{match:"#Gerund #Adjective #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"doing-better-for-x"},{match:"(get|got|have|had) #Comparative [#PresentTense]",group:0,tag:"Noun",reason:"got-better-aim"},{match:"whose [#PresentTense] #Copula",group:0,tag:"Noun",reason:"whos-name-was"},{match:"#PhrasalVerb #PhrasalVerb #Preposition [#PresentTense]",group:0,tag:"Noun",reason:"given-up-on-x"},{match:"there (are|were) #Adjective? [#PresentTense]",group:0,tag:"Plural",reason:"there-are"},{match:"#Value [#PresentTense]",group:0,ifNo:["one","1","#Copula","#Infinitive"],tag:"Plural",reason:"2-trains"},{match:"[#PresentTense] (are|were) #Adjective",group:0,tag:"Plural",reason:"compromises-are-possible"},{match:"^[(hope|guess|thought|think)] #Pronoun #Verb",group:0,tag:"Infinitive",reason:"suppose-i"},{match:"#PresentTense #Possessive [#PresentTense]",ifNo:"#Gerund",group:0,tag:"Plural",reason:"pursue-its-dreams"},{match:"#Possessive #Adjective [#Verb]",group:0,tag:"Noun",reason:"our-full-support"},{match:"(do|did|will) [#Singular] #Noun",group:0,tag:"PresentTense",reason:"do-serve-fish"},{match:"[(tastes|smells)] #Adverb? #Adjective",group:0,tag:"PresentTense",reason:"tastes-good"},{match:"^are #Pronoun [#Noun]",group:0,ifNo:["here","there"],tag:"Verb",reason:"are-you-x"},{match:"#Copula #Gerund [#PresentTense] !by?",group:0,tag:"Noun",ifNo:["going"],reason:"ignoring-commute"},{match:"#Determiner #Adjective? [(shed|thought|rose|bid|saw|spelt)]",group:0,tag:"Noun",reason:"noun-past"}],[{match:"#Money and #Money #Currency?",tag:"Money",reason:"money-and-money"},{match:"#Value #Currency [and] #Value (cents|ore|centavos|sens)",group:0,tag:"money",reason:"and-5-cents"},{match:"#Value (mark|rand|won|rub|ore)",tag:"#Money #Currency",reason:"4 mark"}],[{match:"[(half|quarter)] of? (a|an)",group:0,tag:"Fraction",reason:"millionth"},{match:"#Adverb [half]",group:0,tag:"Fraction",reason:"nearly-half"},{match:"[half] the",group:0,tag:"Fraction",reason:"half-the"},{match:"#Cardinal and a half",tag:"Fraction",reason:"and-a-half"},{match:"#Value (halves|halfs|quarters)",tag:"Fraction",reason:"two-halves"},{match:"a #Ordinal",tag:"Fraction",reason:"a-quarter"},{match:"[#Cardinal+] (#Fraction && /s$/)",tag:"Fraction",reason:"seven-fifths"},{match:"[#Cardinal+ #Ordinal] of .",group:0,tag:"Fraction",reason:"ordinal-of"},{match:"[(#NumericValue && #Ordinal)] of .",group:0,tag:"Fraction",reason:"num-ordinal-of"},{match:"(a|one) #Cardinal?+ #Ordinal",tag:"Fraction",reason:"a-ordinal"},{match:"#Cardinal+ out? of every? #Cardinal",tag:"Fraction",reason:"out-of"}],[{match:"#Cardinal [second]",tag:"Unit",reason:"one-second"},{match:"!once? [(a|an)] (#Duration|hundred|thousand|million|billion|trillion)",group:0,tag:"Value",reason:"a-is-one"},{match:"1 #Value #PhoneNumber",tag:"PhoneNumber",reason:"1-800-Value"},{match:"#NumericValue #PhoneNumber",tag:"PhoneNumber",reason:"(800) PhoneNumber"},{match:"#Demonym #Currency",tag:"Currency",reason:"demonym-currency"},{match:"#Value [(buck|bucks|grand)]",group:0,tag:"Currency",reason:"value-bucks"},{match:"[#Value+] #Currency",group:0,tag:"Money",reason:"15 usd"},{match:"[second] #Noun",group:0,tag:"Ordinal",reason:"second-noun"},{match:"#Value+ [#Currency]",group:0,tag:"Unit",reason:"5-yan"},{match:"#Value [(foot|feet)]",group:0,tag:"Unit",reason:"foot-unit"},{match:"#Value [#Abbreviation]",group:0,tag:"Unit",reason:"value-abbr"},{match:"#Value [k]",group:0,tag:"Unit",reason:"value-k"},{match:"#Unit an hour",tag:"Unit",reason:"unit-an-hour"},{match:"(minus|negative) #Value",tag:"Value",reason:"minus-value"},{match:"#Value (point|decimal) #Value",tag:"Value",reason:"value-point-value"},{match:"#Determiner [(half|quarter)] #Ordinal",group:0,tag:"Value",reason:"half-ordinal"},{match:"#Multiple+ and #Value",tag:"Value",reason:"magnitude-and-value"},{match:"#Value #Unit [(per|an) (hr|hour|sec|second|min|minute)]",group:0,tag:"Unit",reason:"12-miles-per-second"},{match:"#Value [(square|cubic)] #Unit",group:0,tag:"Unit",reason:"square-miles"}],[{match:"#Copula [(#Noun|#PresentTense)] #LastName",group:0,tag:"FirstName",reason:"copula-noun-lastname"},{match:"(sister|pope|brother|father|aunt|uncle|grandpa|grandfather|grandma) #ProperNoun",tag:"Person",reason:"lady-titlecase",safe:!0},{match:"#FirstName [#Determiner #Noun] #LastName",group:0,tag:"Person",reason:"first-noun-last"},{match:"#ProperNoun (b|c|d|e|f|g|h|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) #ProperNoun",tag:"Person",reason:"titlecase-acronym-titlecase",safe:!0},{match:"#Acronym #LastName",tag:"Person",reason:"acronym-lastname",safe:!0},{match:"#Person (jr|sr|md)",tag:"Person",reason:"person-honorific"},{match:"#Honorific #Acronym",tag:"Person",reason:"Honorific-TitleCase"},{match:"#Person #Person the? #RomanNumeral",tag:"Person",reason:"roman-numeral"},{match:"#FirstName [/^[^aiurck]$/]",group:0,tag:["Acronym","Person"],reason:"john-e"},{match:"#Noun van der? #Noun",tag:"Person",reason:"van der noun",safe:!0},{match:"(king|queen|prince|saint|lady) of #Noun",tag:"Person",reason:"king-of-noun",safe:!0},{match:"(prince|lady) #Place",tag:"Person",reason:"lady-place"},{match:"(king|queen|prince|saint) #ProperNoun",tag:"Person",reason:"saint-foo"},{match:"al (#Person|#ProperNoun)",tag:"Person",reason:"al-borlen",safe:!0},{match:"#FirstName de #Noun",tag:"Person",reason:"bill-de-noun"},{match:"#FirstName (bin|al) #Noun",tag:"Person",reason:"bill-al-noun"},{match:"#FirstName #Acronym #ProperNoun",tag:"Person",reason:"bill-acronym-title"},{match:"#FirstName #FirstName #ProperNoun",tag:"Person",reason:"bill-firstname-title"},{match:"#Honorific #FirstName? #ProperNoun",tag:"Person",reason:"dr-john-Title"},{match:"#FirstName the #Adjective",tag:"Person",reason:"name-the-great"},{match:"#ProperNoun (van|al|bin) #ProperNoun",tag:"Person",reason:"title-van-title",safe:!0},{match:"#ProperNoun (de|du) la? #ProperNoun",tag:"Person",reason:"title-de-title"},{match:"#Singular #Acronym #LastName",tag:"#FirstName #Person .",reason:"title-acro-noun",safe:!0},{match:"[#ProperNoun] #Person",group:0,tag:"Person",reason:"proper-person",safe:!0},{match:"#Person [#ProperNoun #ProperNoun]",group:0,tag:"Person",ifNo:"#Possessive",reason:"three-name-person",safe:!0},{match:"#FirstName #Acronym? [#ProperNoun]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"firstname-titlecase"},{match:"#FirstName [#FirstName]",group:0,tag:"LastName",reason:"firstname-firstname"},{match:"#FirstName #Acronym #Noun",tag:"Person",reason:"n-acro-noun",safe:!0},{match:"#FirstName [(de|di|du|van|von)] #Person",group:0,tag:"LastName",reason:"de-firstname"},{match:"[(private|general|major|rear|prime|field|count|miss)] #Honorific? #Person",group:0,tag:"Honorific",reason:"ambg-honorifics"},{match:"#Honorific #FirstName [#Singular]",group:0,tag:"LastName",ifNo:"#Possessive",reason:"dr-john-foo",safe:!0},{match:"[(his|her) (majesty|honour|worship|excellency|honorable)] #Person",group:0,tag:"Honorific",reason:"his-excellency"},{match:"%Honorific|Noun% %Honorific|Noun%",tag:"Honorific",reason:"Lieutenant colonel"},{match:"(first|second|third|1st|2nd|3rd) %Honorific|Noun%",tag:"Honorific",reason:"first lady"}],[{match:"%Person|Date% #Acronym? #ProperNoun",tag:"Person",reason:"jan-thierson"},{match:"%Person|Noun% #Acronym? #ProperNoun",tag:"Person",reason:"switch-person",safe:!0},{match:"%Person|Noun% #Organization",tag:"Organization",reason:"olive-garden"},{match:"%Person|Verb% #Acronym? #ProperNoun",tag:"Person",reason:"verb-propernoun"},{match:"[%Person|Verb%] (will|had|has|said|says|told|did|learned|wants|wanted)",group:0,tag:"Person",reason:"person-said"},{match:"[%Person|Place%] (harbor|harbour|pier|town|city|place|dump|landfill)",group:0,tag:"Place",reason:"sydney-harbour"},{match:"(west|east|north|south) [%Person|Place%]",group:0,tag:"Place",reason:"east-sydney"},{match:`${Cu} #Person`,tag:"Person",reason:"randy-smith"},{match:`${Cu} #Acronym? #ProperNoun`,tag:"Person",reason:"rusty-smith"},{match:`#Adverb [${Cu}]`,group:0,tag:"Adjective",reason:"really-rich"},{match:"#Modal [%Person|Verb%]",group:0,tag:"Verb",reason:"would-mark"},{match:"#Adverb [%Person|Verb%]",group:0,tag:"Verb",reason:"really-mark"},{match:"[%Person|Verb%] (#Adverb|#Comparative)",group:0,tag:"Verb",reason:"drew-closer"},{match:"%Person|Verb% #Person",tag:"Person",reason:"rob-smith"},{match:"%Person|Verb% #Acronym #ProperNoun",tag:"Person",reason:"rob-a-smith"},{match:"[will] #Verb",group:0,tag:"Modal",reason:"will-verb"},{match:"(will && @isTitleCase) #ProperNoun",tag:"Person",reason:"will-name"}],[{match:"#Copula (pretty|dead|full|well|sure) (#Adjective|#Noun)",tag:"#Copula #Adverb #Adjective",reason:"sometimes-adverb"},{match:"(#Pronoun|#Person) (had|#Adverb)? [better] #PresentTense",group:0,tag:"Modal",reason:"i-better"},{match:"(#Modal|i|they|we|do) not? [like]",group:0,tag:"PresentTense",reason:"modal-like"},{match:"#Noun #Adverb? [left]",group:0,tag:"PastTense",reason:"left-verb"},{match:"will #Adverb? not? #Adverb? [be] #Gerund",group:0,tag:"Copula",reason:"will-be-copula"},{match:"will #Adverb? not? #Adverb? [be] #Adjective",group:0,tag:"Copula",reason:"be-copula"},{match:"[march] (up|down|back|toward)",notIf:["#Date"],group:0,tag:"Infinitive",reason:"march-to"},{match:"#Modal [march]",group:0,tag:"Infinitive",reason:"must-march"},{match:"[may] be",group:0,tag:"Verb",reason:"may-be"},{match:"[(subject|subjects|subjected)] to",group:0,tag:"Verb",reason:"subject to"},{match:"[home] to",group:0,tag:"PresentTense",reason:"home to"},{match:"[open] #Determiner",group:0,tag:"Infinitive",reason:"open-the"},{match:"(were|was) being [#PresentTense]",group:0,tag:"PastTense",reason:"was-being"},{match:"(had|has|have) [been /en$/]",group:0,tag:"Auxiliary Participle",reason:"had-been-broken"},{match:"(had|has|have) [been /ed$/]",group:0,tag:"Auxiliary PastTense",reason:"had-been-smoked"},{match:"(had|has) #Adverb? [been] #Adverb? #PastTense",group:0,tag:"Auxiliary",reason:"had-been-adj"},{match:"(had|has) to [#Noun] (#Determiner|#Possessive)",group:0,tag:"Infinitive",reason:"had-to-noun"},{match:"have [#PresentTense]",group:0,tag:"PastTense",ifNo:["come","gotten"],reason:"have-read"},{match:"(does|will|#Modal) that [work]",group:0,tag:"PastTense",reason:"does-that-work"},{match:"[(sound|sounds)] #Adjective",group:0,tag:"PresentTense",reason:"sounds-fun"},{match:"[(look|looks)] #Adjective",group:0,tag:"PresentTense",reason:"looks-good"},{match:"[(need|needs)] to #Infinitive",group:0,tag:"PresentTense",reason:"need-to-learn"},{match:"[(start|starts|stop|stops|begin|begins)] #Gerund",group:0,tag:"Verb",reason:"starts-thinking"},{match:"(is|was|were) [(under|over) #PastTense]",group:0,tag:"Adverb Adjective",reason:"was-under-cooked"},{match:"[shit] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear1-verb"},{match:"[damn] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear2-verb"},{match:"[fuck] (#Determiner|#Possessive|them)",group:0,tag:"Verb",reason:"swear3-verb"},{match:"#Plural that %Noun|Verb%",tag:". #Preposition #Infinitive",reason:"jobs-that-work"},{match:"[works] for me",group:0,tag:"PresentTense",reason:"works-for-me"}],[{match:"(slowly|quickly) [#Adjective]",group:0,tag:"Verb",reason:"slowly-adj"},{match:"does (#Adverb|not)? [#Adjective]",group:0,tag:"PresentTense",reason:"does-mean"},{match:"[(fine|okay|cool|ok)] by me",group:0,tag:"Adjective",reason:"okay-by-me"},{match:"i (#Adverb|do)? not? [mean]",group:0,tag:"PresentTense",reason:"i-mean"},{match:"will #Adjective",tag:"Auxiliary Infinitive",reason:"will-adj"},{match:"#Pronoun [#Adjective] #Determiner #Adjective? #Noun",group:0,tag:"Verb",reason:"he-adj-the"},{match:"#Copula [%Adj|Present%] to #Verb",group:0,tag:"Verb",reason:"adj-to"},{match:"#Adjective and [#Gerund] !#Preposition?",group:0,tag:"Adjective",reason:"rude-and-x"},{match:"#Copula #Adverb? (over|under) [#PastTense]",group:0,tag:"Adjective",reason:"over-cooked"},{match:"#Copula #Adjective+ (and|or) [#PastTense]$",group:0,tag:"Adjective",reason:"bland-and-overcooked"},{match:"got #Adverb? [#PastTense] of",group:0,tag:"Adjective",reason:"got-tired-of"},{match:"(seem|seems|seemed|appear|appeared|appears|feel|feels|felt|sound|sounds|sounded) (#Adverb|#Adjective)? [#PastTense]",group:0,tag:"Adjective",reason:"felt-loved"},{match:"(seem|feel|seemed|felt) [#PastTense]",group:0,tag:"Adjective",reason:"seem-confused"},{match:"a (bit|little|tad) [#PastTense]",group:0,tag:"Adjective",reason:"a-bit-confused"},{match:"not be [%Adj|Past%]",group:0,tag:"Adjective",reason:"do-not-be-confused"}],[{match:"will (#Adverb|not)+? [have] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"will-have-vb"},{match:"[#Copula] (#Adverb|not)+? (#Gerund|#PastTense)",group:0,tag:"Auxiliary",reason:"copula-walking"},{match:"#Adverb+? [(#Modal|did)+] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"modal-verb"},{match:"#Modal (#Adverb|not)+? [have] (#Adverb|not)+? [had] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-have"},{match:"[(has|had)] (#Adverb|not)+? #PastTense",group:0,tag:"Auxiliary",reason:"had-walked"},{match:"[(do|does|did|will|have|had|has|got)] (not|#Adverb)+? #Verb",group:0,tag:"Auxiliary",reason:"have-had"},{match:"[about to] #Adverb? #Verb",group:0,tag:["Auxiliary","Verb"],reason:"about-to"},{match:"#Modal (#Adverb|not)+? [be] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"would-be"},{match:"[(#Modal|had|has)] (#Adverb|not)+? [been] (#Adverb|not)+? #Verb",group:0,tag:"Auxiliary",reason:"had-been"},{match:"[(be|being|been)] #Participle",group:0,tag:"Auxiliary",reason:"being-driven"},{match:"[may] #Adverb? #Infinitive",group:0,tag:"Auxiliary",reason:"may-want"},{match:"#Copula (#Adverb|not)+? [(be|being|been)] #Adverb+? #PastTense",group:0,tag:"Auxiliary",reason:"being-walked"},{match:"will [be] #PastTense",group:0,tag:"Auxiliary",reason:"will-be-x"},{match:"[(be|been)] (#Adverb|not)+? #Gerund",group:0,tag:"Auxiliary",reason:"been-walking"},{match:"[used to] #PresentTense",group:0,tag:"Auxiliary",reason:"used-to-walk"},{match:"#Copula (#Adverb|not)+? [going to] #Adverb+? #PresentTense",group:0,tag:"Auxiliary",reason:"going-to-walk"},{match:"#Imperative [(me|him|her)]",group:0,tag:"Reflexive",reason:"tell-him"},{match:"(is|was) #Adverb? [no]",group:0,tag:"Negative",reason:"is-no"}],[{match:"(#Verb && @hasHyphen) up",tag:"PhrasalVerb",reason:"foo-up"},{match:"(#Verb && @hasHyphen) off",tag:"PhrasalVerb",reason:"foo-off"},{match:"(#Verb && @hasHyphen) over",tag:"PhrasalVerb",reason:"foo-over"},{match:"(#Verb && @hasHyphen) out",tag:"PhrasalVerb",reason:"foo-out"},{match:"[#Verb (in|out|up|down|off|back)] (on|in)",ifNo:["#Copula"],tag:"PhrasalVerb Particle",reason:"walk-in-on"},{match:"#PhrasalVerb [#PhrasalVerb]",group:0,tag:"Particle",reason:"phrasal-particle"},{match:"(lived|went|crept|go) [on] for",group:0,tag:"PhrasalVerb",reason:"went-on"},{match:"help [(stop|end|make|start)]",group:0,tag:"Infinitive",reason:"help-stop"},{match:"[(stop|start|finish|help)] #Gerund",group:0,tag:"Infinitive",reason:"start-listening"},{match:"#Verb (him|her|it|us|himself|herself|itself|everything|something) [(up|down)]",group:0,tag:"Adverb",reason:"phrasal-pronoun-advb"}],[{match:"^do not? [#Infinitive #Particle?]",notIf:Tu,group:0,tag:"Imperative",reason:"do-eat"},{match:"^please do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"please-go"},{match:"^just do? not? [#Infinitive #Particle?]",group:0,tag:"Imperative",reason:"just-go"},{match:"^[#Infinitive] it #Comparative",notIf:Tu,group:0,tag:"Imperative",reason:"do-it-better"},{match:"^[#Infinitive] it (please|now|again|plz)",notIf:Tu,group:0,tag:"Imperative",reason:"do-it-please"},{match:"^[#Infinitive] (#Adjective|#Adverb)$",group:0,tag:"Imperative",ifNo:["so","such","rather","enough"],reason:"go-quickly"},{match:"^[#Infinitive] (up|down|over) #Determiner",group:0,tag:"Imperative",reason:"turn-down"},{match:"^[#Infinitive] (your|my|the|some|a|an)",group:0,ifNo:"like",tag:"Imperative",reason:"eat-my-shorts"},{match:"^[#Infinitive] (him|her|it|us|me)",group:0,tag:"Imperative",reason:"tell-him"},{match:"^[#Infinitive] #Adjective #Noun$",group:0,tag:"Imperative",reason:"avoid-loud-noises"},{match:"^(go|stop|wait|hurry) please?$",tag:"Imperative",reason:"go"},{match:"^(somebody|everybody) [#Infinitive]",group:0,tag:"Imperative",reason:"somebody-call"},{match:"^let (us|me) [#Infinitive]",group:0,tag:"Imperative",reason:"lets-leave"},{match:"^[(shut|close|open|start|stop|end|keep)] #Determiner #Noun",group:0,tag:"Imperative",reason:"shut-the-door"},{match:"^[go] to .",group:0,tag:"Imperative",reason:"go-to-toronto"},{match:"^#Modal you [#Infinitive]",group:0,tag:"Imperative",reason:"would-you-"},{match:"^never [#Infinitive]",group:0,tag:"Imperative",reason:"never-stop"},{match:"^come #Infinitive",tag:"Imperative",reason:"come-have"},{match:"^come and? #Infinitive",tag:"Imperative . Imperative",reason:"come-and-have"},{match:"^stay (out|away|back)",tag:"Imperative",reason:"stay-away"},{match:"^[stay] #Adjective",tag:"Imperative",reason:"stay-cool"},{match:"^[keep it] #Adjective",group:0,tag:"Imperative",reason:"keep-it-cool"},{match:"^do not [#Infinitive]",group:0,tag:"Imperative",reason:"do-not-be"},{match:"[#Infinitive] (yourself|yourselves)",group:0,tag:"Imperative",reason:"allow-yourself"},{match:"^[#Infinitive] #Gerund",group:0,tag:"Imperative",reason:"keep-playing"},{match:"^[#Infinitive] (to|for|into|toward)",group:0,tag:"Imperative",reason:"go-to"},{match:"^[#Infinitive] (and|or) #Infinitive",group:0,tag:"Imperative",reason:"inf-and-inf"}],[{match:"(that|which) were [%Adj|Gerund%]",group:0,tag:"Gerund",reason:"that-were-growing"}],[{match:"u r",tag:"#Pronoun #Copula",reason:"u r"},{match:"#Noun [(who|whom)]",group:0,tag:"Determiner",reason:"captain-who"},{match:"[had] #Noun+ #PastTense",group:0,tag:"Condition",reason:"had-he"},{match:"[were] #Noun+ to #Infinitive",group:0,tag:"Condition",reason:"were-he"},{match:"holy (shit|fuck|hell)",tag:"Expression",reason:"swears-expression"},{match:"^(well|so|okay|now)",tag:"Expression",reason:"well-"},{match:"some sort of",tag:"Adjective Noun Conjunction",reason:"some-sort-of"},{match:"of some sort",tag:"Conjunction Adjective Noun",reason:"of-some-sort"},{match:"[such] (a|an|is)? #Noun",group:0,tag:"Determiner",reason:"such-skill"},{match:"(say|says|said) [sorry]",group:0,tag:"Expression",reason:"say-sorry"},{match:"^(ok|alright|well|shoot|hell|anyways)",tag:"Expression",reason:"ok-"},{match:"^[come on] #Noun",group:0,tag:"Expression",reason:"come-on"},{match:"^(say && @hasComma)",tag:"Expression",reason:"say-"},{match:"^(like && @hasComma)",tag:"Expression",reason:"like-"},{match:"[right] (before|after|in|into|to|toward)",group:0,tag:"#Adverb",reason:"right-into"},{match:"#Verb [(out|for|through|about|around|in|down|up|on|off)] #Preposition",group:0,ifNo:["#Copula"],tag:"Particle",reason:"rush-out"},{match:"#Preposition [about]",group:0,tag:"Adjective",reason:"at-about"},{match:"^[(dude|man|girl)] #Pronoun",group:0,tag:"Expression",reason:"dude-i"},{match:"(always|nearly|barely|practically) [there]",group:0,tag:"Adjective",reason:"always-there"},{match:"[there] (#Adverb|#Pronoun)? #Copula",group:0,tag:"There",reason:"there-is"},{match:"#Copula [there] .",group:0,tag:"There",reason:"is-there"},{match:"#Modal #Adverb? [there]",group:0,tag:"There",reason:"should-there"}],[{match:"#Noun (&|n) #Noun",tag:"Organization",reason:"Noun-&-Noun"},{match:"#Organization of the? #ProperNoun",tag:"Organization",reason:"org-of-place",safe:!0},{match:"#Organization #Country",tag:"Organization",reason:"org-country"},{match:"#ProperNoun #Organization",tag:"Organization",reason:"titlecase-org"},{match:"#ProperNoun (ltd|co|inc|dept|assn|bros)",tag:"Organization",reason:"org-abbrv"},{match:"the [#Acronym]",group:0,tag:"Organization",reason:"the-acronym",safe:!0},{match:"(world|global|international|national|#Demonym) #Organization",tag:"Organization",reason:"global-org"},{match:"#Noun+ (public|private) school",tag:"School",reason:"noun-public-school"}],[{match:"(west|north|south|east|western|northern|southern|eastern)+ #Place",tag:"Region",reason:"west-norfolk"},{match:"#City [(al|ak|az|ar|ca|ct|dc|fl|ga|id|il|nv|nh|nj|ny|oh|pa|sc|tn|tx|ut|vt|pr)]",group:0,tag:"Region",reason:"us-state"},{match:"portland [or]",group:0,tag:"Region",reason:"portland-or"},{match:"#ProperNoun+ (district|region|province|county|prefecture|municipality|territory|burough|reservation)",tag:"Region",reason:"foo-district"},{match:"(district|region|province|municipality|territory|burough|state) of #ProperNoun",tag:"Region",reason:"district-of-Foo"},{match:"in [#ProperNoun] #Place",group:0,tag:"Place",reason:"propernoun-place"},{match:"#Value #Noun (st|street|rd|road|crescent|cr|way|tr|terrace|avenue|ave)",tag:"Address",reason:"address-st"}],[{match:"[so] #Noun",group:0,tag:"Conjunction",reason:"so-conj"},{match:"[(who|what|where|why|how|when)] #Noun #Copula #Adverb? (#Verb|#Adjective)",group:0,tag:"Conjunction",reason:"how-he-is-x"},{match:"#Copula [(who|what|where|why|how|when)] #Noun",group:0,tag:"Conjunction",reason:"when-he"},{match:"#Verb [that] #Pronoun",group:0,tag:"Conjunction",reason:"said-that-he"},{match:"#Noun [that] #Copula",group:0,tag:"Conjunction",reason:"that-are"},{match:"#Noun [that] #Verb #Adjective",group:0,tag:"Conjunction",reason:"that-seem"},{match:"#Noun #Copula not? [that] #Adjective",group:0,tag:"Adverb",reason:"that-adj"},{match:"#Verb #Adverb? #Noun [(that|which)]",group:0,tag:"Preposition",reason:"that-prep"},{match:"@hasComma [which] (#Pronoun|#Verb)",group:0,tag:"Preposition",reason:"which-copula"},{match:"#Noun [like] #Noun",group:0,tag:"Preposition",reason:"noun-like"},{match:"^[like] #Determiner",group:0,tag:"Preposition",reason:"like-the"},{match:"#Adverb [like]",group:0,tag:"Verb",reason:"really-like"},{match:"(not|nothing|never) [like]",group:0,tag:"Preposition",reason:"nothing-like"},{match:"#Verb #Pronoun [like]",group:0,tag:"Preposition",reason:"treat-them-like"},{match:"[#QuestionWord] (#Pronoun|#Determiner)",group:0,tag:"Preposition",reason:"how-he"},{match:"[#QuestionWord] #Participle",group:0,tag:"Preposition",reason:"when-stolen"},{match:"[how] (#Determiner|#Copula|#Modal|#PastTense)",group:0,tag:"QuestionWord",reason:"how-is"},{match:"#Plural [(who|which|when)] .",group:0,tag:"Preposition",reason:"people-who"}]);let Ou=null;var Bu={postTagger:function(e){const{world:t}=e,{model:n,methods:r}=t;Ou=Ou||r.one.buildNet(n.two.matches,t);let a=r.two.quickSplit(e.document).map((e=>{let t=e[0];return[t.index[0],t.index[1],t.index[1]+e.length]})),o=e.update(a);return o.cache(),o.sweep(Ou),e.uncache(),e},tagger:e=>e.compute(["lexicon","preTagger","postTagger"])};const zu={api:function(e){e.prototype.confidence=function(){let e=0,t=0;return this.docs.forEach((n=>{n.forEach((n=>{t+=1,e+=n.confidence||1}))})),0===t?1:(e=>Math.round(100*e)/100)(e/t)},e.prototype.tagger=function(){return this.compute(["tagger"])}},compute:Bu,model:{two:{matches:Gu}},hooks:["postTagger"]};var Hu=zu;var Vu=function(e,t){let n=function(e){return Object.keys(e.hooks).filter((e=>!e.startsWith("#")&&!e.startsWith("%")))}(t);if(0===n.length)return e;e._cache||e.cache();let r=e._cache;return e.filter(((e,t)=>n.some((e=>r[t].has(e)))))};var Fu=function(e,t){let n=t;"string"==typeof t&&(n=this.buildNet([{match:t}]));let r=this.tokenize(e),a=Vu(r,n);return a.found?(a.compute(["index","tagger"]),a.match(t)):r.none()},$u={lib:{lazy:Fu}};var Su=function(e,t){let n=t;return e.forEach((e=>{e.has("#Infinitive")||(n=function(e,t){let n=(0,e.methods.two.transform.verb.conjugate)(t,e.model);return e.has("#Gerund")?n.Gerund:e.has("#PastTense")?n.PastTense:e.has("#PresentTense")?n.PresentTense:e.has("#Gerund")?n.Gerund:t}(e,t)),e.replaceWith(n)})),e};var Ju=function(e,t,n){let r=e.split(/ /g).map((e=>`{${e}}`)).join(" "),a=this.match(r);return n&&(a=a.if(n)),a.has("#Verb")?Su(a,t):a.has("#Noun")?function(e,t){let n=t;e.has("#Plural")&&(n=(0,e.methods.two.transform.noun.toPlural)(t,e.model));e.replaceWith(n)}(a,t):a.has("#Adverb")?function(e,t){const{toAdverb:n}=e.methods.two.transform.adjective;let r=n(t);r&&e.replaceWith(r)}(a,t):a.has("#Adjective")?function(e,t){const{toComparative:n,toSuperlative:r}=e.methods.two.transform.adjective;let a=t;e.has("#Comparative")?a=n(a,e.model):e.has("#Superlative")&&(a=r(a,e.model)),a&&e.replaceWith(a)}(a,t):this};var Mu={api:function(e){e.prototype.swap=Ju}};b.plugin(uu),b.plugin(xu),b.plugin(Hu),b.plugin($u),b.plugin(Mu);export{b as default}; diff --git a/changelog.md b/changelog.md index fc1caa9b9..a7e7ef3de 100644 --- a/changelog.md +++ b/changelog.md @@ -18,7 +18,10 @@ While all _Major_ releases should be reviewed, our only _large_ releases are **v - **[new]** - @hasDash supports two dashes - **[new]** - `#Passive` verb tag - **[new]** - existential `#There` tag +- **[new]** - add tense info to sentence json - **[fix]** - verb tokenization issues +- **[fix]** - .replace() issues +- **[update]** - dependencies #### 14.5.2 [Oct 2022] - **[fix]** - runtime error #965 diff --git a/package-lock.json b/package-lock.json index 26650f2dc..908735b63 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "eslint": "8.25.0", "eslint-plugin-regexp": "1.9.0", "nlp-corpus": "4.4.0", - "rollup": "3.2.1", + "rollup": "3.2.3", "rollup-plugin-filesize-check": "0.0.1", "rollup-plugin-terser": "7.0.2", "shelljs": "0.8.5", @@ -2355,9 +2355,9 @@ } }, "node_modules/rollup": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.2.1.tgz", - "integrity": "sha512-Y9lBWYY7pOiWhJbwMEnLicDuTu9IqjJb5jJM88L8O5rdreJrX1j9WhriMHQSOwVYPFg1xkLoXQyDfQ2U6Ejzyg==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.2.3.tgz", + "integrity": "sha512-qfadtkY5kl0F5e4dXVdj2D+GtOdifasXHFMiL1SMf9ADQDv5Eti6xReef9FKj+iQPR2pvtqWna57s/PjARY4fg==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -4670,9 +4670,9 @@ } }, "rollup": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.2.1.tgz", - "integrity": "sha512-Y9lBWYY7pOiWhJbwMEnLicDuTu9IqjJb5jJM88L8O5rdreJrX1j9WhriMHQSOwVYPFg1xkLoXQyDfQ2U6Ejzyg==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.2.3.tgz", + "integrity": "sha512-qfadtkY5kl0F5e4dXVdj2D+GtOdifasXHFMiL1SMf9ADQDv5Eti6xReef9FKj+iQPR2pvtqWna57s/PjARY4fg==", "dev": true, "requires": { "fsevents": "~2.3.2" diff --git a/package.json b/package.json index 6fd5c6a08..7d3a8a67e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "Spencer Kelly (http://spencermounta.in)", "name": "compromise", "description": "modest natural language processing", - "version": "14.5.2", + "version": "14.6.0", "main": "./src/three.js", "unpkg": "./builds/compromise.js", "type": "module", @@ -100,7 +100,7 @@ "eslint": "8.25.0", "eslint-plugin-regexp": "1.9.0", "nlp-corpus": "4.4.0", - "rollup": "3.2.1", + "rollup": "3.2.3", "rollup-plugin-filesize-check": "0.0.1", "rollup-plugin-terser": "7.0.2", "shelljs": "0.8.5", @@ -114,4 +114,4 @@ "_tests/**" ], "license": "MIT" -} +} \ No newline at end of file diff --git a/scratch.js b/scratch.js index 8a4c0949c..de88c52fc 100644 --- a/scratch.js +++ b/scratch.js @@ -7,25 +7,6 @@ let txt = '' let doc // let m -// bug 1 -// doc = nlp('we fished') -// let vb = doc.verbs() - - -doc = nlp('gotten') -let res = doc.verbs().conjugate()[0] -// console.log(res) -let m = doc.verbs().debug().toGerund().debug() -doc.debug() - -// vb.fullSentence().compute(['lexicon', 'preTagger', 'postTagger', 'chunks']) -// vb.debug() -// console.log(doc.verbs().conjugate()) - -// bug 2 -// doc = nlp("when the rain pours, come have a drink").debug() -// console.log(doc.verbs().conjugate()) - // bug 3 // let doc = nlp("Dr. John Smith-McDonald...") // let opts = { @@ -36,12 +17,6 @@ doc.debug() // console.log(doc.text(opts)) -// let doc = nlp(`zero foo. one match foo. two foo.`) -// doc.remove('match') // first removal -// console.log(doc) -// doc.eq(0).remove() //second removal -// console.log(doc) -// doc.debug() // const doc = nlp("foobar. he was demanding his rights after. walking his plank after") // let net = nlp.buildNet([{ match: 'his .', ifNo: ['demanding', 'rights'] }]) diff --git a/src/3-three/verbs/find.js b/src/3-three/verbs/find.js index b51f76a5a..b97c1cbed 100644 --- a/src/3-three/verbs/find.js +++ b/src/3-three/verbs/find.js @@ -28,11 +28,6 @@ const findVerbs = function (doc) { // what i can sell will be m = m.splitBefore('(#PresentTense|#PastTense) [will be]$', 0) - // professes love - let toVerbs = m.match('(#PresentTense|#PastTense) #Infinitive') - if (toVerbs.found && !toVerbs.has('^go')) { - m = m.splitBefore('(#PresentTense|#PastTense) [#Infinitive]', 0) - } // 'allow yourself' m = m.not('#Reflexive$') diff --git a/src/_version.js b/src/_version.js index c78a59348..5ebce1b99 100644 --- a/src/_version.js +++ b/src/_version.js @@ -1 +1 @@ -export default '14.5.2' \ No newline at end of file +export default '14.6.0' \ No newline at end of file diff --git a/tests/one/change/remove.test.js b/tests/one/change/remove.test.js index 764aee419..d1e709b28 100644 --- a/tests/one/change/remove.test.js +++ b/tests/one/change/remove.test.js @@ -329,16 +329,16 @@ test('double-remove', function (t) { test('full-to-full', function (t) { const text = `Remove me 1: - - A some text - - B some text - - C some text` +- A some text +- B some text +- C some text` let doc = nlp(text) - doc.remove('Remove me #NumericValue') + doc.remove('Remove me 1') doc.match('text').prepend('prefix') const want = `- A some prefix text - - B some prefix text - - C some prefix text` +- B some prefix text +- C some prefix text` t.equal(doc.text(), want, here + 'full-to-full') t.end() }) \ No newline at end of file diff --git a/tests/three/verbs/misc.test.js b/tests/three/verbs/misc.test.js index 1080a48bc..399d00064 100644 --- a/tests/three/verbs/misc.test.js +++ b/tests/three/verbs/misc.test.js @@ -65,6 +65,16 @@ test('adverbs method', function (t) { t.end() }) +test('conjugate stable', function (t) { + let doc = nlp('we fished') + let res = doc.verbs().conjugate()[0] + t.equal(res.Infinitive, 'fish', here + 'Infinitive conj') + t.equal(res.PastTense, 'fished', here + 'PastTense conj') + t.equal(res.PresentTense, 'fish', here + 'PresentTense conj') + t.equal(res.FutureTense, 'will fish', here + 'FutureTense conj') + t.end() +}) + // test('was shocked looking at', function (t) { // let doc = nlp('i was shocked looking at the race') // let verbs = doc.verbs() diff --git a/tests/three/verbs/verb-find.test.js b/tests/three/verbs/verb-find.test.js index b3b93501f..4bff0e14f 100644 --- a/tests/three/verbs/verb-find.test.js +++ b/tests/three/verbs/verb-find.test.js @@ -61,9 +61,13 @@ test('verb-splitter:', function (t) { verbs: ['will go eat'], }, { - str: `we will walk eat`, + str: `we will walk and eat`, verbs: ['will walk', 'eat'], }, + { + str: `when the rain pours, come have a drink`, + verbs: ['pours,', 'come have'], + }, // { // str: `poodles like to be pampered`, // verbs: ['like', 'be pampered'],