Commit d89b0fc9 authored by Alexandra Rogova's avatar Alexandra Rogova

first commit

parent 2646f9aa
......@@ -45,6 +45,19 @@ input{
padding: 0 20px;
}
input[type="button"]{
width: 8em;
height: 2em;
position: relative;
border-radius: 3px;
}
input[type="button"]:hover{
cursor: pointer;
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
transition:all 200ms ease-out;
}
::-webkit-scrollbar {
display: none;
}
......@@ -97,3 +110,11 @@ input{
padding-bottom:0.2%;
}
.showbox {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
padding: 5%;
}
flexsearch @ 38e457cb
Subproject commit 38e457cb1b48abad1f91dc3332bc528e3e97cb76
jio @ b08e246c
Subproject commit b08e246c91d99293f685c85e990174f204964ca4
msgpack-lite @ 5b71d82c
Subproject commit 5b71d82cad4b96289a466a6403d2faaa3e254167
renderjs @ c04e9c65
Subproject commit c04e9c65bc354f3ea43ce55afaa427f56fd9bae4
<!doctype html>
<html>
<head>
<title>Model Gadget</title>
<script src="../jio/external/rsvp-2.0.4.js"></script>
<script src="../jio/dist/jio-latest.js"></script>
<script src="../renderjs/dist/renderjs-latest.js"></script>
<script src="./elasticlunr/elasticlunr.js"></script>
<script src="./lunr-languages/lunr.stemmer.support.js"></script>
<script src="./lunr-languages/lunr.fr.js"></script>
<script src="gadget_client_model.js"></script>
</head>
<body>
</body>
</html>
\ No newline at end of file
/*jslint nomen: true, indent: 2, maxerr: 3, maxlen: 80*/
/*global window, RSVP, rJS, jIO*/
(function (window, document, RSVP, rJS, jIO) {
"use strict";
rJS(window)
.declareAcquiredMethod("get_server_model", "get_server_model")
.setState({
my_docs : null,
my_indexes : null,
indexes : null
})
.ready(function(){
var my_docs = jIO.createJIO({
type : "indexeddb",
database : "mynij.my_docs"
}),
my_indexes = jIO.createJIO({
type : "indexeddb",
database : "mynij.my_indexes"
});
this.changeState({
my_docs : my_docs,
my_indexes : my_indexes,
indexes : []
});
})
.onStateChange(function (modification_dict){
if (this.state.indexes.length === 0) return this._load_my_indexes();
})
.declareMethod("search_in_index", function(index_name, key){
if (this.state.indexes.length === 0) return null;
return this.get_right_index(index_name)
.push(function(result_index){
if (result_index === null) return null;
return result_index.search(key);
});
})
.declareMethod("get_right_index", function(index_name){
var i;
for (i=0; i<this.state.indexes.length; i+=1){
if (this.state.indexes[i].name === index_name) return this.state.indexes[i].index;
}
return null;
})
.declareMethod("search_in_all", function(key){
// TODO later
})
.declareMethod("_load_my_indexes", function(){
var gadget = this,
index_names;
return gadget.state.my_indexes.allDocs()
.push(function(index_ids){
var i,
promise_list = [];
index_names = index_ids;
for (i=0; i<index_ids.data.rows.length; i+=1){
promise_list.push(gadget.state.my_indexes.get(index_ids.data.rows[i].id));
}
return RSVP.all(promise_list);
})
.push(function(indexes){
var i,
promise_list = [];
for (i=0; i<indexes.length; i+=1){
promise_list.push(gadget._build_index(index_names.data.rows[i].id, indexes[i]));
}
return RSVP.all(promise_list);
});
})
.declareMethod("download_new_index", function(index_name){
var gadget = this,
server,
index_received;
return gadget.get_server_model()
.push(function(server_model){
server = server_model;
})
.push(function(){
return server.get_index(index_name);
})
.push(function(index_result){
index_received = index_result;
var promise_list = [];
promise_list.push(gadget._download_all_index_docs(index_result.docs, server));
promise_list.push(gadget._download_actual_index(index_name, index_received.index));
return RSVP.all(promise_list);
});
})
.declareMethod("_download_all_index_docs", function(doc_list, server){
var i,
gadget = this,
promise_list = [],
doc_info;
for (i=0; i<doc_list.length; i+=1){
promise_list.push(server.get_doc(doc_list[i]));
}
return new RSVP.Queue()
.push(function(){
return RSVP.all(promise_list);
})
.push(function(doc_info){
var i,
promise_list = [];
for (i=0; i<doc_info.length; i+=1){
promise_list.push(gadget.state.my_docs.put(doc_list[i], {links : doc_info[i]}));
promise_list.push(gadget._download_doc_attachments(doc_list[i], doc_info[i], server));
}
return RSVP.all(promise_list);
});
})
.declareMethod("_download_doc_attachments", function(doc_name, attachment_list, server){
var i,
gadget = this,
promise_list = [];
for (i=0; i<attachment_list.links.length; i+=1){
promise_list.push(server.get_attachment(doc_name, attachment_list.links[i], {"format": "text"}));
}
return new RSVP.Queue()
.push(function(){
return RSVP.all(promise_list);
})
.push(function(attachments){
var i,
promise_list = [];
for (i=0; i<attachments.length; i+=1){
promise_list.push(gadget.state.my_docs.putAttachment(doc_name, attachment_list.links[i], new Blob([attachments[i], {type : "text/xml"}])));
}
return RSVP.all(promise_list);
});
})
.declareMethod("_download_actual_index", function(index_name, index){
this.state.indexes.push({name : index_name, index : index});
return this.state.my_indexes.put(index_name, JSON.stringify(index));
})
.declareMethod("_build_index", function(index_name, index){
var raw_index,
new_index,
key,
doc;
new_index = elasticlunr(function () {
this.use(elasticlunr.fr);
this.addField('title');
this.addField('body');
this.addField('link');
this.setRef('id'); //id = index.x."/a/b" where index = index name, x = doc name, "/a/b" = item id in x
});
raw_index = JSON.parse(index);
for (key in raw_index.documentStore.docs){
doc = {
"id" : raw_index.documentStore.docs[key].id,
"title" : raw_index.documentStore.docs[key].title,
"body" : raw_index.documentStore.docs[key].body,
"link" : raw_index.documentStore.docs[key].link
};
new_index.addDoc(doc);
}
this.state.indexes.push({name: index_name, index : new_index});
});
}(window, document, RSVP, rJS, jIO));
\ No newline at end of file
<!doctype html>
<html>
<head>
<title>Model Gadget</title>
<script src="../jio/external/rsvp-2.0.4.js"></script>
<script src="../jio/dist/jio-latest.js"></script>
<script src="../renderjs/dist/renderjs-latest.js"></script>
<script src="./elasticlunr/elasticlunr.js"></script>
<script src="./lunr-languages/lunr.stemmer.support.js"></script>
<script src="./lunr-languages/lunr.fr.js"></script>
<script src="gadget_model.js"></script>
</head>
<body>
</body>
</html>
\ No newline at end of file
/*jslint nomen: true, indent: 2, maxerr: 3, maxlen: 80*/
/*global window, RSVP, rJS, jIO*/
(function (window, RSVP, rJS, jIO) {
"use strict";
rJS(window)
.ready(function(){
this.index = elasticlunr(function () {
this.use(elasticlunr.fr);
this.addField('title');
this.addField('body');
this.addField('link');
this.setRef('id'); //id = index.x."/a/b" where index = index name, x = substorage id, "/a/b" = item id in x
});
this.feeds = jIO.createJIO({
type : "indexeddb",
database : "mynij-v1.2"
});
this.index_storage = jIO.createJIO({
type : "indexeddb",
database : "mynij-index"
});
this.sub_storages = [];
this.info = jIO.createJIO({
type : "indexeddb",
database : "mynij-v1.2-info"
});
return this.feeds.put("feeds_doc", {});
})
.declareMethod ("add_attachment", function (title, rss){
var gadget = this, sub_id;
return gadget.feeds.putAttachment("feeds_doc", title, new Blob([rss], {type : "text/xml"}))
.push(function (){
var new_sub_storage = {
type : "my_parser",
document_id : "feeds_doc",
attachment_id : title,
parser : "rss",
sub_storage : {
type : "indexeddb",
database : "mynij-v1.2"
}
};
var tmp = jIO.createJIO(new_sub_storage);
gadget.sub_storages.push(tmp);
sub_id = gadget.sub_storages.length-1;
return gadget.sub_storages[sub_id].allDocs();
})
.push(function(all_new_items){
var i, promise_list = [];
for (i = 0; i<all_new_items.data.rows.length; i+=1){
promise_list.push(gadget.sub_storages[sub_id].get(all_new_items.data.rows[i].id));
}
return RSVP.all(promise_list);
})
.push(function(items){
var i, id, doc;
for (i=1; i<items.length; i++){
id = sub_id+"./0/"+i;
doc = {
"id": id,
"title": items[i].title,
"body": items[i].description,
"link": items[i].link
};
gadget.index.addDoc(doc);
}
return gadget.index_storage.put("index", {index : JSON.stringify(gadget.index)});
});
})
.declareMethod("load_index", function(){
var raw_index,
gadget = this;
return gadget.index_storage.get("index")
.push(function(result){
var key,
doc;
raw_index = JSON.parse(result.index);
for (key in raw_index.documentStore.docs){
doc = {
"id" : raw_index.documentStore.docs[key].id,
"title" : raw_index.documentStore.docs[key].title,
"body" : raw_index.documentStore.docs[key].body,
"link" : raw_index.documentStore.docs[key].link
};
gadget.index.addDoc(doc);
}
});
})
.declareMethod("allDocs", function (){
var promise_list = [],
i;
for (i=0; i<this.sub_storages.length; i+=1){
promise_list.push(this.sub_storages[i].allDocs());
}
return RSVP.all(promise_list);
})
.declareMethod("get", function (id_storage, id_item) {
return this.sub_storages[id_storage].get(id_item);
})
.declareMethod("search", function() {
return this.index.search(arguments[0]);
})
.declareMethod("loaded_doc", function(){
return this.info.put.apply(this.info, arguments);
})
.declareMethod("all_loaded_docs", function(){
return this.info.allDocs.apply(this.info, arguments);
});
}(window, RSVP, rJS, jIO));
<!doctype html>
<html>
<head>
<title>Parser Gadget</title>
<script src="../jio/external/rsvp-2.0.4.js"></script>
<script src="../jio/dist/jio-latest.js"></script>
<script src="../renderjs/dist/renderjs-latest.js"></script>
<script src="gadget_parser.js"></script>
</head>
<body>
</body>
</html>
\ No newline at end of file
/*jslint nomen: true, indent: 2, maxerr: 3, maxlen: 80*/
/*global window, RSVP, rJS, jIO*/
(function(window, RSVP, rJS, jIO) {
"use strict";
rJS(window)
.declareMethod("parse", function(file_link){
var gadget = this,
title;
return new RSVP.Queue().push(function(){
return jIO.util.ajax({url : file_link});
})
.push(function(file){
var rss;
rss = file.currentTarget.responseText;
title = rss.slice(rss.indexOf("<title>")+7, rss.indexOf("</title>"));
return gadget.remove_css(rss);
})
.push(function(rss_without_css){
return {title : title, content : rss_without_css};
});
})
.declareMethod("remove_css", function(body){
/*var doc = new DOMParser().parseFromString(body, "text/html");
return doc.body.textContent || "";*/
var regEx = new RegExp('(style="(.*?)"|style=&quot(.*?)&quot)', 'gi');
return body.replace(regEx, "");
});
}(window, RSVP, rJS, jIO));
<!doctype html>
<html>
<head>
<title>Result Gadget</title>
<script src="../jio/external/rsvp-2.0.4.js"></script>
<script src="../jio/dist/jio-latest.js"></script>
<script src="../renderjs/dist/renderjs-latest.js"></script>
<script src="gadget_result.js"></script>
<link rel="stylesheet" type="text/css" href="result.css">
</head>
<body>
<div id ="mynij"><img src="./logo.png"></div>
<ul id="mynij-results">
</ul>
<div id ="google"><img src="./logo_google.png"></div>
<ul id="searx-results">
</ul>
</body>
</html>
\ No newline at end of file
<!doctype html>
<html>
<head>
<title>Model Gadget</title>
<script src="../jio/external/rsvp-2.0.4.js"></script>
<script src="../jio/dist/jio-latest.js"></script>
<script src="../renderjs/dist/renderjs-latest.js"></script>
<script src="./elasticlunr/elasticlunr.js"></script>
<script src="./lunr-languages/lunr.stemmer.support.js"></script>
<script src="./lunr-languages/lunr.fr.js"></script>
<script src="gadget_server_model.js"></script>
</head>
<body>
</body>
</html>
\ No newline at end of file
/*jslint nomen: true, indent: 2, maxerr: 3, maxlen: 80*/
/*global window, RSVP, rJS, jIO*/
(function (window, RSVP, rJS, jIO) {
"use strict";
rJS(window)
.setState({
docs : null,
indexes : null
})
.ready(function(){
var docs_db = jIO.createJIO({
type : "indexeddb",
database : "mynij.all_docs"
});
var indexes_db = jIO.createJIO({
type : "indexeddb",
database : "mynij.all_indexes"
});
return this.changeState({
docs : docs_db,
indexes : indexes_db
});
})
.declareMethod("get_all_available_indexes", function(){
//TODO later
})
.declareMethod("get_doc", function(doc_name){ //tested OK returns {links:[]}
return this.state.docs.get(doc_name);
})
.declareMethod("get_index", function(index_name){ //tested OK
return this.state.indexes.get(index_name)
.push(function(result_index){
var raw_index,
index,
key,
doc,
doc_list;
doc_list = result_index.docs;
index = elasticlunr(function () {
this.use(elasticlunr.fr);
this.addField('title');
this.addField('body');
this.addField('link');
this.setRef('id'); //id = index.x."/a/b" where index = index name, x = doc name, "/a/b" = item id in x
});
raw_index = JSON.parse(result_index.index);
for (key in raw_index.documentStore.docs){
doc = {
"id" : raw_index.documentStore.docs[key].id,
"title" : raw_index.documentStore.docs[key].title,
"body" : raw_index.documentStore.docs[key].body,
"link" : raw_index.documentStore.docs[key].link
};
index.addDoc(doc);
}
return {index : index, docs : doc_list};
});
})
.declareMethod("get_attachment", function(doc, att, format){
return this.state.docs.getAttachment(doc, att, format);
})
.declareMethod("add_doc", function(new_doc){ //tested OK
return this.state.docs.put(new_doc, {links : []});
})
.declareMethod("add_feed_to_doc", function(doc_name, feed){ //tested OK
var gadget = this;
return gadget.state.docs.putAttachment(doc_name, feed.title, new Blob([feed.content], {type : "text/xml"}))
.push(function(){
return gadget.state.docs.get(doc_name);
})
.push(function(doc){
var link_list = doc.links;
link_list.push(feed.title);
return gadget.state.docs.put(doc_name, {links : link_list});
});
})
.declareMethod("add_index", function(name){ //tested OK
var new_index = elasticlunr(function () {
this.use(elasticlunr.fr);
this.addField('title');
this.addField('body');
this.addField('link');
this.setRef('id'); //id = index.x."/a/b" where index = index name, x = doc name, "/a/b" = item id in x
});
return this.state.indexes.put(name, {index : JSON.stringify(new_index), docs : []});
})
.declareMethod("add_doc_to_index", function(index_name, doc_name){ //tested OK - to split & clean
var index,
parser_list = [],
gadget = this;
return gadget.get_index(index_name)
.push(function(result_index){
index = result_index;
})
.push(function(){
return gadget.get_doc(doc_name);
})
.push(function(result_doc){
var attachment_list = result_doc.links,
i,
parser,
promise_list = [];
for (i=0; i<attachment_list.length; i+=1){
var parser_def = {
type : "my_parser",
document_id : doc_name,
attachment_id : attachment_list[i],
parser : "rss",
sub_storage : {
type : "indexeddb",
database : "mynij.all_docs"
}
};
parser = jIO.createJIO(parser_def);
parser_list.push(parser);
promise_list.push(parser.allDocs());
}
return RSVP.all(promise_list); //returns [{data : {rows : [id : _], total_rows : _}]
})
.push(function(all_item_ids){
var i,
j,
promise_list = [];
for (i=0; i<all_item_ids.length; i+=1){
for (j=0; j<all_item_ids[i].data.total_rows; j+=1){
promise_list.push(parser_list[i].get(all_item_ids[i].data.rows[j].id));
}
}
return RSVP.all(promise_list); //returns [{link : _, title : _, description : _, pubDate : _, ...}] ! ignore [0], it's the feed info !
})
.push(function(all_items){
var i,
id,
doc;
for (i=1; i<all_items.length; i+=1){
id = index_name+"."+doc_name+"./0/"+i;
doc = {
"id" : id,
"title" : all_items[i].title,
"body" : all_items[i].description,
"link" : all_items[i].link
};
index.index.addDoc(doc);
}
})
.push(function(){
var doc_list = index.docs;
doc_list.push(doc_name);
return gadget.state.indexes.put(index_name, {index : JSON.stringify(index.index), docs : doc_list});
});
})
.declareMethod("loaded", function(){
return this.state.docs.allDocs()
.push(function(result){
return (result.data.rows.length !== 0);
});
});
}(window, RSVP, rJS, jIO));
\ No newline at end of file
References fichiers :
30 urls = codeacademy.xml
300 urls = lewebpedagogique.xml
2200 urls = mathovore.xml
10 000 urls = tout - espagnolfacile, larousse, letudiant, livrespourtous, mathovore, soutien67 & superprof
elasticlunr :
30 urls = 1.3 Mo = 15s
300 urls = 10 Mo = 3min
2200 urls -> JSON.stringify stops working !
Flexsearch :
30 urls = 600 Ko = 18s
300 urls = 13 Mo = 3min 20s
2200 urls = 40 Mo = 30 min (<1s export & import index)
8500 = 98 Mo non compressed = 40 Mo zipped
taux de compression index avec bzip2 : 96% (23)
taux de compression contenu avec zip jIO : 60% (2.5)
\ No newline at end of file
<!doctype html>
<html>
<head>
<title>Jio parser test</title>
<script src="../jio/external/rsvp-2.0.4.js"></script>
<script src="../jio/dist/jio-latest.js"></script>
<script src="../renderjs/dist/renderjs-latest.js"></script>
<script src="jio.my_parser_storage.js"></script>
<script src="jio.my_union_storage.js"></script>
<script src="jio-parser-test.js"></script>
</head>
<body>
</body>
</html>
/*jslint nomen: true, indent: 2, maxerr: 3, maxlen: 80*/
/*global window, RSVP, rJS, jIO*/
(function (window, RSVP, rJS, jIO) {
"use strict";
rJS(window)
.ready(function(){
var gadget = this;
var tmp = {
type : "my_parser",
document_id : "doc_id",
attachment_id :"att_id",
parser : "rss",
sub_storage : {
type : "indexeddb",
database : "test"
}
}
gadget.test_storage_1 = jIO.createJIO(tmp);
gadget.test_storage_2 = jIO.createJIO({
type :"my_parser",
document_id : "doc_id",
attachment_id : "att2_id",
parser : "rss",
sub_storage : {
type : "indexeddb",
database : "test"
}
});
gadget.union_test = jIO.createJIO({
type : 'union',
"storage_list": [
tmp
]
});
console.log(gadget.union_test);
console.log(gadget.union_test.addSubStorage);
/*return gadget.test_storage_1.put("doc_id", {})
.push(function(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.status == 200 && xmlhttp.readyState == 4){
return gadget.test_storage_1.putAttachment("doc_id", "att_id", new Blob([xmlhttp.responseText], {type: "text/xml"}))
.push (function(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.status == 200 && xmlhttp.readyState == 4){
return gadget.test_storage_2.putAttachment("doc_id", "att2_id", new Blob([xmlhttp.responseText], {type: "text/xml"}));
}
}
xmlhttp.open("GET", "./test-files/allemandfacile.rss", true);
xmlhttp.send();
})
}
}
xmlhttp.open("GET", "./test-files/vivelessvt.rss", true);
xmlhttp.send();
});*/
/*return gadget.test_storage_1.put("doc_id", {})
.push (function(){
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.status == 200 && xmlhttp.readyState == 4){
return gadget.test_storage.putAttachment("doc_id", "att_id", new Blob([xmlhttp.responseText], {type: "text/xml"}))
.push(function(){
//return gadget.test_storage.get("/0/1");
console.log(gadget.test_storage);
return gadget.test_storage.allDocs();
})
.push(function(result){
console.log(result);
var promise_list = [],
i;
for (i=1; i<result.data.total_rows; i+=1){
promise_list.push(gadget.test_storage.get(result.data.rows[i].id));
}
return RSVP.all(promise_list);
})
.push(function (result){
var i;
for (i=0; i<result.length; i+=1){
if (result[i].title.match("la")) console.log(result[i]);
}
});
}
}
xmlhttp.open("GET", "./test-files/vivelessvt.rss", true);
xmlhttp.send();
});*/
});
}(window, RSVP, rJS, jIO));
(function (jIO, DOMParser, Node) {
"use strict";
/////////////////////////////////////////////////////////////
// RSS Parser
/////////////////////////////////////////////////////////////
function RSSParser(txt) {
this._dom_parser = new DOMParser().parseFromString(txt, 'text/xml');
}
RSSParser.prototype.parseElement = function (element) {
var tag_element,
i,
j,
attribute,
result = {};
for (i = element.childNodes.length - 1; i >= 0; i -= 1) {
tag_element = element.childNodes[i];
if ((tag_element.nodeType === Node.ELEMENT_NODE) &&
(tag_element.tagName !== 'item')) {
result[tag_element.tagName] = tag_element.textContent;
for (j = tag_element.attributes.length - 1; j >= 0; j -= 1) {
attribute = tag_element.attributes[j];
if (attribute.value) {
result[tag_element.tagName + '_' + attribute.name] =
attribute.value;
}
}
}
}
return result;
};
RSSParser.prototype.getDocumentList = function (include, id) {
var result_list,
item_list = this._dom_parser.querySelectorAll("rss > channel > item"),
i;
//console.log(item_list);
if ((id === '/0') || (id === undefined)) {
result_list = [{
id: '/0',
value: {}
}];
if (include) {
result_list[0].doc = this.parseElement(
this._dom_parser.querySelector("rss > channel")
);
}
} else {
result_list = [];
}
for (i = 0; i < item_list.length; i += 1) {
if ((id === '/0/' + i) || (id === undefined)) {
result_list.push({
id: '/0/' + i,
value: {}
});
if (include) {
result_list[result_list.length - 1].doc =
this.parseElement(item_list[i]);
}
}
}
return result_list;
};
/////////////////////////////////////////////////////////////
// Helpers
/////////////////////////////////////////////////////////////
function getParser(storage) {
return storage._sub_storage.getAttachment(storage._document_id,
storage._attachment_id,
{format: 'text'})
.push(function (txt) {
return new RSSParser(txt);
});
}
/////////////////////////////////////////////////////////////
// Storage
/////////////////////////////////////////////////////////////
function MyParserStorage(spec) {
this._attachment_id = spec.attachment_id;
this._document_id = spec.document_id;
this._parser_name = spec.parser;
this._sub_storage = jIO.createJIO(spec.sub_storage);
}
MyParserStorage.prototype.hasCapacity = function (capacity) {
return (capacity === "list") || (capacity === 'include');
};
MyParserStorage.prototype.buildQuery = function (options) {
if (options === undefined) {
options = {};
}
return getParser(this)
.push(function (parser) {
return parser.getDocumentList((options.include_docs || false));
});
};
MyParserStorage.prototype.get = function (id) {
return getParser(this)
.push(function (parser) {
var result_list = parser.getDocumentList(true, id);
//console.log(result_list);
if (result_list.length) {
return result_list[0].doc;
}
throw new jIO.util.jIOError(
"Cannot find parsed document: " + id,
404
);
});
};
MyParserStorage.prototype.put = function(id, metadata){
return this._sub_storage.put(id, metadata);
};
MyParserStorage.prototype.putAttachment = function(id, name, blob){
return this._sub_storage.putAttachment(id, name, blob);
};
jIO.addStorage('my_parser', MyParserStorage);
}(jIO, DOMParser, Node));
\ No newline at end of file
[submodule "build/snowball-js"]
path = build/snowball-js
url = git://github.com/fortnightlabs/snowball-js.git
[submodule "build/stopwords-filter"]
path = build/stopwords-filter
url = git://github.com/brenes/stopwords-filter.git
http://www.mozilla.org/MPL/
MOZILLA PUBLIC LICENSE
Version 1.1
---------------
1. Definitions.
1.0.1. "Commercial Use" means distribution or otherwise making the
Covered Code available to a third party.
1.1. "Contributor" means each entity that creates or contributes to
the creation of Modifications.
1.2. "Contributor Version" means the combination of the Original
Code, prior Modifications used by a Contributor, and the Modifications
made by that particular Contributor.
1.3. "Covered Code" means the Original Code or Modifications or the
combination of the Original Code and Modifications, in each case
including portions thereof.
1.4. "Electronic Distribution Mechanism" means a mechanism generally
accepted in the software development community for the electronic
transfer of data.
1.5. "Executable" means Covered Code in any form other than Source
Code.
1.6. "Initial Developer" means the individual or entity identified
as the Initial Developer in the Source Code notice required by Exhibit
A.
1.7. "Larger Work" means a work which combines Covered Code or
portions thereof with code not governed by the terms of this License.
1.8. "License" means this document.
1.8.1. "Licensable" means having the right to grant, to the maximum
extent possible, whether at the time of the initial grant or
subsequently acquired, any and all of the rights conveyed herein.
1.9. "Modifications" means any addition to or deletion from the
substance or structure of either the Original Code or any previous
Modifications. When Covered Code is released as a series of files, a
Modification is:
A. Any addition to or deletion from the contents of a file
containing Original Code or previous Modifications.
B. Any new file that contains any part of the Original Code or
previous Modifications.
1.10. "Original Code" means Source Code of computer software code
which is described in the Source Code notice required by Exhibit A as
Original Code, and which, at the time of its release under this
License is not already Covered Code governed by this License.
1.10.1. "Patent Claims" means any patent claim(s), now owned or
hereafter acquired, including without limitation, method, process,
and apparatus claims, in any patent Licensable by grantor.
1.11. "Source Code" means the preferred form of the Covered Code for
making modifications to it, including all modules it contains, plus
any associated interface definition files, scripts used to control
compilation and installation of an Executable, or source code
differential comparisons against either the Original Code or another
well known, available Covered Code of the Contributor's choice. The
Source Code can be in a compressed or archival form, provided the
appropriate decompression or de-archiving software is widely available
for no charge.
1.12. "You" (or "Your") means an individual or a legal entity
exercising rights under, and complying with all of the terms of, this
License or a future version of this License issued under Section 6.1.
For legal entities, "You" includes any entity which controls, is
controlled by, or is under common control with You. For purposes of
this definition, "control" means (a) the power, direct or indirect,
to cause the direction or management of such entity, whether by
contract or otherwise, or (b) ownership of more than fifty percent
(50%) of the outstanding shares or beneficial ownership of such
entity.
2. Source Code License.
2.1. The Initial Developer Grant.
The Initial Developer hereby grants You a world-wide, royalty-free,
non-exclusive license, subject to third party intellectual property
claims:
(a) under intellectual property rights (other than patent or
trademark) Licensable by Initial Developer to use, reproduce,
modify, display, perform, sublicense and distribute the Original
Code (or portions thereof) with or without Modifications, and/or
as part of a Larger Work; and
(b) under Patents Claims infringed by the making, using or
selling of Original Code, to make, have made, use, practice,
sell, and offer for sale, and/or otherwise dispose of the
Original Code (or portions thereof).
(c) the licenses granted in this Section 2.1(a) and (b) are
effective on the date Initial Developer first distributes
Original Code under the terms of this License.
(d) Notwithstanding Section 2.1(b) above, no patent license is
granted: 1) for code that You delete from the Original Code; 2)
separate from the Original Code; or 3) for infringements caused
by: i) the modification of the Original Code or ii) the
combination of the Original Code with other software or devices.
2.2. Contributor Grant.
Subject to third party intellectual property claims, each Contributor
hereby grants You a world-wide, royalty-free, non-exclusive license
(a) under intellectual property rights (other than patent or
trademark) Licensable by Contributor, to use, reproduce, modify,
display, perform, sublicense and distribute the Modifications
created by such Contributor (or portions thereof) either on an
unmodified basis, with other Modifications, as Covered Code
and/or as part of a Larger Work; and
(b) under Patent Claims infringed by the making, using, or
selling of Modifications made by that Contributor either alone
and/or in combination with its Contributor Version (or portions
of such combination), to make, use, sell, offer for sale, have
made, and/or otherwise dispose of: 1) Modifications made by that
Contributor (or portions thereof); and 2) the combination of
Modifications made by that Contributor with its Contributor
Version (or portions of such combination).
(c) the licenses granted in Sections 2.2(a) and 2.2(b) are
effective on the date Contributor first makes Commercial Use of
the Covered Code.
(d) Notwithstanding Section 2.2(b) above, no patent license is
granted: 1) for any code that Contributor has deleted from the
Contributor Version; 2) separate from the Contributor Version;
3) for infringements caused by: i) third party modifications of
Contributor Version or ii) the combination of Modifications made
by that Contributor with other software (except as part of the
Contributor Version) or other devices; or 4) under Patent Claims
infringed by Covered Code in the absence of Modifications made by
that Contributor.
3. Distribution Obligations.
3.1. Application of License.
The Modifications which You create or to which You contribute are
governed by the terms of this License, including without limitation
Section 2.2. The Source Code version of Covered Code may be
distributed only under the terms of this License or a future version
of this License released under Section 6.1, and You must include a
copy of this License with every copy of the Source Code You
distribute. You may not offer or impose any terms on any Source Code
version that alters or restricts the applicable version of this
License or the recipients' rights hereunder. However, You may include
an additional document offering the additional rights described in
Section 3.5.
3.2. Availability of Source Code.
Any Modification which You create or to which You contribute must be
made available in Source Code form under the terms of this License
either on the same media as an Executable version or via an accepted
Electronic Distribution Mechanism to anyone to whom you made an
Executable version available; and if made available via Electronic
Distribution Mechanism, must remain available for at least twelve (12)
months after the date it initially became available, or at least six
(6) months after a subsequent version of that particular Modification
has been made available to such recipients. You are responsible for
ensuring that the Source Code version remains available even if the
Electronic Distribution Mechanism is maintained by a third party.
3.3. Description of Modifications.
You must cause all Covered Code to which You contribute to contain a
file documenting the changes You made to create that Covered Code and
the date of any change. You must include a prominent statement that
the Modification is derived, directly or indirectly, from Original
Code provided by the Initial Developer and including the name of the
Initial Developer in (a) the Source Code, and (b) in any notice in an
Executable version or related documentation in which You describe the
origin or ownership of the Covered Code.
3.4. Intellectual Property Matters
(a) Third Party Claims.
If Contributor has knowledge that a license under a third party's
intellectual property rights is required to exercise the rights
granted by such Contributor under Sections 2.1 or 2.2,
Contributor must include a text file with the Source Code
distribution titled "LEGAL" which describes the claim and the
party making the claim in sufficient detail that a recipient will
know whom to contact. If Contributor obtains such knowledge after
the Modification is made available as described in Section 3.2,
Contributor shall promptly modify the LEGAL file in all copies
Contributor makes available thereafter and shall take other steps
(such as notifying appropriate mailing lists or newsgroups)
reasonably calculated to inform those who received the Covered
Code that new knowledge has been obtained.
(b) Contributor APIs.
If Contributor's Modifications include an application programming
interface and Contributor has knowledge of patent licenses which
are reasonably necessary to implement that API, Contributor must
also include this information in the LEGAL file.
(c) Representations.
Contributor represents that, except as disclosed pursuant to
Section 3.4(a) above, Contributor believes that Contributor's
Modifications are Contributor's original creation(s) and/or
Contributor has sufficient rights to grant the rights conveyed by
this License.
3.5. Required Notices.
You must duplicate the notice in Exhibit A in each file of the Source
Code. If it is not possible to put such notice in a particular Source
Code file due to its structure, then You must include such notice in a
location (such as a relevant directory) where a user would be likely
to look for such a notice. If You created one or more Modification(s)
You may add your name as a Contributor to the notice described in
Exhibit A. You must also duplicate this License in any documentation
for the Source Code where You describe recipients' rights or ownership
rights relating to Covered Code. You may choose to offer, and to
charge a fee for, warranty, support, indemnity or liability
obligations to one or more recipients of Covered Code. However, You
may do so only on Your own behalf, and not on behalf of the Initial
Developer or any Contributor. You must make it absolutely clear than
any such warranty, support, indemnity or liability obligation is
offered by You alone, and You hereby agree to indemnify the Initial
Developer and every Contributor for any liability incurred by the
Initial Developer or such Contributor as a result of warranty,
support, indemnity or liability terms You offer.
3.6. Distribution of Executable Versions.
You may distribute Covered Code in Executable form only if the
requirements of Section 3.1-3.5 have been met for that Covered Code,
and if You include a notice stating that the Source Code version of
the Covered Code is available under the terms of this License,
including a description of how and where You have fulfilled the
obligations of Section 3.2. The notice must be conspicuously included
in any notice in an Executable version, related documentation or
collateral in which You describe recipients' rights relating to the
Covered Code. You may distribute the Executable version of Covered
Code or ownership rights under a license of Your choice, which may
contain terms different from this License, provided that You are in
compliance with the terms of this License and that the license for the
Executable version does not attempt to limit or alter the recipient's
rights in the Source Code version from the rights set forth in this
License. If You distribute the Executable version under a different
license You must make it absolutely clear that any terms which differ
from this License are offered by You alone, not by the Initial
Developer or any Contributor. You hereby agree to indemnify the
Initial Developer and every Contributor for any liability incurred by
the Initial Developer or such Contributor as a result of any such
terms You offer.
3.7. Larger Works.
You may create a Larger Work by combining Covered Code with other code
not governed by the terms of this License and distribute the Larger
Work as a single product. In such a case, You must make sure the
requirements of this License are fulfilled for the Covered Code.
4. Inability to Comply Due to Statute or Regulation.
If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Code due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description
must be included in the LEGAL file described in Section 3.4 and must
be included with all distributions of the Source Code. Except to the
extent prohibited by statute or regulation, such description must be
sufficiently detailed for a recipient of ordinary skill to be able to
understand it.
5. Application of this License.
This License applies to code to which the Initial Developer has
attached the notice in Exhibit A and to related Covered Code.
6. Versions of the License.
6.1. New Versions.
Netscape Communications Corporation ("Netscape") may publish revised
and/or new versions of the License from time to time. Each version
will be given a distinguishing version number.
6.2. Effect of New Versions.
Once Covered Code has been published under a particular version of the
License, You may always continue to use it under the terms of that
version. You may also choose to use such Covered Code under the terms
of any subsequent version of the License published by Netscape. No one
other than Netscape has the right to modify the terms applicable to
Covered Code created under this License.
6.3. Derivative Works.
If You create or use a modified version of this License (which you may
only do in order to apply it to code which is not already Covered Code
governed by this License), You must (a) rename Your license so that
the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
"MPL", "NPL" or any confusingly similar phrase do not appear in your
license (except to note that your license differs from this License)
and (b) otherwise make it clear that Your version of the license
contains terms which differ from the Mozilla Public License and
Netscape Public License. (Filling in the name of the Initial
Developer, Original Code or Contributor in the notice described in
Exhibit A shall not of themselves be deemed to be modifications of
this License.)
7. DISCLAIMER OF WARRANTY.
COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
8. TERMINATION.
8.1. This License and the rights granted hereunder will terminate
automatically if You fail to comply with terms herein and fail to cure
such breach within 30 days of becoming aware of the breach. All
sublicenses to the Covered Code which are properly granted shall
survive any termination of this License. Provisions which, by their
nature, must remain in effect beyond the termination of this License
shall survive.
8.2. If You initiate litigation by asserting a patent infringement
claim (excluding declatory judgment actions) against Initial Developer
or a Contributor (the Initial Developer or Contributor against whom
You file such action is referred to as "Participant") alleging that:
(a) such Participant's Contributor Version directly or indirectly
infringes any patent, then any and all rights granted by such
Participant to You under Sections 2.1 and/or 2.2 of this License
shall, upon 60 days notice from Participant terminate prospectively,
unless if within 60 days after receipt of notice You either: (i)
agree in writing to pay Participant a mutually agreeable reasonable
royalty for Your past and future use of Modifications made by such
Participant, or (ii) withdraw Your litigation claim with respect to
the Contributor Version against such Participant. If within 60 days
of notice, a reasonable royalty and payment arrangement are not
mutually agreed upon in writing by the parties or the litigation claim
is not withdrawn, the rights granted by Participant to You under
Sections 2.1 and/or 2.2 automatically terminate at the expiration of
the 60 day notice period specified above.
(b) any software, hardware, or device, other than such Participant's
Contributor Version, directly or indirectly infringes any patent, then
any rights granted to You by such Participant under Sections 2.1(b)
and 2.2(b) are revoked effective as of the date You first made, used,
sold, distributed, or had made, Modifications made by that
Participant.
8.3. If You assert a patent infringement claim against Participant
alleging that such Participant's Contributor Version directly or
indirectly infringes any patent where such claim is resolved (such as
by license or settlement) prior to the initiation of patent
infringement litigation, then the reasonable value of the licenses
granted by such Participant under Sections 2.1 or 2.2 shall be taken
into account in determining the amount or value of any payment or
license.
8.4. In the event of termination under Sections 8.1 or 8.2 above,
all end user license agreements (excluding distributors and resellers)
which have been validly granted by You or any distributor hereunder
prior to termination shall survive termination.
9. LIMITATION OF LIABILITY.
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
10. U.S. GOVERNMENT END USERS.
The Covered Code is a "commercial item," as that term is defined in
48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
software" and "commercial computer software documentation," as such
terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
all U.S. Government End Users acquire Covered Code with only those
rights set forth herein.
11. MISCELLANEOUS.
This License represents the complete agreement concerning subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. This License shall be governed by
California law provisions (except to the extent applicable law, if
any, provides otherwise), excluding its conflict-of-law provisions.
With respect to disputes in which at least one party is a citizen of,
or an entity chartered or registered to do business in the United
States of America, any litigation relating to this License shall be
subject to the jurisdiction of the Federal Courts of the Northern
District of California, with venue lying in Santa Clara County,
California, with the losing party responsible for costs, including
without limitation, court costs and reasonable attorneys' fees and
expenses. The application of the United Nations Convention on
Contracts for the International Sale of Goods is expressly excluded.
Any law or regulation which provides that the language of a contract
shall be construed against the drafter shall not apply to this
License.
12. RESPONSIBILITY FOR CLAIMS.
As between Initial Developer and the Contributors, each party is
responsible for claims and damages arising, directly or indirectly,
out of its utilization of rights under this License and You agree to
work with Initial Developer and Contributors to distribute such
responsibility on an equitable basis. Nothing herein is intended or
shall be deemed to constitute any admission of liability.
13. MULTIPLE-LICENSED CODE.
Initial Developer may designate portions of the Covered Code as
"Multiple-Licensed". "Multiple-Licensed" means that the Initial
Developer permits you to utilize portions of the Covered Code under
Your choice of the NPL or the alternative licenses, if any, specified
by the Initial Developer in the file described in Exhibit A.
EXHIBIT A -Mozilla Public License.
``The contents of this file are subject to the Mozilla Public License
Version 1.1 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific language governing rights and limitations
under the License.
The Original Code is ______________________________________.
The Initial Developer of the Original Code is ________________________.
Portions created by ______________________ are Copyright (C) ______
_______________________. All Rights Reserved.
Contributor(s): ______________________________________.
Alternatively, the contents of this file may be used under the terms
of the _____ license (the "[___] License"), in which case the
provisions of [______] License are applicable instead of those
above. If you wish to allow use of your version of this file only
under the terms of the [____] License and not to allow others to use
your version of this file under the MPL, indicate your decision by
deleting the provisions above and replace them with the notice and
other provisions required by the [___] License. If you do not delete
the provisions above, a recipient may use your version of this file
under either the MPL or the [___] License."
[NOTE: The text of this Exhibit A may differ slightly from the text of
the notices in the Source Code files of the Original Code. You should
use the text of this Exhibit A rather than the text found in the
Original Code Source Code for Your Modifications.]
Lunr languages [![npm](https://img.shields.io/npm/v/lunr-languages.svg)](https://www.npmjs.com/package/lunr-languages) [![Bower](https://img.shields.io/bower/v/lunr-languages.svg)]()
==============
This project features a collection of languages stemmers and stopwords for [Lunr](http://lunrjs.com/) Javascript library (which currently only supports English).
The following languages are available:
* German
* French
* Spanish
* Italian
* Japanese
* Dutch
* Danish
* Portuguese
* Finnish
* Romanian
* Hungarian
* Russian
* Norwegian
# How to use
Lunr-languages supports AMD and CommonJS. Check out the examples below:
## In a web browser
The following example is for the German language (de).
Add the following JS files to the page:
```html
<script src="lunr.stemmer.support.js"></script>
<script src="lunr.de.js"></script>
```
then, use the language in when initializing lunr:
```javascript
var idx = lunr(function () {
// use the language (de)
this.use(lunr.de);
// then, the normal lunr index initialization
this.field('title', { boost: 10 });
this.field('body');
});
```
That's it. Just add the documents and you're done. When searching, the language stemmer and stopwords list will be the one you used.
## In a web browser, with RequireJS
Add `require.js` to the page:
```html
<script src="lib/require.js"></script>
```
then, use the language in when initializing lunr:
```javascript
require(['lib/lunr.js', '../lunr.stemmer.support.js', '../lunr.de.js'], function(lunr, stemmerSupport, de) {
// since the stemmerSupport and de add keys on the lunr object, we'll pass it as reference to them
// in the end, we will only need lunr.
stemmerSupport(lunr); // adds lunr.stemmerSupport
de(lunr); // adds lunr.de key
// at this point, lunr can be used
var idx = lunr(function () {
// use the language (de)
this.use(lunr.de);
// then, the normal lunr index initialization
this.field('title', { boost: 10 })
this.field('body')
});
});
```
# With node.js
```javascript
var lunr = require('./lib/lunr.js');
require('./lunr.stemmer.support.js')(lunr);
require('./lunr.de.js')(lunr);
var idx = lunr(function () {
// use the language (de)
this.use(lunr.de);
// then, the normal lunr index initialization
this.field('title', { boost: 10 })
this.field('body')
});
```
# Indexing multi-language content
If your documents are written in more than one language, you can enable multi-language indexing. This ensures every word is properly trimmed and stemmed, every stopword is removed, and no words are lost (indexing in just one language would remove words from every other one.)
```javascript
var lunr = require('./lib/lunr.js');
require('./lunr.stemmer.support.js')(lunr);
require('./lunr.ru.js')(lunr);
require('./lunr.multi.js')(lunr);
var idx = lunr(function () {
this.use(lunr.multiLanguage('en', 'ru'));
// then, the normal lunr index initialization
// ...
});
```
You can combine any number of supported languages this way. The corresponding lunr language scripts must be loaded (English is built in).
If you serialize the index and load it in another script, you'll have to initialize the multi-language support in that script, too, like this:
```javascript
lunr.multiLanguage('en', 'ru');
var idx = lunr.Index.load(serializedIndex);
```
# Building your own files
The `lunr.<locale>.js` files are the result of a build process that concatenates a stemmer and a stop word list and add functionality to become lunr.js-compatible.
Should you decide to make mass-modifications (add stopwords, change stemming rules, reorganize the code) and build a new set of files, you should do follow these steps:
* `git clone --recursive git://github.com/MihaiValentin/lunr-languages.git` (make sure you use the `--recursive` flag to also clone the repos needed to build `lunr-languages`)
* `cd path/to/lunr-languages`
* `npm install` to install the dependencies needed for building
* change the `build/*.template` files
* run `node build/build.js` to generate the `lunr.<locale>.js` files (and the minified versions as well) and the `lunr.stemmer.support.js` file
# Technical details & Credits
I've created this project by compiling and wrapping stemmers toghether with stop words from various sources so they can be directly used with Lunr.
* <https://github.com/fortnightlabs/snowball-js> (the stemmers for all languages, ported from snowball-js)
* <https://github.com/brenes/stopwords-filter> (the stop words list for the other languages)
{
"name": "lunr-languages",
"version": "0.0.4",
"homepage": "https://github.com/MihaiValentin/lunr-languages",
"authors": [
"MihaiValentin <MihaiValentin@users.noreply.github.com>"
],
"description": "A a collection of languages stemmers and stopwords for Lunr Javascript library",
"moduleType": [
"amd",
"globals",
"node"
],
"keywords": [
"lunr",
"languages",
"stemmer",
"stop words",
"danish",
"german",
"deutsch",
"dutch",
"spanish",
"espanol",
"finish",
"francais",
"french",
"hungarian",
"magyar",
"italian",
"japanese",
"norwegian",
"portuguese",
"romanian",
"romana",
"russian",
"swedish",
"turkish"
],
"license": "MPL",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests",
"build",
"demos"
]
}
/**
* execute like this (from the project root folder):
* node build/build.js
*/
var fs = require('fs');
var beautify = require('js-beautify').js_beautify;
var UglifyJS = require("uglify-js");
// shortcut for minifying a piece of code
function compress(orig_code) {
return UglifyJS.minify(orig_code, {fromString: true, comments: true}).code;
}
// take some of the stop words list from the stopwords-filter repo
var stopwordsRepoFolder = './stopwords-filter/lib/stopwords/snowball/locales/';
// and, since that repository does not include all the stopwords we want, we add more, custom stopwords lists
var stopwordsCustomFolder = './stopwords-custom/';
// Use the Unicode library to produce a regex for characters of a particular
// 'script' (such as Latin), then extract the character ranges from that
// regex for use in our trimmer
function wordCharacters(script) {
var charRegex = require('unicode-8.0.0/scripts/' + script + '/regex');
// Now from /[a-z]/ get "a-z"
var regexString = charRegex.toString()
// Format sanity check
if (regexString.slice(0,2) !== '/[' || regexString.slice(-2) != ']/') {
console.error('Unexpected regex structure, aborting: ' + regexString);
throw Error;
}
return regexString.slice(2, -2);
}
// list mapping between locale, stemmer file, stopwords file, and char pattern
var list = [{
locale: 'da',
file: 'DanishStemmer.js',
stopwords: stopwordsRepoFolder + 'da.csv',
wordCharacters: wordCharacters('Latin')
}, {
locale: 'du',
file: 'DutchStemmer.js',
stopwords: stopwordsRepoFolder + 'nl.csv',
wordCharacters: wordCharacters('Latin')
}, {
locale: 'fi',
file: 'FinnishStemmer.js',
stopwords: stopwordsRepoFolder + 'fn.csv',
wordCharacters: wordCharacters('Latin')
}, {
locale: 'fr',
file: 'FrenchStemmer.js',
stopwords: stopwordsRepoFolder + 'fr.csv',
wordCharacters: wordCharacters('Latin')
}, {
locale: 'de',
file: 'GermanStemmer.js',
stopwords: stopwordsRepoFolder + 'de.csv',
wordCharacters: wordCharacters('Latin')
}, {
locale: 'hu',
file: 'HungarianStemmer.js',
stopwords: stopwordsRepoFolder + 'hu.csv',
wordCharacters: wordCharacters('Latin')
}, {
locale: 'it',
file: 'ItalianStemmer.js',
stopwords: stopwordsRepoFolder + 'it.csv',
wordCharacters: wordCharacters('Latin')
}, {
locale: 'no',
file: 'NorwegianStemmer.js',
stopwords: stopwordsCustomFolder + 'no.csv',
wordCharacters: wordCharacters('Latin')
}, {
locale: 'pt',
file: 'PortugueseStemmer.js',
stopwords: stopwordsRepoFolder + 'pt.csv',
wordCharacters: wordCharacters('Latin')
}, {
locale: 'ro',
file: 'RomanianStemmer.js',
stopwords: stopwordsCustomFolder + 'ro.csv',
wordCharacters: wordCharacters('Latin')
}, {
locale: 'ru',
file: 'RussianStemmer.js',
stopwords: stopwordsCustomFolder + 'ru.csv',
wordCharacters: wordCharacters('Cyrillic')
}, {
locale: 'es',
file: 'SpanishStemmer.js',
stopwords: stopwordsRepoFolder + 'es.csv',
wordCharacters: wordCharacters('Latin')
}, {
locale: 'sv',
file: 'SwedishStemmer.js',
stopwords: stopwordsCustomFolder + 'sv.csv',
wordCharacters: wordCharacters('Latin')
}, {
locale: 'tr',
file: 'TurkishStemmer.js',
stopwords: stopwordsCustomFolder + 'tr.csv',
wordCharacters: wordCharacters('Latin')
}
];
console.log('Starting building lunr-languages ...');
// read templates
var tpl = fs.readFileSync('build/lunr.template', 'utf8');
var cm = fs.readFileSync('build/lunr.comments', 'utf8');
// for each language, start building
for(var i = 0; i < list.length; i++) {
console.log('Building for "' + list[i].locale + '"');
var data = fs.readFileSync('build/snowball-js/stemmer/src/ext/' + list[i].file, 'utf8');
var stopWords = fs.readFileSync('build/' + list[i].stopwords, 'utf8');
var f = tpl;
// start replacing the placeholders
f = cm + f;
f = f.replace(/\{\{locale\}\}/g, list[i].locale);
f = f.replace(/\{\{stemmerFunction\}\}/g, data.substring(data.indexOf('function')));
f = f.replace(/\{\{stopWords\}\}/g, stopWords.split(',').sort().join(' '));
f = f.replace(/\{\{stopWordsLength\}\}/g, stopWords.split(',').length + 1);
f = f.replace(/\{\{languageName\}\}/g, list[i].file.replace(/Stemmer\.js/g, ''));
f = f.replace(/\{\{wordCharacters\}\}/g, list[i].wordCharacters);
// write the full file
fs.writeFile('lunr.' + list[i].locale + '.js', beautify(f, { indent_size: 2 }));
// and the minified version
fs.writeFile('min/lunr.' + list[i].locale + '.min.js', cm.replace(/\{\{languageName\}\}/g, list[i].file.replace(/Stemmer\.js/g, '')) + compress(f));
}
console.log('Building Stemmer Support');
// build stemmer support
var support = fs.readFileSync('lunr.stemmer.support.js', 'utf8');
fs.writeFile('min/lunr.stemmer.support.min.js', compress(support));
console.log('Building Multi-Language Extension');
// build multi
var multi = fs.readFileSync('lunr.multi.js', 'utf8');
fs.writeFile('min/lunr.multi.min.js', compress(multi));
console.log('Done!');
/*!
* Lunr languages, `{{languageName}}` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function () {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.{{locale}} = function () {
this.pipeline.reset();
this.pipeline.add(
lunr.{{locale}}.trimmer,
lunr.{{locale}}.stopWordFilter,
lunr.{{locale}}.stemmer
);
};
/* lunr trimmer function */
lunr.{{locale}}.wordCharacters = "{{wordCharacters}}";
lunr.{{locale}}.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.{{locale}}.wordCharacters);
lunr.Pipeline.registerFunction(lunr.{{locale}}.trimmer, 'trimmer-{{locale}}');
/* lunr stemmer function */
lunr.{{locale}}.stemmer = (function() {
/* create the wrapped stemmer object */
var Among = lunr.stemmerSupport.Among,
SnowballProgram = lunr.stemmerSupport.SnowballProgram,
st = new {{stemmerFunction}};
/* and return a function that stems a word for the current locale */
return function(word) {
st.setCurrent(word);
st.stem();
return st.getCurrent();
}
})();
lunr.Pipeline.registerFunction(lunr.{{locale}}.stemmer, 'stemmer-{{locale}}');
/* stop word filter function */
lunr.{{locale}}.stopWordFilter = function (token) {
if (lunr.{{locale}}.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.{{locale}}.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.{{locale}}.stopWordFilter.stopWords.length = {{stopWordsLength}};
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
lunr.{{locale}}.stopWordFilter.stopWords.elements = ' {{stopWords}}'.split(' ');
lunr.Pipeline.registerFunction(lunr.{{locale}}.stopWordFilter, 'stopWordFilter-{{locale}}');
};
}))
og,i,jeg,det,at,en,et,den,til,er,som,på,de,med,han,av,ikke,ikkje,der,så,var,meg,seg,men,ett,har,om,vi,min,mitt,ha,hadde,hun,nå,over,da,ved,fra,du,ut,sin,dem,oss,opp,man,kan,hans,hvor,eller,hva,skal,selv,sjøl,her,alle,vil,bli,ble,blei,blitt,kunne,inn,når,være,kom,noen,noe,ville,dere,som,deres,kun,ja,etter,ned,skulle,denne,for,deg,si,sine,sitt,mot,å,meget,hvorfor,dette,disse,uten,hvordan,ingen,din,ditt,blir,samme,hvilken,hvilke,sånn,inni,mellom,vår,hver,hvem,vors,hvis,både,bare,enn,fordi,før,mange,også,slik,vært,være,båe,begge,siden,dykk,dykkar,dei,deira,deires,deim,di,då,eg,ein,eit,eitt,elles,honom,hjå,ho,hoe,henne,hennar,hennes,hoss,hossen,ikkje,ingi,inkje,korleis,korso,kva,kvar,kvarhelst,kven,kvi,kvifor,me,medan,mi,mine,mykje,no,nokon,noka,nokor,noko,nokre,si,sia,sidan,so,somt,somme,um,upp,vere,vore,verte,vort,varte,vart
\ No newline at end of file
acea,aceasta,această,aceea,acei,aceia,acel,acela,acele,acelea,acest,acesta,aceste,acestea,aceşti,aceştia,acolo,acord,acum,ai,aia,aibă,aici,al,ăla,ale,alea,ălea,altceva,altcineva,am,ar,are,aş,aşadar,asemenea,asta,ăsta,astăzi,astea,ăstea,ăştia,asupra,aţi,au,avea,avem,aveţi,azi,bine,bucur,bună,ca,că,căci,când,care,cărei,căror,cărui,cât,câte,câţi,către,câtva,caut,ce,cel,ceva,chiar,cinci,cînd,cine,cineva,cît,cîte,cîţi,cîtva,contra,cu,cum,cumva,curând,curînd,da,dă,dacă,dar,dată,datorită,dau,de,deci,deja,deoarece,departe,deşi,din,dinaintea,dintr-,dintre,doi,doilea,două,drept,după,ea,ei,el,ele,eram,este,eşti,eu,face,fără,fata,fi,fie,fiecare,fii,fim,fiţi,fiu,frumos,graţie,halbă,iar,ieri,îi,îl,îmi,împotriva,în ,înainte,înaintea,încât,încît,încotro,între,întrucât,întrucît,îţi,la,lângă,le,li,lîngă,lor,lui,mă,mai,mâine,mea,mei,mele,mereu,meu,mi,mie,mîine,mine,mult,multă,mulţi,mulţumesc,ne,nevoie,nicăieri,nici,nimeni,nimeri,nimic,nişte,noastră,noastre,noi,noroc,noştri,nostru,nouă,nu,opt,ori,oricând,oricare,oricât,orice,oricînd,oricine,oricît,oricum,oriunde,până,patra,patru,patrulea,pe,pentru,peste,pic,pînă,poate,pot,prea,prima,primul,prin,puţin,puţina,puţină,rog,sa,să,săi,sale,şapte,şase,sau,său,se,şi,sînt,sîntem,sînteţi,spate,spre,ştiu,sub,sunt,suntem,sunteţi,sută,ta,tăi,tale,tău,te,ţi,ţie,timp,tine,toată,toate,tot,toţi,totuşi,trei,treia,treilea,tu,un,una,unde,undeva,unei,uneia,unele,uneori,unii,unor,unora,unu,unui,unuia,unul,vă,vi,voastră,voastre,voi,voştri,vostru,vouă,vreme,vreo,vreun,zece,zero,zi,zice
\ No newline at end of file
а,е,и,ж,м,о,на,не,ни,об,но,он,мне,мои,мож,она,они,оно,мной,много,многочисленное,многочисленная,многочисленные,многочисленный,мною,мой,мог,могут,можно,может,можхо,мор,моя,моё,мочь,над,нее,оба,нам,нем,нами,ними,мимо,немного,одной,одного,менее,однажды,однако,меня,нему,меньше,ней,наверху,него,ниже,мало,надо,один,одиннадцать,одиннадцатый,назад,наиболее,недавно,миллионов,недалеко,между,низко,меля,нельзя,нибудь,непрерывно,наконец,никогда,никуда,нас,наш,нет,нею,неё,них,мира,наша,наше,наши,ничего,начала,нередко,несколько,обычно,опять,около,мы,ну,нх,от,отовсюду,особенно,нужно,очень,отсюда,в,во,вон,вниз,внизу,вокруг,вот,восемнадцать,восемнадцатый,восемь,восьмой,вверх,вам,вами,важное,важная,важные,важный,вдали,везде,ведь,вас,ваш,ваша,ваше,ваши,впрочем,весь,вдруг,вы,все,второй,всем,всеми,времени,время,всему,всего,всегда,всех,всею,всю,вся,всё,всюду,г,год,говорил,говорит,года,году,где,да,ее,за,из,ли,же,им,до,по,ими,под,иногда,довольно,именно,долго,позже,более,должно,пожалуйста,значит,иметь,больше,пока,ему,имя,пор,пора,потом,потому,после,почему,почти,посреди,ей,два,две,двенадцать,двенадцатый,двадцать,двадцатый,двух,его,дел,или,без,день,занят,занята,занято,заняты,действительно,давно,девятнадцать,девятнадцатый,девять,девятый,даже,алло,жизнь,далеко,близко,здесь,дальше,для,лет,зато,даром,первый,перед,затем,зачем,лишь,десять,десятый,ею,её,их,бы,еще,при,был,про,процентов,против,просто,бывает,бывь,если,люди,была,были,было,будем,будет,будете,будешь,прекрасно,буду,будь,будто,будут,ещё,пятнадцать,пятнадцатый,друго,другое,другой,другие,другая,других,есть,пять,быть,лучше,пятый,к,ком,конечно,кому,кого,когда,которой,которого,которая,которые,который,которых,кем,каждое,каждая,каждые,каждый,кажется,как,какой,какая,кто,кроме,куда,кругом,с,т,у,я,та,те,уж,со,то,том,снова,тому,совсем,того,тогда,тоже,собой,тобой,собою,тобою,сначала,только,уметь,тот,тою,хорошо,хотеть,хочешь,хоть,хотя,свое,свои,твой,своей,своего,своих,свою,твоя,твоё,раз,уже,сам,там,тем,чем,сама,сами,теми,само,рано,самом,самому,самой,самого,семнадцать,семнадцатый,самим,самими,самих,саму,семь,чему,раньше,сейчас,чего,сегодня,себе,тебе,сеаой,человек,разве,теперь,себя,тебя,седьмой,спасибо,слишком,так,такое,такой,такие,также,такая,сих,тех,чаще,четвертый,через,часто,шестой,шестнадцать,шестнадцатый,шесть,четыре,четырнадцать,четырнадцатый,сколько,сказал,сказала,сказать,ту,ты,три,эта,эти,что,это,чтоб,этом,этому,этой,этого,чтобы,этот,стал,туда,этим,этими,рядом,тринадцать,тринадцатый,этих,третий,тут,эту,суть,чуть,тысяч
\ No newline at end of file
och,det,att,i,en,jag,hon,som,han,på,den,med,var,sig,för,så,till,är,men,ett,om,hade,de,av,icke,mig,du,henne,då,sin,nu,har,inte,hans,honom,skulle,hennes,där,min,man,ej,vid,kunde,något,från,ut,när,efter,upp,vi,dem,vara,vad,över,än,dig,kan,sina,här,ha,mot,alla,under,någon,eller,allt,mycket,sedan,ju,denna,själv,detta,åt,utan,varit,hur,ingen,mitt,ni,bli,blev,oss,din,dessa,några,deras,blir,mina,samma,vilken,er,sådan,vår,blivit,dess,inom,mellan,sådant,varför,varje,vilka,ditt,vem,vilket,sitta,sådana,vart,dina,vars,vårt,våra,ert,era,vilkas
\ No newline at end of file
acaba,altmış,altı,ama,ancak,arada,aslında,ayrıca,bana,bazı,belki,ben,benden,beni,benim,beri,beş,bile,bin,bir,birçok,biri,birkaç,birkez,birşey,birşeyi,biz,bize,bizden,bizi,bizim,böyle,böylece,bu,buna,bunda,bundan,bunlar,bunları,bunların,bunu,bunun,burada,çok,çünkü,da,daha,dahi,de,defa,değil,diğer,diye,doksan,dokuz,dolayı,dolayısıyla,dört,edecek,eden,ederek,edilecek,ediliyor,edilmesi,ediyor,eğer,elli,en,etmesi,etti,ettiği,ettiğini,gibi,göre,halen,hangi,hatta,hem,henüz,hep,hepsi,her,herhangi,herkesin,hiç,hiçbir,için,iki,ile,ilgili,ise,işte,itibaren,itibariyle,kadar,karşın,katrilyon,kendi,kendilerine,kendini,kendisi,kendisine,kendisini,kez,ki,kim,kimden,kime,kimi,kimse,kırk,milyar,milyon,mu,mü,mı,nasıl,ne,neden,nedenle,nerde,nerede,nereye,niye,niçin,o,olan,olarak,oldu,olduğu,olduğunu,olduklarını,olmadı,olmadığı,olmak,olması,olmayan,olmaz,olsa,olsun,olup,olur,olursa,oluyor,on,ona,ondan,onlar,onlardan,onları,onların,onu,onun,otuz,oysa,öyle,pek,rağmen,sadece,sanki,sekiz,seksen,sen,senden,seni,senin,siz,sizden,sizi,sizin,şey,şeyden,şeyi,şeyler,şöyle,şu,şuna,şunda,şundan,şunları,şunu,tarafından,trilyon,tüm,üç,üzere,var,vardı,ve,veya,ya,yani,yapacak,yapılan,yapılması,yapıyor,yapmak,yaptı,yaptığı,yaptığını,yaptıkları,yedi,yerine,yetmiş,yine,yirmi,yoksa,yüz,zaten
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
<script src="lib/lunr.js"></script>
<script src="../lunr.stemmer.support.js" charset="UTF-8"></script>
<script src="../tinyseg.js" charset="UTF-8"></script>
<script src="../lunr.jp.js" charset="UTF-8"></script>
</head>
<body>
<p>Open developer tools and observe the results in the Console tab. View source for code.</p>
<script>
/* init lunr */
var idx = lunr(function () {
// use the language (de)
this.use(lunr.jp);
// then, the normal lunr index initialization
this.field('title', { boost: 10 })
this.field('body')
});
/* add documents to index */
idx.add({
"title": "名前",
"body": "私の名前は中野です",
"id": 1
});
idx.add({
"title": "Tourismus in Deutschland",
"body": "Deutschland als Urlaubsziel verfügt über günstige Voraussetzungen: Gebirgslandschaften (Alpen und Mittelgebirge), See- und Flusslandschaften, die Küsten und Inseln der Nord- und Ostsee, zahlreiche Kulturdenkmäler und eine Vielzahl geschichtsträchtiger Städte sowie gut ausgebaute Infrastruktur. Vorteilhaft ist die zentrale Lage in Europa.",
"id": 2
});
console.log('Search for `中野`: ', idx.search('中野'));
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="lib/require.js"></script>
</head>
<body>
<p>Open developer tools and observe the results in the Console tab. View source for code.</p>
<script>
require(['lib/lunr.js', '../lunr.stemmer.support.js', '../lunr.de.js'], function(lunr, stemmerSupport, de) {
// since the `stemmerSupport` and `de` add keys on the lunr object, we'll pass it as reference to them
// in the end, we will only need `lunr`.
stemmerSupport(lunr); // adds `lunr.stemmerSupport`
de(lunr); // adds `lunr.de` key
// at this point, `lunr` can be used
var idx = lunr(function () {
// use the language (de)
this.use(lunr.de);
// then, the normal lunr index initialization
this.field('title', { boost: 10 })
this.field('body')
});
/* add documents to index */
idx.add({
"title": "Deutschland",
"body": "An Deutschland grenzen neun Nachbarländer und naturräumlich im Norden die Gewässer der Nord- und Ostsee, im Süden das Bergland der Alpen. Es liegt in der gemäßigten Klimazone, zählt mit rund 80 Millionen Einwohnern zu den dicht besiedelten Flächenstaaten und gilt international als das Land mit der dritthöchsten Zahl von Einwanderern.",
"id": 1
});
idx.add({
"title": "Tourismus in Deutschland",
"body": "Deutschland als Urlaubsziel verfügt über günstige Voraussetzungen: Gebirgslandschaften (Alpen und Mittelgebirge), See- und Flusslandschaften, die Küsten und Inseln der Nord- und Ostsee, zahlreiche Kulturdenkmäler und eine Vielzahl geschichtsträchtiger Städte sowie gut ausgebaute Infrastruktur. Vorteilhaft ist die zentrale Lage in Europa.",
"id": 2
});
console.log('Search for `Deutsch`: ', idx.search('Deutsch'));
console.log('Search for `Urlaubsziel`: ', idx.search('Urlaubsziel'));
console.log('Search for `inexistent`: ', idx.search('inexistent'));
});
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="lib/lunr.js"></script>
<script src="../lunr.stemmer.support.js"></script>
<script src="../lunr.de.js"></script>
</head>
<body>
<p>Open developer tools and observe the results in the Console tab. View source for code.</p>
<script>
/* init lunr */
var idx = lunr(function () {
// use the language (de)
this.use(lunr.de);
// then, the normal lunr index initialization
this.field('title', { boost: 10 })
this.field('body')
});
/* add documents to index */
idx.add({
"title": "Deutschland",
"body": "An Deutschland grenzen neun Nachbarländer und naturräumlich im Norden die Gewässer der Nord- und Ostsee, im Süden das Bergland der Alpen. Es liegt in der gemäßigten Klimazone, zählt mit rund 80 Millionen Einwohnern zu den dicht besiedelten Flächenstaaten und gilt international als das Land mit der dritthöchsten Zahl von Einwanderern.",
"id": 1
});
idx.add({
"title": "Tourismus in Deutschland",
"body": "Deutschland als Urlaubsziel verfügt über günstige Voraussetzungen: Gebirgslandschaften (Alpen und Mittelgebirge), See- und Flusslandschaften, die Küsten und Inseln der Nord- und Ostsee, zahlreiche Kulturdenkmäler und eine Vielzahl geschichtsträchtiger Städte sowie gut ausgebaute Infrastruktur. Vorteilhaft ist die zentrale Lage in Europa.",
"id": 2
});
console.log('Search for `Deutsch`: ', idx.search('Deutsch'));
console.log('Search for `Urlaubsziel`: ', idx.search('Urlaubsziel'));
console.log('Search for `inexistent`: ', idx.search('inexistent'));
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Lunr multi-language demo</title>
<script src="lib/lunr.js"></script>
<script src="../lunr.stemmer.support.js"></script>
<script src="../lunr.ru.js"></script>
<script src="../lunr.multi.js"></script>
</head>
<body>
<p>Open developer tools and observe the results in the Console tab. View source for code.</p>
<script>
/* init lunr */
var idxEn = lunr(function () {
this.field('body')
});
var idxRu = lunr(function () {
this.use(lunr.ru);
this.field('body')
});
var idxMulti = lunr(function () {
this.use(lunr.multiLanguage('en', 'ru'));
this.field('body')
});
idxEn.add({"body": "Этот текст написан на русском.", "id": 1})
idxRu.add({"body": "Этот текст написан на русском.", "id": 1})
idxMulti.add({"body": "Этот текст написан на русском.", "id": 1})
idxEn.add({"body": "This text is written in the English language.", "id": 2})
idxRu.add({"body": "This text is written in the English language.", "id": 2})
idxMulti.add({"body": "This text is written in the English language.", "id": 2})
console.log('Search for `Русских` (English pipeline): ', idxEn.search('Русских'));
console.log('Search for `languages` (English pipeline): ', idxEn.search('languages'));
console.log('Search for `Русских` (Russian pipeline): ', idxRu.search('Русских'));
console.log('Search for `languages` (Russian pipeline): ', idxRu.search('languages'));
console.log('Search for `Русских` (Ru + En pipeline): ', idxMulti.search('Русских'));
console.log('Search for `languages` (Ru + En pipeline): ', idxMulti.search('languages'));
</script>
</body>
</html>
var lunr = require('./lib/lunr.js');
require('../lunr.stemmer.support.js')(lunr);
require('../lunr.de.js')(lunr);
/* init lunr */
var idx = lunr(function () {
// use the language (de)
this.use(lunr.de);
// then, the normal lunr index initialization
this.field('title', { boost: 10 })
this.field('body')
});
/* add documents to index */
idx.add({
"title": "Deutschland",
"body": "An Deutschland grenzen neun Nachbarländer und naturräumlich im Norden die Gewässer der Nord- und Ostsee, im Süden das Bergland der Alpen. Es liegt in der gemäßigten Klimazone, zählt mit rund 80 Millionen Einwohnern zu den dicht besiedelten Flächenstaaten und gilt international als das Land mit der dritthöchsten Zahl von Einwanderern.",
"id": 1
});
idx.add({
"title": "Tourismus in Deutschland",
"body": "Deutschland als Urlaubsziel verfügt über günstige Voraussetzungen: Gebirgslandschaften (Alpen und Mittelgebirge), See- und Flusslandschaften, die Küsten und Inseln der Nord- und Ostsee, zahlreiche Kulturdenkmäler und eine Vielzahl geschichtsträchtiger Städte sowie gut ausgebaute Infrastruktur. Vorteilhaft ist die zentrale Lage in Europa.",
"id": 2
});
console.log('Search for `Deutsch`: ', idx.search('Deutsch'));
console.log('Search for `Urlaubsziel`: ', idx.search('Urlaubsziel'));
console.log('Search for `inexistent`: ', idx.search('inexistent'));
\ No newline at end of file
/**
* lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 0.5.2
* Copyright (C) 2014 Oliver Nightingale
* MIT Licensed
* @license
*/
(function(){
/**
* Convenience function for instantiating a new lunr index and configuring it
* with the default pipeline functions and the passed config function.
*
* When using this convenience function a new index will be created with the
* following functions already in the pipeline:
*
* lunr.StopWordFilter - filters out any stop words before they enter the
* index
*
* lunr.stemmer - stems the tokens before entering the index.
*
* Example:
*
* var idx = lunr(function () {
* this.field('title', 10)
* this.field('tags', 100)
* this.field('body')
*
* this.ref('cid')
*
* this.pipeline.add(function () {
* // some custom pipeline function
* })
*
* })
*
* @param {Function} config A function that will be called with the new instance
* of the lunr.Index as both its context and first parameter. It can be used to
* customize the instance of new lunr.Index.
* @namespace
* @module
* @returns {lunr.Index}
*
*/
var lunr = function (config) {
var idx = new lunr.Index
idx.pipeline.add(
lunr.trimmer,
lunr.stopWordFilter,
lunr.stemmer
)
if (config) config.call(idx, idx)
return idx
}
lunr.version = "0.5.2"
/*!
* lunr.utils
* Copyright (C) 2014 Oliver Nightingale
*/
/**
* A namespace containing utils for the rest of the lunr library
*/
lunr.utils = {}
/**
* Print a warning message to the console.
*
* @param {String} message The message to be printed.
* @memberOf Utils
*/
lunr.utils.warn = (function (global) {
return function (message) {
if (global.console && console.warn) {
console.warn(message)
}
}
})(this)
/*!
* lunr.EventEmitter
* Copyright (C) 2014 Oliver Nightingale
*/
/**
* lunr.EventEmitter is an event emitter for lunr. It manages adding and removing event handlers and triggering events and their handlers.
*
* @constructor
*/
lunr.EventEmitter = function () {
this.events = {}
}
/**
* Binds a handler function to a specific event(s).
*
* Can bind a single function to many different events in one call.
*
* @param {String} [eventName] The name(s) of events to bind this function to.
* @param {Function} handler The function to call when an event is fired.
* @memberOf EventEmitter
*/
lunr.EventEmitter.prototype.addListener = function () {
var args = Array.prototype.slice.call(arguments),
fn = args.pop(),
names = args
if (typeof fn !== "function") throw new TypeError ("last argument must be a function")
names.forEach(function (name) {
if (!this.hasHandler(name)) this.events[name] = []
this.events[name].push(fn)
}, this)
}
/**
* Removes a handler function from a specific event.
*
* @param {String} eventName The name of the event to remove this function from.
* @param {Function} handler The function to remove from an event.
* @memberOf EventEmitter
*/
lunr.EventEmitter.prototype.removeListener = function (name, fn) {
if (!this.hasHandler(name)) return
var fnIndex = this.events[name].indexOf(fn)
this.events[name].splice(fnIndex, 1)
if (!this.events[name].length) delete this.events[name]
}
/**
* Calls all functions bound to the given event.
*
* Additional data can be passed to the event handler as arguments to `emit`
* after the event name.
*
* @param {String} eventName The name of the event to emit.
* @memberOf EventEmitter
*/
lunr.EventEmitter.prototype.emit = function (name) {
if (!this.hasHandler(name)) return
var args = Array.prototype.slice.call(arguments, 1)
this.events[name].forEach(function (fn) {
fn.apply(undefined, args)
})
}
/**
* Checks whether a handler has ever been stored against an event.
*
* @param {String} eventName The name of the event to check.
* @private
* @memberOf EventEmitter
*/
lunr.EventEmitter.prototype.hasHandler = function (name) {
return name in this.events
}
/*!
* lunr.tokenizer
* Copyright (C) 2014 Oliver Nightingale
*/
/**
* A function for splitting a string into tokens ready to be inserted into
* the search index.
*
* @module
* @param {String} obj The string to convert into tokens
* @returns {Array}
*/
lunr.tokenizer = function (obj) {
if (!arguments.length || obj == null || obj == undefined) return []
if (Array.isArray(obj)) return obj.map(function (t) { return t.toLowerCase() })
var str = obj.toString().replace(/^\s+/, '')
for (var i = str.length - 1; i >= 0; i--) {
if (/\S/.test(str.charAt(i))) {
str = str.substring(0, i + 1)
break
}
}
return str
.split(/\s+/)
.map(function (token) {
return token.toLowerCase()
})
}
/*!
* lunr.Pipeline
* Copyright (C) 2014 Oliver Nightingale
*/
/**
* lunr.Pipelines maintain an ordered list of functions to be applied to all
* tokens in documents entering the search index and queries being ran against
* the index.
*
* An instance of lunr.Index created with the lunr shortcut will contain a
* pipeline with a stop word filter and an English language stemmer. Extra
* functions can be added before or after either of these functions or these
* default functions can be removed.
*
* When run the pipeline will call each function in turn, passing a token, the
* index of that token in the original list of all tokens and finally a list of
* all the original tokens.
*
* The output of functions in the pipeline will be passed to the next function
* in the pipeline. To exclude a token from entering the index the function
* should return undefined, the rest of the pipeline will not be called with
* this token.
*
* For serialisation of pipelines to work, all functions used in an instance of
* a pipeline should be registered with lunr.Pipeline. Registered functions can
* then be loaded. If trying to load a serialised pipeline that uses functions
* that are not registered an error will be thrown.
*
* If not planning on serialising the pipeline then registering pipeline functions
* is not necessary.
*
* @constructor
*/
lunr.Pipeline = function () {
this._stack = []
}
lunr.Pipeline.registeredFunctions = {}
/**
* Register a function with the pipeline.
*
* Functions that are used in the pipeline should be registered if the pipeline
* needs to be serialised, or a serialised pipeline needs to be loaded.
*
* Registering a function does not add it to a pipeline, functions must still be
* added to instances of the pipeline for them to be used when running a pipeline.
*
* @param {Function} fn The function to check for.
* @param {String} label The label to register this function with
* @memberOf Pipeline
*/
lunr.Pipeline.registerFunction = function (fn, label) {
if (label in this.registeredFunctions) {
lunr.utils.warn('Overwriting existing registered function: ' + label)
}
fn.label = label
lunr.Pipeline.registeredFunctions[fn.label] = fn
}
/**
* Warns if the function is not registered as a Pipeline function.
*
* @param {Function} fn The function to check for.
* @private
* @memberOf Pipeline
*/
lunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {
var isRegistered = fn.label && (fn.label in this.registeredFunctions)
if (!isRegistered) {
lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\n', fn)
}
}
/**
* Loads a previously serialised pipeline.
*
* All functions to be loaded must already be registered with lunr.Pipeline.
* If any function from the serialised data has not been registered then an
* error will be thrown.
*
* @param {Object} serialised The serialised pipeline to load.
* @returns {lunr.Pipeline}
* @memberOf Pipeline
*/
lunr.Pipeline.load = function (serialised) {
var pipeline = new lunr.Pipeline
serialised.forEach(function (fnName) {
var fn = lunr.Pipeline.registeredFunctions[fnName]
if (fn) {
pipeline.add(fn)
} else {
throw new Error ('Cannot load un-registered function: ' + fnName)
}
})
return pipeline
}
/**
* Adds new functions to the end of the pipeline.
*
* Logs a warning if the function has not been registered.
*
* @param {Function} functions Any number of functions to add to the pipeline.
* @memberOf Pipeline
*/
lunr.Pipeline.prototype.add = function () {
var fns = Array.prototype.slice.call(arguments)
fns.forEach(function (fn) {
lunr.Pipeline.warnIfFunctionNotRegistered(fn)
this._stack.push(fn)
}, this)
}
/**
* Adds a single function after a function that already exists in the
* pipeline.
*
* Logs a warning if the function has not been registered.
*
* @param {Function} existingFn A function that already exists in the pipeline.
* @param {Function} newFn The new function to add to the pipeline.
* @memberOf Pipeline
*/
lunr.Pipeline.prototype.after = function (existingFn, newFn) {
lunr.Pipeline.warnIfFunctionNotRegistered(newFn)
var pos = this._stack.indexOf(existingFn) + 1
this._stack.splice(pos, 0, newFn)
}
/**
* Adds a single function before a function that already exists in the
* pipeline.
*
* Logs a warning if the function has not been registered.
*
* @param {Function} existingFn A function that already exists in the pipeline.
* @param {Function} newFn The new function to add to the pipeline.
* @memberOf Pipeline
*/
lunr.Pipeline.prototype.before = function (existingFn, newFn) {
lunr.Pipeline.warnIfFunctionNotRegistered(newFn)
var pos = this._stack.indexOf(existingFn)
this._stack.splice(pos, 0, newFn)
}
/**
* Removes a function from the pipeline.
*
* @param {Function} fn The function to remove from the pipeline.
* @memberOf Pipeline
*/
lunr.Pipeline.prototype.remove = function (fn) {
var pos = this._stack.indexOf(fn)
this._stack.splice(pos, 1)
}
/**
* Runs the current list of functions that make up the pipeline against the
* passed tokens.
*
* @param {Array} tokens The tokens to run through the pipeline.
* @returns {Array}
* @memberOf Pipeline
*/
lunr.Pipeline.prototype.run = function (tokens) {
var out = [],
tokenLength = tokens.length,
stackLength = this._stack.length
for (var i = 0; i < tokenLength; i++) {
var token = tokens[i]
for (var j = 0; j < stackLength; j++) {
token = this._stack[j](token, i, tokens)
if (token === void 0) break
};
if (token !== void 0) out.push(token)
};
return out
}
/**
* Resets the pipeline by removing any existing processors.
*
* @memberOf Pipeline
*/
lunr.Pipeline.prototype.reset = function () {
this._stack = []
}
/**
* Returns a representation of the pipeline ready for serialisation.
*
* Logs a warning if the function has not been registered.
*
* @returns {Array}
* @memberOf Pipeline
*/
lunr.Pipeline.prototype.toJSON = function () {
return this._stack.map(function (fn) {
lunr.Pipeline.warnIfFunctionNotRegistered(fn)
return fn.label
})
}
/*!
* lunr.Vector
* Copyright (C) 2014 Oliver Nightingale
*/
/**
* lunr.Vectors implement vector related operations for
* a series of elements.
*
* @constructor
*/
lunr.Vector = function () {
this._magnitude = null
this.list = undefined
this.length = 0
}
/**
* lunr.Vector.Node is a simple struct for each node
* in a lunr.Vector.
*
* @private
* @param {Number} The index of the node in the vector.
* @param {Object} The data at this node in the vector.
* @param {lunr.Vector.Node} The node directly after this node in the vector.
* @constructor
* @memberOf Vector
*/
lunr.Vector.Node = function (idx, val, next) {
this.idx = idx
this.val = val
this.next = next
}
/**
* Inserts a new value at a position in a vector.
*
* @param {Number} The index at which to insert a value.
* @param {Object} The object to insert in the vector.
* @memberOf Vector.
*/
lunr.Vector.prototype.insert = function (idx, val) {
var list = this.list
if (!list) {
this.list = new lunr.Vector.Node (idx, val, list)
return this.length++
}
var prev = list,
next = list.next
while (next != undefined) {
if (idx < next.idx) {
prev.next = new lunr.Vector.Node (idx, val, next)
return this.length++
}
prev = next, next = next.next
}
prev.next = new lunr.Vector.Node (idx, val, next)
return this.length++
}
/**
* Calculates the magnitude of this vector.
*
* @returns {Number}
* @memberOf Vector
*/
lunr.Vector.prototype.magnitude = function () {
if (this._magniture) return this._magnitude
var node = this.list,
sumOfSquares = 0,
val
while (node) {
val = node.val
sumOfSquares += val * val
node = node.next
}
return this._magnitude = Math.sqrt(sumOfSquares)
}
/**
* Calculates the dot product of this vector and another vector.
*
* @param {lunr.Vector} otherVector The vector to compute the dot product with.
* @returns {Number}
* @memberOf Vector
*/
lunr.Vector.prototype.dot = function (otherVector) {
var node = this.list,
otherNode = otherVector.list,
dotProduct = 0
while (node && otherNode) {
if (node.idx < otherNode.idx) {
node = node.next
} else if (node.idx > otherNode.idx) {
otherNode = otherNode.next
} else {
dotProduct += node.val * otherNode.val
node = node.next
otherNode = otherNode.next
}
}
return dotProduct
}
/**
* Calculates the cosine similarity between this vector and another
* vector.
*
* @param {lunr.Vector} otherVector The other vector to calculate the
* similarity with.
* @returns {Number}
* @memberOf Vector
*/
lunr.Vector.prototype.similarity = function (otherVector) {
return this.dot(otherVector) / (this.magnitude() * otherVector.magnitude())
}
/*!
* lunr.SortedSet
* Copyright (C) 2014 Oliver Nightingale
*/
/**
* lunr.SortedSets are used to maintain an array of uniq values in a sorted
* order.
*
* @constructor
*/
lunr.SortedSet = function () {
this.length = 0
this.elements = []
}
/**
* Loads a previously serialised sorted set.
*
* @param {Array} serialisedData The serialised set to load.
* @returns {lunr.SortedSet}
* @memberOf SortedSet
*/
lunr.SortedSet.load = function (serialisedData) {
var set = new this
set.elements = serialisedData
set.length = serialisedData.length
return set
}
/**
* Inserts new items into the set in the correct position to maintain the
* order.
*
* @param {Object} The objects to add to this set.
* @memberOf SortedSet
*/
lunr.SortedSet.prototype.add = function () {
Array.prototype.slice.call(arguments).forEach(function (element) {
if (~this.indexOf(element)) return
this.elements.splice(this.locationFor(element), 0, element)
}, this)
this.length = this.elements.length
}
/**
* Converts this sorted set into an array.
*
* @returns {Array}
* @memberOf SortedSet
*/
lunr.SortedSet.prototype.toArray = function () {
return this.elements.slice()
}
/**
* Creates a new array with the results of calling a provided function on every
* element in this sorted set.
*
* Delegates to Array.prototype.map and has the same signature.
*
* @param {Function} fn The function that is called on each element of the
* set.
* @param {Object} ctx An optional object that can be used as the context
* for the function fn.
* @returns {Array}
* @memberOf SortedSet
*/
lunr.SortedSet.prototype.map = function (fn, ctx) {
return this.elements.map(fn, ctx)
}
/**
* Executes a provided function once per sorted set element.
*
* Delegates to Array.prototype.forEach and has the same signature.
*
* @param {Function} fn The function that is called on each element of the
* set.
* @param {Object} ctx An optional object that can be used as the context
* @memberOf SortedSet
* for the function fn.
*/
lunr.SortedSet.prototype.forEach = function (fn, ctx) {
return this.elements.forEach(fn, ctx)
}
/**
* Returns the index at which a given element can be found in the
* sorted set, or -1 if it is not present.
*
* @param {Object} elem The object to locate in the sorted set.
* @param {Number} start An optional index at which to start searching from
* within the set.
* @param {Number} end An optional index at which to stop search from within
* the set.
* @returns {Number}
* @memberOf SortedSet
*/
lunr.SortedSet.prototype.indexOf = function (elem, start, end) {
var start = start || 0,
end = end || this.elements.length,
sectionLength = end - start,
pivot = start + Math.floor(sectionLength / 2),
pivotElem = this.elements[pivot]
if (sectionLength <= 1) {
if (pivotElem === elem) {
return pivot
} else {
return -1
}
}
if (pivotElem < elem) return this.indexOf(elem, pivot, end)
if (pivotElem > elem) return this.indexOf(elem, start, pivot)
if (pivotElem === elem) return pivot
}
/**
* Returns the position within the sorted set that an element should be
* inserted at to maintain the current order of the set.
*
* This function assumes that the element to search for does not already exist
* in the sorted set.
*
* @param {Object} elem The elem to find the position for in the set
* @param {Number} start An optional index at which to start searching from
* within the set.
* @param {Number} end An optional index at which to stop search from within
* the set.
* @returns {Number}
* @memberOf SortedSet
*/
lunr.SortedSet.prototype.locationFor = function (elem, start, end) {
var start = start || 0,
end = end || this.elements.length,
sectionLength = end - start,
pivot = start + Math.floor(sectionLength / 2),
pivotElem = this.elements[pivot]
if (sectionLength <= 1) {
if (pivotElem > elem) return pivot
if (pivotElem < elem) return pivot + 1
}
if (pivotElem < elem) return this.locationFor(elem, pivot, end)
if (pivotElem > elem) return this.locationFor(elem, start, pivot)
}
/**
* Creates a new lunr.SortedSet that contains the elements in the intersection
* of this set and the passed set.
*
* @param {lunr.SortedSet} otherSet The set to intersect with this set.
* @returns {lunr.SortedSet}
* @memberOf SortedSet
*/
lunr.SortedSet.prototype.intersect = function (otherSet) {
var intersectSet = new lunr.SortedSet,
i = 0, j = 0,
a_len = this.length, b_len = otherSet.length,
a = this.elements, b = otherSet.elements
while (true) {
if (i > a_len - 1 || j > b_len - 1) break
if (a[i] === b[j]) {
intersectSet.add(a[i])
i++, j++
continue
}
if (a[i] < b[j]) {
i++
continue
}
if (a[i] > b[j]) {
j++
continue
}
};
return intersectSet
}
/**
* Makes a copy of this set
*
* @returns {lunr.SortedSet}
* @memberOf SortedSet
*/
lunr.SortedSet.prototype.clone = function () {
var clone = new lunr.SortedSet
clone.elements = this.toArray()
clone.length = clone.elements.length
return clone
}
/**
* Creates a new lunr.SortedSet that contains the elements in the union
* of this set and the passed set.
*
* @param {lunr.SortedSet} otherSet The set to union with this set.
* @returns {lunr.SortedSet}
* @memberOf SortedSet
*/
lunr.SortedSet.prototype.union = function (otherSet) {
var longSet, shortSet, unionSet
if (this.length >= otherSet.length) {
longSet = this, shortSet = otherSet
} else {
longSet = otherSet, shortSet = this
}
unionSet = longSet.clone()
unionSet.add.apply(unionSet, shortSet.toArray())
return unionSet
}
/**
* Returns a representation of the sorted set ready for serialisation.
*
* @returns {Array}
* @memberOf SortedSet
*/
lunr.SortedSet.prototype.toJSON = function () {
return this.toArray()
}
/*!
* lunr.Index
* Copyright (C) 2014 Oliver Nightingale
*/
/**
* lunr.Index is object that manages a search index. It contains the indexes
* and stores all the tokens and document lookups. It also provides the main
* user facing API for the library.
*
* @constructor
*/
lunr.Index = function () {
this._fields = []
this._ref = 'id'
this.pipeline = new lunr.Pipeline
this.documentStore = new lunr.Store
this.tokenStore = new lunr.TokenStore
this.corpusTokens = new lunr.SortedSet
this.eventEmitter = new lunr.EventEmitter
this._idfCache = {}
this.on('add', 'remove', 'update', (function () {
this._idfCache = {}
}).bind(this))
}
/**
* Bind a handler to events being emitted by the index.
*
* The handler can be bound to many events at the same time.
*
* @param {String} [eventName] The name(s) of events to bind the function to.
* @param {Function} handler The serialised set to load.
* @memberOf Index
*/
lunr.Index.prototype.on = function () {
var args = Array.prototype.slice.call(arguments)
return this.eventEmitter.addListener.apply(this.eventEmitter, args)
}
/**
* Removes a handler from an event being emitted by the index.
*
* @param {String} eventName The name of events to remove the function from.
* @param {Function} handler The serialised set to load.
* @memberOf Index
*/
lunr.Index.prototype.off = function (name, fn) {
return this.eventEmitter.removeListener(name, fn)
}
/**
* Loads a previously serialised index.
*
* Issues a warning if the index being imported was serialised
* by a different version of lunr.
*
* @param {Object} serialisedData The serialised set to load.
* @returns {lunr.Index}
* @memberOf Index
*/
lunr.Index.load = function (serialisedData) {
if (serialisedData.version !== lunr.version) {
lunr.utils.warn('version mismatch: current ' + lunr.version + ' importing ' + serialisedData.version)
}
var idx = new this
idx._fields = serialisedData.fields
idx._ref = serialisedData.ref
idx.documentStore = lunr.Store.load(serialisedData.documentStore)
idx.tokenStore = lunr.TokenStore.load(serialisedData.tokenStore)
idx.corpusTokens = lunr.SortedSet.load(serialisedData.corpusTokens)
idx.pipeline = lunr.Pipeline.load(serialisedData.pipeline)
return idx
}
/**
* Adds a field to the list of fields that will be searchable within documents
* in the index.
*
* An optional boost param can be passed to affect how much tokens in this field
* rank in search results, by default the boost value is 1.
*
* Fields should be added before any documents are added to the index, fields
* that are added after documents are added to the index will only apply to new
* documents added to the index.
*
* @param {String} fieldName The name of the field within the document that
* should be indexed
* @param {Number} boost An optional boost that can be applied to terms in this
* field.
* @returns {lunr.Index}
* @memberOf Index
*/
lunr.Index.prototype.field = function (fieldName, opts) {
var opts = opts || {},
field = { name: fieldName, boost: opts.boost || 1 }
this._fields.push(field)
return this
}
/**
* Sets the property used to uniquely identify documents added to the index,
* by default this property is 'id'.
*
* This should only be changed before adding documents to the index, changing
* the ref property without resetting the index can lead to unexpected results.
*
* @param {String} refName The property to use to uniquely identify the
* documents in the index.
* @param {Boolean} emitEvent Whether to emit add events, defaults to true
* @returns {lunr.Index}
* @memberOf Index
*/
lunr.Index.prototype.ref = function (refName) {
this._ref = refName
return this
}
/**
* Add a document to the index.
*
* This is the way new documents enter the index, this function will run the
* fields from the document through the index's pipeline and then add it to
* the index, it will then show up in search results.
*
* An 'add' event is emitted with the document that has been added and the index
* the document has been added to. This event can be silenced by passing false
* as the second argument to add.
*
* @param {Object} doc The document to add to the index.
* @param {Boolean} emitEvent Whether or not to emit events, default true.
* @memberOf Index
*/
lunr.Index.prototype.add = function (doc, emitEvent) {
var docTokens = {},
allDocumentTokens = new lunr.SortedSet,
docRef = doc[this._ref],
emitEvent = emitEvent === undefined ? true : emitEvent
this._fields.forEach(function (field) {
var fieldTokens = this.pipeline.run(lunr.tokenizer(doc[field.name]))
docTokens[field.name] = fieldTokens
lunr.SortedSet.prototype.add.apply(allDocumentTokens, fieldTokens)
}, this)
this.documentStore.set(docRef, allDocumentTokens)
lunr.SortedSet.prototype.add.apply(this.corpusTokens, allDocumentTokens.toArray())
for (var i = 0; i < allDocumentTokens.length; i++) {
var token = allDocumentTokens.elements[i]
var tf = this._fields.reduce(function (memo, field) {
var fieldLength = docTokens[field.name].length
if (!fieldLength) return memo
var tokenCount = docTokens[field.name].filter(function (t) { return t === token }).length
return memo + (tokenCount / fieldLength * field.boost)
}, 0)
this.tokenStore.add(token, { ref: docRef, tf: tf })
};
if (emitEvent) this.eventEmitter.emit('add', doc, this)
}
/**
* Removes a document from the index.
*
* To make sure documents no longer show up in search results they can be
* removed from the index using this method.
*
* The document passed only needs to have the same ref property value as the
* document that was added to the index, they could be completely different
* objects.
*
* A 'remove' event is emitted with the document that has been removed and the index
* the document has been removed from. This event can be silenced by passing false
* as the second argument to remove.
*
* @param {Object} doc The document to remove from the index.
* @param {Boolean} emitEvent Whether to emit remove events, defaults to true
* @memberOf Index
*/
lunr.Index.prototype.remove = function (doc, emitEvent) {
var docRef = doc[this._ref],
emitEvent = emitEvent === undefined ? true : emitEvent
if (!this.documentStore.has(docRef)) return
var docTokens = this.documentStore.get(docRef)
this.documentStore.remove(docRef)
docTokens.forEach(function (token) {
this.tokenStore.remove(token, docRef)
}, this)
if (emitEvent) this.eventEmitter.emit('remove', doc, this)
}
/**
* Updates a document in the index.
*
* When a document contained within the index gets updated, fields changed,
* added or removed, to make sure it correctly matched against search queries,
* it should be updated in the index.
*
* This method is just a wrapper around `remove` and `add`
*
* An 'update' event is emitted with the document that has been updated and the index.
* This event can be silenced by passing false as the second argument to update. Only
* an update event will be fired, the 'add' and 'remove' events of the underlying calls
* are silenced.
*
* @param {Object} doc The document to update in the index.
* @param {Boolean} emitEvent Whether to emit update events, defaults to true
* @see Index.prototype.remove
* @see Index.prototype.add
* @memberOf Index
*/
lunr.Index.prototype.update = function (doc, emitEvent) {
var emitEvent = emitEvent === undefined ? true : emitEvent
this.remove(doc, false)
this.add(doc, false)
if (emitEvent) this.eventEmitter.emit('update', doc, this)
}
/**
* Calculates the inverse document frequency for a token within the index.
*
* @param {String} token The token to calculate the idf of.
* @see Index.prototype.idf
* @private
* @memberOf Index
*/
lunr.Index.prototype.idf = function (term) {
var cacheKey = "@" + term
if (Object.prototype.hasOwnProperty.call(this._idfCache, cacheKey)) return this._idfCache[cacheKey]
var documentFrequency = this.tokenStore.count(term),
idf = 1
if (documentFrequency > 0) {
idf = 1 + Math.log(this.tokenStore.length / documentFrequency)
}
return this._idfCache[cacheKey] = idf
}
/**
* Searches the index using the passed query.
*
* Queries should be a string, multiple words are allowed and will lead to an
* AND based query, e.g. `idx.search('foo bar')` will run a search for
* documents containing both 'foo' and 'bar'.
*
* All query tokens are passed through the same pipeline that document tokens
* are passed through, so any language processing involved will be run on every
* query term.
*
* Each query term is expanded, so that the term 'he' might be expanded to
* 'hello' and 'help' if those terms were already included in the index.
*
* Matching documents are returned as an array of objects, each object contains
* the matching document ref, as set for this index, and the similarity score
* for this document against the query.
*
* @param {String} query The query to search the index with.
* @returns {Object}
* @see Index.prototype.idf
* @see Index.prototype.documentVector
* @memberOf Index
*/
lunr.Index.prototype.search = function (query) {
var queryTokens = this.pipeline.run(lunr.tokenizer(query)),
queryVector = new lunr.Vector,
documentSets = [],
fieldBoosts = this._fields.reduce(function (memo, f) { return memo + f.boost }, 0)
var hasSomeToken = queryTokens.some(function (token) {
return this.tokenStore.has(token)
}, this)
if (!hasSomeToken) return []
queryTokens
.forEach(function (token, i, tokens) {
var tf = 1 / tokens.length * this._fields.length * fieldBoosts,
self = this
var set = this.tokenStore.expand(token).reduce(function (memo, key) {
var pos = self.corpusTokens.indexOf(key),
idf = self.idf(key),
similarityBoost = 1,
set = new lunr.SortedSet
// if the expanded key is not an exact match to the token then
// penalise the score for this key by how different the key is
// to the token.
if (key !== token) {
var diff = Math.max(3, key.length - token.length)
similarityBoost = 1 / Math.log(diff)
}
// calculate the query tf-idf score for this token
// applying an similarityBoost to ensure exact matches
// these rank higher than expanded terms
if (pos > -1) queryVector.insert(pos, tf * idf * similarityBoost)
// add all the documents that have this key into a set
Object.keys(self.tokenStore.get(key)).forEach(function (ref) { set.add(ref) })
return memo.union(set)
}, new lunr.SortedSet)
documentSets.push(set)
}, this)
var documentSet = documentSets.reduce(function (memo, set) {
return memo.intersect(set)
})
return documentSet
.map(function (ref) {
return { ref: ref, score: queryVector.similarity(this.documentVector(ref)) }
}, this)
.sort(function (a, b) {
return b.score - a.score
})
}
/**
* Generates a vector containing all the tokens in the document matching the
* passed documentRef.
*
* The vector contains the tf-idf score for each token contained in the
* document with the passed documentRef. The vector will contain an element
* for every token in the indexes corpus, if the document does not contain that
* token the element will be 0.
*
* @param {Object} documentRef The ref to find the document with.
* @returns {lunr.Vector}
* @private
* @memberOf Index
*/
lunr.Index.prototype.documentVector = function (documentRef) {
var documentTokens = this.documentStore.get(documentRef),
documentTokensLength = documentTokens.length,
documentVector = new lunr.Vector
for (var i = 0; i < documentTokensLength; i++) {
var token = documentTokens.elements[i],
tf = this.tokenStore.get(token)[documentRef].tf,
idf = this.idf(token)
documentVector.insert(this.corpusTokens.indexOf(token), tf * idf)
};
return documentVector
}
/**
* Returns a representation of the index ready for serialisation.
*
* @returns {Object}
* @memberOf Index
*/
lunr.Index.prototype.toJSON = function () {
return {
version: lunr.version,
fields: this._fields,
ref: this._ref,
documentStore: this.documentStore.toJSON(),
tokenStore: this.tokenStore.toJSON(),
corpusTokens: this.corpusTokens.toJSON(),
pipeline: this.pipeline.toJSON()
}
}
/**
* Applies a plugin to the current index.
*
* A plugin is a function that is called with the index as its context.
* Plugins can be used to customise or extend the behaviour the index
* in some way. A plugin is just a function, that encapsulated the custom
* behaviour that should be applied to the index.
*
* The plugin function will be called with the index as its argument, additional
* arguments can also be passed when calling use. The function will be called
* with the index as its context.
*
* Example:
*
* var myPlugin = function (idx, arg1, arg2) {
* // `this` is the index to be extended
* // apply any extensions etc here.
* }
*
* var idx = lunr(function () {
* this.use(myPlugin, 'arg1', 'arg2')
* })
*
* @param {Function} plugin The plugin to apply.
* @memberOf Index
*/
lunr.Index.prototype.use = function (plugin) {
var args = Array.prototype.slice.call(arguments, 1)
args.unshift(this)
plugin.apply(this, args)
}
/*!
* lunr.Store
* Copyright (C) 2014 Oliver Nightingale
*/
/**
* lunr.Store is a simple key-value store used for storing sets of tokens for
* documents stored in index.
*
* @constructor
* @module
*/
lunr.Store = function () {
this.store = {}
this.length = 0
}
/**
* Loads a previously serialised store
*
* @param {Object} serialisedData The serialised store to load.
* @returns {lunr.Store}
* @memberOf Store
*/
lunr.Store.load = function (serialisedData) {
var store = new this
store.length = serialisedData.length
store.store = Object.keys(serialisedData.store).reduce(function (memo, key) {
memo[key] = lunr.SortedSet.load(serialisedData.store[key])
return memo
}, {})
return store
}
/**
* Stores the given tokens in the store against the given id.
*
* @param {Object} id The key used to store the tokens against.
* @param {Object} tokens The tokens to store against the key.
* @memberOf Store
*/
lunr.Store.prototype.set = function (id, tokens) {
this.store[id] = tokens
this.length = Object.keys(this.store).length
}
/**
* Retrieves the tokens from the store for a given key.
*
* @param {Object} id The key to lookup and retrieve from the store.
* @returns {Object}
* @memberOf Store
*/
lunr.Store.prototype.get = function (id) {
return this.store[id]
}
/**
* Checks whether the store contains a key.
*
* @param {Object} id The id to look up in the store.
* @returns {Boolean}
* @memberOf Store
*/
lunr.Store.prototype.has = function (id) {
return id in this.store
}
/**
* Removes the value for a key in the store.
*
* @param {Object} id The id to remove from the store.
* @memberOf Store
*/
lunr.Store.prototype.remove = function (id) {
if (!this.has(id)) return
delete this.store[id]
this.length--
}
/**
* Returns a representation of the store ready for serialisation.
*
* @returns {Object}
* @memberOf Store
*/
lunr.Store.prototype.toJSON = function () {
return {
store: this.store,
length: this.length
}
}
/*!
* lunr.stemmer
* Copyright (C) 2014 Oliver Nightingale
* Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
*/
/**
* lunr.stemmer is an english language stemmer, this is a JavaScript
* implementation of the PorterStemmer taken from http://tartaurs.org/~martin
*
* @module
* @param {String} str The string to stem
* @returns {String}
* @see lunr.Pipeline
*/
lunr.stemmer = (function(){
var step2list = {
"ational" : "ate",
"tional" : "tion",
"enci" : "ence",
"anci" : "ance",
"izer" : "ize",
"bli" : "ble",
"alli" : "al",
"entli" : "ent",
"eli" : "e",
"ousli" : "ous",
"ization" : "ize",
"ation" : "ate",
"ator" : "ate",
"alism" : "al",
"iveness" : "ive",
"fulness" : "ful",
"ousness" : "ous",
"aliti" : "al",
"iviti" : "ive",
"biliti" : "ble",
"logi" : "log"
},
step3list = {
"icate" : "ic",
"ative" : "",
"alize" : "al",
"iciti" : "ic",
"ical" : "ic",
"ful" : "",
"ness" : ""
},
c = "[^aeiou]", // consonant
v = "[aeiouy]", // vowel
C = c + "[^aeiouy]*", // consonant sequence
V = v + "[aeiou]*", // vowel sequence
mgr0 = "^(" + C + ")?" + V + C, // [C]VC... is m>0
meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$", // [C]VC[V] is m=1
mgr1 = "^(" + C + ")?" + V + C + V + C, // [C]VCVC... is m>1
s_v = "^(" + C + ")?" + v; // vowel in stem
return function (w) {
var stem,
suffix,
firstch,
re,
re2,
re3,
re4;
if (w.length < 3) { return w; }
firstch = w.substr(0,1);
if (firstch == "y") {
w = firstch.toUpperCase() + w.substr(1);
}
// Step 1a
re = /^(.+?)(ss|i)es$/;
re2 = /^(.+?)([^s])s$/;
if (re.test(w)) { w = w.replace(re,"$1$2"); }
else if (re2.test(w)) { w = w.replace(re2,"$1$2"); }
// Step 1b
re = /^(.+?)eed$/;
re2 = /^(.+?)(ed|ing)$/;
if (re.test(w)) {
var fp = re.exec(w);
re = new RegExp(mgr0);
if (re.test(fp[1])) {
re = /.$/;
w = w.replace(re,"");
}
} else if (re2.test(w)) {
var fp = re2.exec(w);
stem = fp[1];
re2 = new RegExp(s_v);
if (re2.test(stem)) {
w = stem;
re2 = /(at|bl|iz)$/;
re3 = new RegExp("([^aeiouylsz])\\1$");
re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
if (re2.test(w)) { w = w + "e"; }
else if (re3.test(w)) { re = /.$/; w = w.replace(re,""); }
else if (re4.test(w)) { w = w + "e"; }
}
}
// Step 1c
re = /^(.+?)y$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(s_v);
if (re.test(stem)) { w = stem + "i"; }
}
// Step 2
re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
suffix = fp[2];
re = new RegExp(mgr0);
if (re.test(stem)) {
w = stem + step2list[suffix];
}
}
// Step 3
re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
suffix = fp[2];
re = new RegExp(mgr0);
if (re.test(stem)) {
w = stem + step3list[suffix];
}
}
// Step 4
re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
re2 = /^(.+?)(s|t)(ion)$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(mgr1);
if (re.test(stem)) {
w = stem;
}
} else if (re2.test(w)) {
var fp = re2.exec(w);
stem = fp[1] + fp[2];
re2 = new RegExp(mgr1);
if (re2.test(stem)) {
w = stem;
}
}
// Step 5
re = /^(.+?)e$/;
if (re.test(w)) {
var fp = re.exec(w);
stem = fp[1];
re = new RegExp(mgr1);
re2 = new RegExp(meq1);
re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {
w = stem;
}
}
re = /ll$/;
re2 = new RegExp(mgr1);
if (re.test(w) && re2.test(w)) {
re = /.$/;
w = w.replace(re,"");
}
// and turn initial Y back to y
if (firstch == "y") {
w = firstch.toLowerCase() + w.substr(1);
}
return w;
}
})();
lunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')
/*!
* lunr.stopWordFilter
* Copyright (C) 2014 Oliver Nightingale
*/
/**
* lunr.stopWordFilter is an English language stop word list filter, any words
* contained in the list will not be passed through the filter.
*
* This is intended to be used in the Pipeline. If the token does not pass the
* filter then undefined will be returned.
*
* @module
* @param {String} token The token to pass through the filter
* @returns {String}
* @see lunr.Pipeline
*/
lunr.stopWordFilter = function (token) {
if (lunr.stopWordFilter.stopWords.indexOf(token) === -1) return token
}
lunr.stopWordFilter.stopWords = new lunr.SortedSet
lunr.stopWordFilter.stopWords.length = 119
lunr.stopWordFilter.stopWords.elements = [
"",
"a",
"able",
"about",
"across",
"after",
"all",
"almost",
"also",
"am",
"among",
"an",
"and",
"any",
"are",
"as",
"at",
"be",
"because",
"been",
"but",
"by",
"can",
"cannot",
"could",
"dear",
"did",
"do",
"does",
"either",
"else",
"ever",
"every",
"for",
"from",
"get",
"got",
"had",
"has",
"have",
"he",
"her",
"hers",
"him",
"his",
"how",
"however",
"i",
"if",
"in",
"into",
"is",
"it",
"its",
"just",
"least",
"let",
"like",
"likely",
"may",
"me",
"might",
"most",
"must",
"my",
"neither",
"no",
"nor",
"not",
"of",
"off",
"often",
"on",
"only",
"or",
"other",
"our",
"own",
"rather",
"said",
"say",
"says",
"she",
"should",
"since",
"so",
"some",
"than",
"that",
"the",
"their",
"them",
"then",
"there",
"these",
"they",
"this",
"tis",
"to",
"too",
"twas",
"us",
"wants",
"was",
"we",
"were",
"what",
"when",
"where",
"which",
"while",
"who",
"whom",
"why",
"will",
"with",
"would",
"yet",
"you",
"your"
]
lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')
/*!
* lunr.trimmer
* Copyright (C) 2014 Oliver Nightingale
*/
/**
* lunr.trimmer is a pipeline function for trimming non word
* characters from the begining and end of tokens before they
* enter the index.
*
* This implementation may not work correctly for non latin
* characters and should either be removed or adapted for use
* with languages with non-latin characters.
*
* @module
* @param {String} token The token to pass through the filter
* @returns {String}
* @see lunr.Pipeline
*/
lunr.trimmer = function (token) {
return token
.replace(/^\W+/, '')
.replace(/\W+$/, '')
}
lunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')
/*!
* lunr.stemmer
* Copyright (C) 2014 Oliver Nightingale
* Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
*/
/**
* lunr.TokenStore is used for efficient storing and lookup of the reverse
* index of token to document ref.
*
* @constructor
*/
lunr.TokenStore = function () {
this.root = { docs: {} }
this.length = 0
}
/**
* Loads a previously serialised token store
*
* @param {Object} serialisedData The serialised token store to load.
* @returns {lunr.TokenStore}
* @memberOf TokenStore
*/
lunr.TokenStore.load = function (serialisedData) {
var store = new this
store.root = serialisedData.root
store.length = serialisedData.length
return store
}
/**
* Adds a new token doc pair to the store.
*
* By default this function starts at the root of the current store, however
* it can start at any node of any token store if required.
*
* @param {String} token The token to store the doc under
* @param {Object} doc The doc to store against the token
* @param {Object} root An optional node at which to start looking for the
* correct place to enter the doc, by default the root of this lunr.TokenStore
* is used.
* @memberOf TokenStore
*/
lunr.TokenStore.prototype.add = function (token, doc, root) {
var root = root || this.root,
key = token[0],
rest = token.slice(1)
if (!(key in root)) root[key] = {docs: {}}
if (rest.length === 0) {
root[key].docs[doc.ref] = doc
this.length += 1
return
} else {
return this.add(rest, doc, root[key])
}
}
/**
* Checks whether this key is contained within this lunr.TokenStore.
*
* By default this function starts at the root of the current store, however
* it can start at any node of any token store if required.
*
* @param {String} token The token to check for
* @param {Object} root An optional node at which to start
* @memberOf TokenStore
*/
lunr.TokenStore.prototype.has = function (token) {
if (!token) return false
var node = this.root
for (var i = 0; i < token.length; i++) {
if (!node[token[i]]) return false
node = node[token[i]]
}
return true
}
/**
* Retrieve a node from the token store for a given token.
*
* By default this function starts at the root of the current store, however
* it can start at any node of any token store if required.
*
* @param {String} token The token to get the node for.
* @param {Object} root An optional node at which to start.
* @returns {Object}
* @see TokenStore.prototype.get
* @memberOf TokenStore
*/
lunr.TokenStore.prototype.getNode = function (token) {
if (!token) return {}
var node = this.root
for (var i = 0; i < token.length; i++) {
if (!node[token[i]]) return {}
node = node[token[i]]
}
return node
}
/**
* Retrieve the documents for a node for the given token.
*
* By default this function starts at the root of the current store, however
* it can start at any node of any token store if required.
*
* @param {String} token The token to get the documents for.
* @param {Object} root An optional node at which to start.
* @returns {Object}
* @memberOf TokenStore
*/
lunr.TokenStore.prototype.get = function (token, root) {
return this.getNode(token, root).docs || {}
}
lunr.TokenStore.prototype.count = function (token, root) {
return Object.keys(this.get(token, root)).length
}
/**
* Remove the document identified by ref from the token in the store.
*
* By default this function starts at the root of the current store, however
* it can start at any node of any token store if required.
*
* @param {String} token The token to get the documents for.
* @param {String} ref The ref of the document to remove from this token.
* @param {Object} root An optional node at which to start.
* @returns {Object}
* @memberOf TokenStore
*/
lunr.TokenStore.prototype.remove = function (token, ref) {
if (!token) return
var node = this.root
for (var i = 0; i < token.length; i++) {
if (!(token[i] in node)) return
node = node[token[i]]
}
delete node.docs[ref]
}
/**
* Find all the possible suffixes of the passed token using tokens
* currently in the store.
*
* @param {String} token The token to expand.
* @returns {Array}
* @memberOf TokenStore
*/
lunr.TokenStore.prototype.expand = function (token, memo) {
var root = this.getNode(token),
docs = root.docs || {},
memo = memo || []
if (Object.keys(docs).length) memo.push(token)
Object.keys(root)
.forEach(function (key) {
if (key === 'docs') return
memo.concat(this.expand(token + key, memo))
}, this)
return memo
}
/**
* Returns a representation of the token store ready for serialisation.
*
* @returns {Object}
* @memberOf TokenStore
*/
lunr.TokenStore.prototype.toJSON = function () {
return {
root: this.root,
length: this.length
}
}
/**
* export the module via AMD, CommonnJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like enviroments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
root.lunr = factory()
}
}(this, function () {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return lunr
}))
})()
\ No newline at end of file
/*
RequireJS 2.1.14 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
Available via the MIT or new BSD license.
see: http://github.com/jrburke/requirejs for details
*/
var requirejs,require,define;
(function(ba){function G(b){return"[object Function]"===K.call(b)}function H(b){return"[object Array]"===K.call(b)}function v(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+=1);}}function T(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b));d-=1);}}function t(b,c){return fa.call(b,c)}function m(b,c){return t(b,c)&&b[c]}function B(b,c){for(var d in b)if(t(b,d)&&c(b[d],d))break}function U(b,c,d,e){c&&B(c,function(c,g){if(d||!t(b,g))e&&"object"===typeof c&&c&&!H(c)&&!G(c)&&!(c instanceof
RegExp)?(b[g]||(b[g]={}),U(b[g],c,d,e)):b[g]=c});return b}function u(b,c){return function(){return c.apply(b,arguments)}}function ca(b){throw b;}function da(b){if(!b)return b;var c=ba;v(b.split("."),function(b){c=c[b]});return c}function C(b,c,d,e){c=Error(c+"\nhttp://requirejs.org/docs/errors.html#"+b);c.requireType=b;c.requireModules=e;d&&(c.originalError=d);return c}function ga(b){function c(a,k,b){var f,l,c,d,e,g,i,p,k=k&&k.split("/"),h=j.map,n=h&&h["*"];if(a){a=a.split("/");l=a.length-1;j.nodeIdCompat&&
Q.test(a[l])&&(a[l]=a[l].replace(Q,""));"."===a[0].charAt(0)&&k&&(l=k.slice(0,k.length-1),a=l.concat(a));l=a;for(c=0;c<l.length;c++)if(d=l[c],"."===d)l.splice(c,1),c-=1;else if(".."===d&&!(0===c||1==c&&".."===l[2]||".."===l[c-1])&&0<c)l.splice(c-1,2),c-=2;a=a.join("/")}if(b&&h&&(k||n)){l=a.split("/");c=l.length;a:for(;0<c;c-=1){e=l.slice(0,c).join("/");if(k)for(d=k.length;0<d;d-=1)if(b=m(h,k.slice(0,d).join("/")))if(b=m(b,e)){f=b;g=c;break a}!i&&(n&&m(n,e))&&(i=m(n,e),p=c)}!f&&i&&(f=i,g=p);f&&(l.splice(0,
g,f),a=l.join("/"))}return(f=m(j.pkgs,a))?f:a}function d(a){z&&v(document.getElementsByTagName("script"),function(k){if(k.getAttribute("data-requiremodule")===a&&k.getAttribute("data-requirecontext")===i.contextName)return k.parentNode.removeChild(k),!0})}function e(a){var k=m(j.paths,a);if(k&&H(k)&&1<k.length)return k.shift(),i.require.undef(a),i.makeRequire(null,{skipMap:!0})([a]),!0}function n(a){var k,c=a?a.indexOf("!"):-1;-1<c&&(k=a.substring(0,c),a=a.substring(c+1,a.length));return[k,a]}function p(a,
k,b,f){var l,d,e=null,g=k?k.name:null,j=a,p=!0,h="";a||(p=!1,a="_@r"+(K+=1));a=n(a);e=a[0];a=a[1];e&&(e=c(e,g,f),d=m(r,e));a&&(e?h=d&&d.normalize?d.normalize(a,function(a){return c(a,g,f)}):-1===a.indexOf("!")?c(a,g,f):a:(h=c(a,g,f),a=n(h),e=a[0],h=a[1],b=!0,l=i.nameToUrl(h)));b=e&&!d&&!b?"_unnormalized"+(O+=1):"";return{prefix:e,name:h,parentMap:k,unnormalized:!!b,url:l,originalName:j,isDefine:p,id:(e?e+"!"+h:h)+b}}function s(a){var k=a.id,b=m(h,k);b||(b=h[k]=new i.Module(a));return b}function q(a,
k,b){var f=a.id,c=m(h,f);if(t(r,f)&&(!c||c.defineEmitComplete))"defined"===k&&b(r[f]);else if(c=s(a),c.error&&"error"===k)b(c.error);else c.on(k,b)}function w(a,b){var c=a.requireModules,f=!1;if(b)b(a);else if(v(c,function(b){if(b=m(h,b))b.error=a,b.events.error&&(f=!0,b.emit("error",a))}),!f)g.onError(a)}function x(){R.length&&(ha.apply(A,[A.length,0].concat(R)),R=[])}function y(a){delete h[a];delete V[a]}function F(a,b,c){var f=a.map.id;a.error?a.emit("error",a.error):(b[f]=!0,v(a.depMaps,function(f,
d){var e=f.id,g=m(h,e);g&&(!a.depMatched[d]&&!c[e])&&(m(b,e)?(a.defineDep(d,r[e]),a.check()):F(g,b,c))}),c[f]=!0)}function D(){var a,b,c=(a=1E3*j.waitSeconds)&&i.startTime+a<(new Date).getTime(),f=[],l=[],g=!1,h=!0;if(!W){W=!0;B(V,function(a){var i=a.map,j=i.id;if(a.enabled&&(i.isDefine||l.push(a),!a.error))if(!a.inited&&c)e(j)?g=b=!0:(f.push(j),d(j));else if(!a.inited&&(a.fetched&&i.isDefine)&&(g=!0,!i.prefix))return h=!1});if(c&&f.length)return a=C("timeout","Load timeout for modules: "+f,null,
f),a.contextName=i.contextName,w(a);h&&v(l,function(a){F(a,{},{})});if((!c||b)&&g)if((z||ea)&&!X)X=setTimeout(function(){X=0;D()},50);W=!1}}function E(a){t(r,a[0])||s(p(a[0],null,!0)).init(a[1],a[2])}function I(a){var a=a.currentTarget||a.srcElement,b=i.onScriptLoad;a.detachEvent&&!Y?a.detachEvent("onreadystatechange",b):a.removeEventListener("load",b,!1);b=i.onScriptError;(!a.detachEvent||Y)&&a.removeEventListener("error",b,!1);return{node:a,id:a&&a.getAttribute("data-requiremodule")}}function J(){var a;
for(x();A.length;){a=A.shift();if(null===a[0])return w(C("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));E(a)}}var W,Z,i,L,X,j={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},h={},V={},$={},A=[],r={},S={},aa={},K=1,O=1;L={require:function(a){return a.require?a.require:a.require=i.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?r[a.map.id]=a.exports:a.exports=r[a.map.id]={}},module:function(a){return a.module?
a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return m(j.config,a.map.id)||{}},exports:a.exports||(a.exports={})}}};Z=function(a){this.events=m($,a.id)||{};this.map=a;this.shim=m(j.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};Z.prototype={init:function(a,b,c,f){f=f||{};if(!this.inited){this.factory=b;if(c)this.on("error",c);else this.events.error&&(c=u(this,function(a){this.emit("error",a)}));this.depMaps=a&&a.slice(0);this.errback=
c;this.inited=!0;this.ignore=f.ignore;f.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0;i.startTime=(new Date).getTime();var a=this.map;if(this.shim)i.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],u(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?this.callPlugin():this.load()}},load:function(){var a=
this.map.url;S[a]||(S[a]=!0,i.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var f=this.exports,l=this.factory;if(this.inited)if(this.error)this.emit("error",this.error);else{if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(G(l)){if(this.events.error&&this.map.isDefine||g.onError!==ca)try{f=i.execCb(c,l,b,f)}catch(d){a=d}else f=i.execCb(c,l,b,f);this.map.isDefine&&void 0===f&&((b=this.module)?f=b.exports:this.usingExports&&
(f=this.exports));if(a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",w(this.error=a)}else f=l;this.exports=f;if(this.map.isDefine&&!this.ignore&&(r[c]=f,g.onResourceLoad))g.onResourceLoad(i,this.map,this.depMaps);y(c);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a=
this.map,b=a.id,d=p(a.prefix);this.depMaps.push(d);q(d,"defined",u(this,function(f){var l,d;d=m(aa,this.map.id);var e=this.map.name,P=this.map.parentMap?this.map.parentMap.name:null,n=i.makeRequire(a.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){if(f.normalize&&(e=f.normalize(e,function(a){return c(a,P,!0)})||""),f=p(a.prefix+"!"+e,this.map.parentMap),q(f,"defined",u(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),d=m(h,f.id)){this.depMaps.push(f);
if(this.events.error)d.on("error",u(this,function(a){this.emit("error",a)}));d.enable()}}else d?(this.map.url=i.nameToUrl(d),this.load()):(l=u(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),l.error=u(this,function(a){this.inited=!0;this.error=a;a.requireModules=[b];B(h,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&y(a.map.id)});w(a)}),l.fromText=u(this,function(f,c){var d=a.name,e=p(d),P=M;c&&(f=c);P&&(M=!1);s(e);t(j.config,b)&&(j.config[d]=j.config[b]);try{g.exec(f)}catch(h){return w(C("fromtexteval",
"fromText eval for "+b+" failed: "+h,h,[b]))}P&&(M=!0);this.depMaps.push(e);i.completeLoad(d);n([d],l)}),f.load(a.name,n,l,j))}));i.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){V[this.map.id]=this;this.enabling=this.enabled=!0;v(this.depMaps,u(this,function(a,b){var c,f;if("string"===typeof a){a=p(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=m(L,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;q(a,"defined",u(this,function(a){this.defineDep(b,
a);this.check()}));this.errback&&q(a,"error",u(this,this.errback))}c=a.id;f=h[c];!t(L,c)&&(f&&!f.enabled)&&i.enable(a,this)}));B(this.pluginMaps,u(this,function(a){var b=m(h,a.id);b&&!b.enabled&&i.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]);c.push(b)},emit:function(a,b){v(this.events[a],function(a){a(b)});"error"===a&&delete this.events[a]}};i={config:j,contextName:b,registry:h,defined:r,urlFetched:S,defQueue:A,Module:Z,makeModuleMap:p,
nextTick:g.nextTick,onError:w,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=j.shim,c={paths:!0,bundles:!0,config:!0,map:!0};B(a,function(a,b){c[b]?(j[b]||(j[b]={}),U(j[b],a,!0,!0)):j[b]=a});a.bundles&&B(a.bundles,function(a,b){v(a,function(a){a!==b&&(aa[a]=b)})});a.shim&&(B(a.shim,function(a,c){H(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=i.makeShimExports(a);b[c]=a}),j.shim=b);a.packages&&v(a.packages,function(a){var b,
a="string"===typeof a?{name:a}:a;b=a.name;a.location&&(j.paths[b]=a.location);j.pkgs[b]=a.name+"/"+(a.main||"main").replace(ia,"").replace(Q,"")});B(h,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=p(b))});if(a.deps||a.callback)i.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;a.init&&(b=a.init.apply(ba,arguments));return b||a.exports&&da(a.exports)}},makeRequire:function(a,e){function j(c,d,m){var n,q;e.enableBuildCallback&&(d&&G(d))&&(d.__requireJsBuild=
!0);if("string"===typeof c){if(G(d))return w(C("requireargs","Invalid require call"),m);if(a&&t(L,c))return L[c](h[a.id]);if(g.get)return g.get(i,c,a,j);n=p(c,a,!1,!0);n=n.id;return!t(r,n)?w(C("notloaded",'Module name "'+n+'" has not been loaded yet for context: '+b+(a?"":". Use require([])"))):r[n]}J();i.nextTick(function(){J();q=s(p(null,a));q.skipMap=e.skipMap;q.init(c,d,m,{enabled:!0});D()});return j}e=e||{};U(j,{isBrowser:z,toUrl:function(b){var d,e=b.lastIndexOf("."),k=b.split("/")[0];if(-1!==
e&&(!("."===k||".."===k)||1<e))d=b.substring(e,b.length),b=b.substring(0,e);return i.nameToUrl(c(b,a&&a.id,!0),d,!0)},defined:function(b){return t(r,p(b,a,!1,!0).id)},specified:function(b){b=p(b,a,!1,!0).id;return t(r,b)||t(h,b)}});a||(j.undef=function(b){x();var c=p(b,a,!0),e=m(h,b);d(b);delete r[b];delete S[c.url];delete $[b];T(A,function(a,c){a[0]===b&&A.splice(c,1)});e&&(e.events.defined&&($[b]=e.events),y(b))});return j},enable:function(a){m(h,a.id)&&s(a).enable()},completeLoad:function(a){var b,
c,d=m(j.shim,a)||{},g=d.exports;for(x();A.length;){c=A.shift();if(null===c[0]){c[0]=a;if(b)break;b=!0}else c[0]===a&&(b=!0);E(c)}c=m(h,a);if(!b&&!t(r,a)&&c&&!c.inited){if(j.enforceDefine&&(!g||!da(g)))return e(a)?void 0:w(C("nodefine","No define call for "+a,null,[a]));E([a,d.deps||[],d.exportsFn])}D()},nameToUrl:function(a,b,c){var d,e,h;(d=m(j.pkgs,a))&&(a=d);if(d=m(aa,a))return i.nameToUrl(d,b,c);if(g.jsExtRegExp.test(a))d=a+(b||"");else{d=j.paths;a=a.split("/");for(e=a.length;0<e;e-=1)if(h=a.slice(0,
e).join("/"),h=m(d,h)){H(h)&&(h=h[0]);a.splice(0,e,h);break}d=a.join("/");d+=b||(/^data\:|\?/.test(d)||c?"":".js");d=("/"===d.charAt(0)||d.match(/^[\w\+\.\-]+:/)?"":j.baseUrl)+d}return j.urlArgs?d+((-1===d.indexOf("?")?"?":"&")+j.urlArgs):d},load:function(a,b){g.load(i,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===a.type||ja.test((a.currentTarget||a.srcElement).readyState))N=null,a=I(a),i.completeLoad(a.id)},onScriptError:function(a){var b=I(a);if(!e(b.id))return w(C("scripterror",
"Script error for: "+b.id,a,[b.id]))}};i.require=i.makeRequire();return i}var g,x,y,D,I,E,N,J,s,O,ka=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,la=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,Q=/\.js$/,ia=/^\.\//;x=Object.prototype;var K=x.toString,fa=x.hasOwnProperty,ha=Array.prototype.splice,z=!!("undefined"!==typeof window&&"undefined"!==typeof navigator&&window.document),ea=!z&&"undefined"!==typeof importScripts,ja=z&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,
Y="undefined"!==typeof opera&&"[object Opera]"===opera.toString(),F={},q={},R=[],M=!1;if("undefined"===typeof define){if("undefined"!==typeof requirejs){if(G(requirejs))return;q=requirejs;requirejs=void 0}"undefined"!==typeof require&&!G(require)&&(q=require,require=void 0);g=requirejs=function(b,c,d,e){var n,p="_";!H(b)&&"string"!==typeof b&&(n=b,H(c)?(b=c,c=d,d=e):b=[]);n&&n.context&&(p=n.context);(e=m(F,p))||(e=F[p]=g.s.newContext(p));n&&e.configure(n);return e.require(b,c,d)};g.config=function(b){return g(b)};
g.nextTick="undefined"!==typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=g);g.version="2.1.14";g.jsExtRegExp=/^\/|:|\?|\.js$/;g.isBrowser=z;x=g.s={contexts:F,newContext:ga};g({});v(["toUrl","undef","defined","specified"],function(b){g[b]=function(){var c=F._;return c.require[b].apply(c,arguments)}});if(z&&(y=x.head=document.getElementsByTagName("head")[0],D=document.getElementsByTagName("base")[0]))y=x.head=D.parentNode;g.onError=ca;g.createNode=function(b){var c=
b.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");c.type=b.scriptType||"text/javascript";c.charset="utf-8";c.async=!0;return c};g.load=function(b,c,d){var e=b&&b.config||{};if(z)return e=g.createNode(e,c,d),e.setAttribute("data-requirecontext",b.contextName),e.setAttribute("data-requiremodule",c),e.attachEvent&&!(e.attachEvent.toString&&0>e.attachEvent.toString().indexOf("[native code"))&&!Y?(M=!0,e.attachEvent("onreadystatechange",b.onScriptLoad)):
(e.addEventListener("load",b.onScriptLoad,!1),e.addEventListener("error",b.onScriptError,!1)),e.src=d,J=e,D?y.insertBefore(e,D):y.appendChild(e),J=null,e;if(ea)try{importScripts(d),b.completeLoad(c)}catch(m){b.onError(C("importscripts","importScripts failed for "+c+" at "+d,m,[c]))}};z&&!q.skipDataMain&&T(document.getElementsByTagName("script"),function(b){y||(y=b.parentNode);if(I=b.getAttribute("data-main"))return s=I,q.baseUrl||(E=s.split("/"),s=E.pop(),O=E.length?E.join("/")+"/":"./",q.baseUrl=
O),s=s.replace(Q,""),g.jsExtRegExp.test(s)&&(s=I),q.deps=q.deps?q.deps.concat(s):[s],!0});define=function(b,c,d){var e,g;"string"!==typeof b&&(d=c,c=b,b=null);H(c)||(d=c,c=null);!c&&G(d)&&(c=[],d.length&&(d.toString().replace(ka,"").replace(la,function(b,d){c.push(d)}),c=(1===d.length?["require"]:["require","exports","module"]).concat(c)));if(M){if(!(e=J))N&&"interactive"===N.readyState||T(document.getElementsByTagName("script"),function(b){if("interactive"===b.readyState)return N=b}),e=N;e&&(b||
(b=e.getAttribute("data-requiremodule")),g=F[e.getAttribute("data-requirecontext")])}(g?g.defQueue:R).push([b,c,d])};define.amd={jQuery:!0};g.exec=function(b){return eval(b)};g(q)}})(this);
\ No newline at end of file
/*!
* Lunr languages, `Danish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function() {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.da = function() {
this.pipeline.reset();
this.pipeline.add(
lunr.da.trimmer,
lunr.da.stopWordFilter,
lunr.da.stemmer
);
};
/* lunr trimmer function */
lunr.da.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A";
lunr.da.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.da.wordCharacters);
lunr.Pipeline.registerFunction(lunr.da.trimmer, 'trimmer-da');
/* lunr stemmer function */
lunr.da.stemmer = (function() {
/* create the wrapped stemmer object */
var Among = lunr.stemmerSupport.Among,
SnowballProgram = lunr.stemmerSupport.SnowballProgram,
st = new function DanishStemmer() {
var a_0 = [new Among("hed", -1, 1), new Among("ethed", 0, 1),
new Among("ered", -1, 1), new Among("e", -1, 1),
new Among("erede", 3, 1), new Among("ende", 3, 1),
new Among("erende", 5, 1), new Among("ene", 3, 1),
new Among("erne", 3, 1), new Among("ere", 3, 1),
new Among("en", -1, 1), new Among("heden", 10, 1),
new Among("eren", 10, 1), new Among("er", -1, 1),
new Among("heder", 13, 1), new Among("erer", 13, 1),
new Among("s", -1, 2), new Among("heds", 16, 1),
new Among("es", 16, 1), new Among("endes", 18, 1),
new Among("erendes", 19, 1), new Among("enes", 18, 1),
new Among("ernes", 18, 1), new Among("eres", 18, 1),
new Among("ens", 16, 1), new Among("hedens", 24, 1),
new Among("erens", 24, 1), new Among("ers", 16, 1),
new Among("ets", 16, 1), new Among("erets", 28, 1),
new Among("et", -1, 1), new Among("eret", 30, 1)
],
a_1 = [
new Among("gd", -1, -1), new Among("dt", -1, -1),
new Among("gt", -1, -1), new Among("kt", -1, -1)
],
a_2 = [
new Among("ig", -1, 1), new Among("lig", 0, 1),
new Among("elig", 1, 1), new Among("els", -1, 1),
new Among("l\u00F8st", -1, 2)
],
g_v = [17, 65, 16, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128
],
g_s_ending = [239, 254, 42, 3,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16
],
I_x, I_p1, S_ch, sbp = new SnowballProgram();
this.setCurrent = function(word) {
sbp.setCurrent(word);
};
this.getCurrent = function() {
return sbp.getCurrent();
};
function r_mark_regions() {
var v_1, c = sbp.cursor + 3;
I_p1 = sbp.limit;
if (0 <= c && c <= sbp.limit) {
I_x = c;
while (true) {
v_1 = sbp.cursor;
if (sbp.in_grouping(g_v, 97, 248)) {
sbp.cursor = v_1;
break;
}
sbp.cursor = v_1;
if (v_1 >= sbp.limit)
return;
sbp.cursor++;
}
while (!sbp.out_grouping(g_v, 97, 248)) {
if (sbp.cursor >= sbp.limit)
return;
sbp.cursor++;
}
I_p1 = sbp.cursor;
if (I_p1 < I_x)
I_p1 = I_x;
}
}
function r_main_suffix() {
var among_var, v_1;
if (sbp.cursor >= I_p1) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_p1;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_0, 32);
sbp.limit_backward = v_1;
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_del();
break;
case 2:
if (sbp.in_grouping_b(g_s_ending, 97, 229))
sbp.slice_del();
break;
}
}
}
}
function r_consonant_pair() {
var v_1 = sbp.limit - sbp.cursor,
v_2;
if (sbp.cursor >= I_p1) {
v_2 = sbp.limit_backward;
sbp.limit_backward = I_p1;
sbp.ket = sbp.cursor;
if (sbp.find_among_b(a_1, 4)) {
sbp.bra = sbp.cursor;
sbp.limit_backward = v_2;
sbp.cursor = sbp.limit - v_1;
if (sbp.cursor > sbp.limit_backward) {
sbp.cursor--;
sbp.bra = sbp.cursor;
sbp.slice_del();
}
} else
sbp.limit_backward = v_2;
}
}
function r_other_suffix() {
var among_var, v_1 = sbp.limit - sbp.cursor,
v_2, v_3;
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, "st")) {
sbp.bra = sbp.cursor;
if (sbp.eq_s_b(2, "ig"))
sbp.slice_del();
}
sbp.cursor = sbp.limit - v_1;
if (sbp.cursor >= I_p1) {
v_2 = sbp.limit_backward;
sbp.limit_backward = I_p1;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_2, 5);
sbp.limit_backward = v_2;
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_del();
v_3 = sbp.limit - sbp.cursor;
r_consonant_pair();
sbp.cursor = sbp.limit - v_3;
break;
case 2:
sbp.slice_from("l\u00F8s");
break;
}
}
}
}
function r_undouble() {
var v_1;
if (sbp.cursor >= I_p1) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_p1;
sbp.ket = sbp.cursor;
if (sbp.out_grouping_b(g_v, 97, 248)) {
sbp.bra = sbp.cursor;
S_ch = sbp.slice_to(S_ch);
sbp.limit_backward = v_1;
if (sbp.eq_v_b(S_ch))
sbp.slice_del();
} else
sbp.limit_backward = v_1;
}
}
this.stem = function() {
var v_1 = sbp.cursor;
r_mark_regions();
sbp.limit_backward = v_1;
sbp.cursor = sbp.limit;
r_main_suffix();
sbp.cursor = sbp.limit;
r_consonant_pair();
sbp.cursor = sbp.limit;
r_other_suffix();
sbp.cursor = sbp.limit;
r_undouble();
return true;
}
};
/* and return a function that stems a word for the current locale */
return function(word) {
st.setCurrent(word);
st.stem();
return st.getCurrent();
}
})();
lunr.Pipeline.registerFunction(lunr.da.stemmer, 'stemmer-da');
/* stop word filter function */
lunr.da.stopWordFilter = function(token) {
if (lunr.da.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.da.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.da.stopWordFilter.stopWords.length = 95;
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
lunr.da.stopWordFilter.stopWords.elements = ' ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været'.split(' ');
lunr.Pipeline.registerFunction(lunr.da.stopWordFilter, 'stopWordFilter-da');
};
}))
\ No newline at end of file
/*!
* Lunr languages, `German` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function() {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.de = function() {
this.pipeline.reset();
this.pipeline.add(
lunr.de.trimmer,
lunr.de.stopWordFilter,
lunr.de.stemmer
);
};
/* lunr trimmer function */
lunr.de.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A";
lunr.de.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.de.wordCharacters);
lunr.Pipeline.registerFunction(lunr.de.trimmer, 'trimmer-de');
/* lunr stemmer function */
lunr.de.stemmer = (function() {
/* create the wrapped stemmer object */
var Among = lunr.stemmerSupport.Among,
SnowballProgram = lunr.stemmerSupport.SnowballProgram,
st = new function GermanStemmer() {
var a_0 = [new Among("", -1, 6), new Among("U", 0, 2),
new Among("Y", 0, 1), new Among("\u00E4", 0, 3),
new Among("\u00F6", 0, 4), new Among("\u00FC", 0, 5)
],
a_1 = [
new Among("e", -1, 2), new Among("em", -1, 1),
new Among("en", -1, 2), new Among("ern", -1, 1),
new Among("er", -1, 1), new Among("s", -1, 3),
new Among("es", 5, 2)
],
a_2 = [new Among("en", -1, 1),
new Among("er", -1, 1), new Among("st", -1, 2),
new Among("est", 2, 1)
],
a_3 = [new Among("ig", -1, 1),
new Among("lich", -1, 1)
],
a_4 = [new Among("end", -1, 1),
new Among("ig", -1, 2), new Among("ung", -1, 1),
new Among("lich", -1, 3), new Among("isch", -1, 2),
new Among("ik", -1, 2), new Among("heit", -1, 3),
new Among("keit", -1, 4)
],
g_v = [17, 65, 16, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 8, 0, 32, 8
],
g_s_ending = [117, 30, 5],
g_st_ending = [
117, 30, 4
],
I_x, I_p2, I_p1, sbp = new SnowballProgram();
this.setCurrent = function(word) {
sbp.setCurrent(word);
};
this.getCurrent = function() {
return sbp.getCurrent();
};
function habr1(c1, c2, v_1) {
if (sbp.eq_s(1, c1)) {
sbp.ket = sbp.cursor;
if (sbp.in_grouping(g_v, 97, 252)) {
sbp.slice_from(c2);
sbp.cursor = v_1;
return true;
}
}
return false;
}
function r_prelude() {
var v_1 = sbp.cursor,
v_2, v_3, v_4, v_5;
while (true) {
v_2 = sbp.cursor;
sbp.bra = v_2;
if (sbp.eq_s(1, "\u00DF")) {
sbp.ket = sbp.cursor;
sbp.slice_from("ss");
} else {
if (v_2 >= sbp.limit)
break;
sbp.cursor = v_2 + 1;
}
}
sbp.cursor = v_1;
while (true) {
v_3 = sbp.cursor;
while (true) {
v_4 = sbp.cursor;
if (sbp.in_grouping(g_v, 97, 252)) {
v_5 = sbp.cursor;
sbp.bra = v_5;
if (habr1("u", "U", v_4))
break;
sbp.cursor = v_5;
if (habr1("y", "Y", v_4))
break;
}
if (v_4 >= sbp.limit) {
sbp.cursor = v_3;
return;
}
sbp.cursor = v_4 + 1;
}
}
}
function habr2() {
while (!sbp.in_grouping(g_v, 97, 252)) {
if (sbp.cursor >= sbp.limit)
return true;
sbp.cursor++;
}
while (!sbp.out_grouping(g_v, 97, 252)) {
if (sbp.cursor >= sbp.limit)
return true;
sbp.cursor++;
}
return false;
}
function r_mark_regions() {
I_p1 = sbp.limit;
I_p2 = I_p1;
var c = sbp.cursor + 3;
if (0 <= c && c <= sbp.limit) {
I_x = c;
if (!habr2()) {
I_p1 = sbp.cursor;
if (I_p1 < I_x)
I_p1 = I_x;
if (!habr2())
I_p2 = sbp.cursor;
}
}
}
function r_postlude() {
var among_var, v_1;
while (true) {
v_1 = sbp.cursor;
sbp.bra = v_1;
among_var = sbp.find_among(a_0, 6);
if (!among_var)
return;
sbp.ket = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_from("y");
break;
case 2:
case 5:
sbp.slice_from("u");
break;
case 3:
sbp.slice_from("a");
break;
case 4:
sbp.slice_from("o");
break;
case 6:
if (sbp.cursor >= sbp.limit)
return;
sbp.cursor++;
break;
}
}
}
function r_R1() {
return I_p1 <= sbp.cursor;
}
function r_R2() {
return I_p2 <= sbp.cursor;
}
function r_standard_suffix() {
var among_var, v_1 = sbp.limit - sbp.cursor,
v_2, v_3, v_4;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_1, 7);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R1()) {
switch (among_var) {
case 1:
sbp.slice_del();
break;
case 2:
sbp.slice_del();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(1, "s")) {
sbp.bra = sbp.cursor;
if (sbp.eq_s_b(3, "nis"))
sbp.slice_del();
}
break;
case 3:
if (sbp.in_grouping_b(g_s_ending, 98, 116))
sbp.slice_del();
break;
}
}
}
sbp.cursor = sbp.limit - v_1;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_2, 4);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R1()) {
switch (among_var) {
case 1:
sbp.slice_del();
break;
case 2:
if (sbp.in_grouping_b(g_st_ending, 98, 116)) {
var c = sbp.cursor - 3;
if (sbp.limit_backward <= c && c <= sbp.limit) {
sbp.cursor = c;
sbp.slice_del();
}
}
break;
}
}
}
sbp.cursor = sbp.limit - v_1;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_4, 8);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R2()) {
switch (among_var) {
case 1:
sbp.slice_del();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, "ig")) {
sbp.bra = sbp.cursor;
v_2 = sbp.limit - sbp.cursor;
if (!sbp.eq_s_b(1, "e")) {
sbp.cursor = sbp.limit - v_2;
if (r_R2())
sbp.slice_del();
}
}
break;
case 2:
v_3 = sbp.limit - sbp.cursor;
if (!sbp.eq_s_b(1, "e")) {
sbp.cursor = sbp.limit - v_3;
sbp.slice_del();
}
break;
case 3:
sbp.slice_del();
sbp.ket = sbp.cursor;
v_4 = sbp.limit - sbp.cursor;
if (!sbp.eq_s_b(2, "er")) {
sbp.cursor = sbp.limit - v_4;
if (!sbp.eq_s_b(2, "en"))
break;
}
sbp.bra = sbp.cursor;
if (r_R1())
sbp.slice_del();
break;
case 4:
sbp.slice_del();
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_3, 2);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R2() && among_var == 1)
sbp.slice_del();
}
break;
}
}
}
}
this.stem = function() {
var v_1 = sbp.cursor;
r_prelude();
sbp.cursor = v_1;
r_mark_regions();
sbp.limit_backward = v_1;
sbp.cursor = sbp.limit;
r_standard_suffix();
sbp.cursor = sbp.limit_backward;
r_postlude();
return true;
}
};
/* and return a function that stems a word for the current locale */
return function(word) {
st.setCurrent(word);
st.stem();
return st.getCurrent();
}
})();
lunr.Pipeline.registerFunction(lunr.de.stemmer, 'stemmer-de');
/* stop word filter function */
lunr.de.stopWordFilter = function(token) {
if (lunr.de.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.de.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.de.stopWordFilter.stopWords.length = 232;
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
lunr.de.stopWordFilter.stopWords.elements = ' aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über'.split(' ');
lunr.Pipeline.registerFunction(lunr.de.stopWordFilter, 'stopWordFilter-de');
};
}))
\ No newline at end of file
/*!
* Lunr languages, `Dutch` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function() {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.du = function() {
this.pipeline.reset();
this.pipeline.add(
lunr.du.trimmer,
lunr.du.stopWordFilter,
lunr.du.stemmer
);
};
/* lunr trimmer function */
lunr.du.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A";
lunr.du.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.du.wordCharacters);
lunr.Pipeline.registerFunction(lunr.du.trimmer, 'trimmer-du');
/* lunr stemmer function */
lunr.du.stemmer = (function() {
/* create the wrapped stemmer object */
var Among = lunr.stemmerSupport.Among,
SnowballProgram = lunr.stemmerSupport.SnowballProgram,
st = new function DutchStemmer() {
var a_0 = [new Among("", -1, 6), new Among("\u00E1", 0, 1),
new Among("\u00E4", 0, 1), new Among("\u00E9", 0, 2),
new Among("\u00EB", 0, 2), new Among("\u00ED", 0, 3),
new Among("\u00EF", 0, 3), new Among("\u00F3", 0, 4),
new Among("\u00F6", 0, 4), new Among("\u00FA", 0, 5),
new Among("\u00FC", 0, 5)
],
a_1 = [new Among("", -1, 3),
new Among("I", 0, 2), new Among("Y", 0, 1)
],
a_2 = [
new Among("dd", -1, -1), new Among("kk", -1, -1),
new Among("tt", -1, -1)
],
a_3 = [new Among("ene", -1, 2),
new Among("se", -1, 3), new Among("en", -1, 2),
new Among("heden", 2, 1), new Among("s", -1, 3)
],
a_4 = [
new Among("end", -1, 1), new Among("ig", -1, 2),
new Among("ing", -1, 1), new Among("lijk", -1, 3),
new Among("baar", -1, 4), new Among("bar", -1, 5)
],
a_5 = [
new Among("aa", -1, -1), new Among("ee", -1, -1),
new Among("oo", -1, -1), new Among("uu", -1, -1)
],
g_v = [17, 65,
16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128
],
g_v_I = [1, 0, 0,
17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128
],
g_v_j = [
17, 67, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128
],
I_p2, I_p1, B_e_found, sbp = new SnowballProgram();
this.setCurrent = function(word) {
sbp.setCurrent(word);
};
this.getCurrent = function() {
return sbp.getCurrent();
};
function r_prelude() {
var among_var, v_1 = sbp.cursor,
v_2, v_3;
while (true) {
sbp.bra = sbp.cursor;
among_var = sbp.find_among(a_0, 11);
if (among_var) {
sbp.ket = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_from("a");
continue;
case 2:
sbp.slice_from("e");
continue;
case 3:
sbp.slice_from("i");
continue;
case 4:
sbp.slice_from("o");
continue;
case 5:
sbp.slice_from("u");
continue;
case 6:
if (sbp.cursor >= sbp.limit)
break;
sbp.cursor++;
continue;
}
}
break;
}
sbp.cursor = v_1;
sbp.bra = v_1;
if (sbp.eq_s(1, "y")) {
sbp.ket = sbp.cursor;
sbp.slice_from("Y");
} else
sbp.cursor = v_1;
while (true) {
v_2 = sbp.cursor;
if (sbp.in_grouping(g_v, 97, 232)) {
v_3 = sbp.cursor;
sbp.bra = v_3;
if (sbp.eq_s(1, "i")) {
sbp.ket = sbp.cursor;
if (sbp.in_grouping(g_v, 97, 232)) {
sbp.slice_from("I");
sbp.cursor = v_2;
}
} else {
sbp.cursor = v_3;
if (sbp.eq_s(1, "y")) {
sbp.ket = sbp.cursor;
sbp.slice_from("Y");
sbp.cursor = v_2;
} else if (habr1(v_2))
break;
}
} else if (habr1(v_2))
break;
}
}
function habr1(v_1) {
sbp.cursor = v_1;
if (v_1 >= sbp.limit)
return true;
sbp.cursor++;
return false;
}
function r_mark_regions() {
I_p1 = sbp.limit;
I_p2 = I_p1;
if (!habr2()) {
I_p1 = sbp.cursor;
if (I_p1 < 3)
I_p1 = 3;
if (!habr2())
I_p2 = sbp.cursor;
}
}
function habr2() {
while (!sbp.in_grouping(g_v, 97, 232)) {
if (sbp.cursor >= sbp.limit)
return true;
sbp.cursor++;
}
while (!sbp.out_grouping(g_v, 97, 232)) {
if (sbp.cursor >= sbp.limit)
return true;
sbp.cursor++;
}
return false;
}
function r_postlude() {
var among_var;
while (true) {
sbp.bra = sbp.cursor;
among_var = sbp.find_among(a_1, 3);
if (among_var) {
sbp.ket = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_from("y");
break;
case 2:
sbp.slice_from("i");
break;
case 3:
if (sbp.cursor >= sbp.limit)
return;
sbp.cursor++;
break;
}
}
}
}
function r_R1() {
return I_p1 <= sbp.cursor;
}
function r_R2() {
return I_p2 <= sbp.cursor;
}
function r_undouble() {
var v_1 = sbp.limit - sbp.cursor;
if (sbp.find_among_b(a_2, 3)) {
sbp.cursor = sbp.limit - v_1;
sbp.ket = sbp.cursor;
if (sbp.cursor > sbp.limit_backward) {
sbp.cursor--;
sbp.bra = sbp.cursor;
sbp.slice_del();
}
}
}
function r_e_ending() {
var v_1;
B_e_found = false;
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(1, "e")) {
sbp.bra = sbp.cursor;
if (r_R1()) {
v_1 = sbp.limit - sbp.cursor;
if (sbp.out_grouping_b(g_v, 97, 232)) {
sbp.cursor = sbp.limit - v_1;
sbp.slice_del();
B_e_found = true;
r_undouble();
}
}
}
}
function r_en_ending() {
var v_1;
if (r_R1()) {
v_1 = sbp.limit - sbp.cursor;
if (sbp.out_grouping_b(g_v, 97, 232)) {
sbp.cursor = sbp.limit - v_1;
if (!sbp.eq_s_b(3, "gem")) {
sbp.cursor = sbp.limit - v_1;
sbp.slice_del();
r_undouble();
}
}
}
}
function r_standard_suffix() {
var among_var, v_1 = sbp.limit - sbp.cursor,
v_2, v_3, v_4, v_5, v_6;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_3, 5);
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
if (r_R1())
sbp.slice_from("heid");
break;
case 2:
r_en_ending();
break;
case 3:
if (r_R1() && sbp.out_grouping_b(g_v_j, 97, 232))
sbp.slice_del();
break;
}
}
sbp.cursor = sbp.limit - v_1;
r_e_ending();
sbp.cursor = sbp.limit - v_1;
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(4, "heid")) {
sbp.bra = sbp.cursor;
if (r_R2()) {
v_2 = sbp.limit - sbp.cursor;
if (!sbp.eq_s_b(1, "c")) {
sbp.cursor = sbp.limit - v_2;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, "en")) {
sbp.bra = sbp.cursor;
r_en_ending();
}
}
}
}
sbp.cursor = sbp.limit - v_1;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_4, 6);
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
if (r_R2()) {
sbp.slice_del();
v_3 = sbp.limit - sbp.cursor;
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, "ig")) {
sbp.bra = sbp.cursor;
if (r_R2()) {
v_4 = sbp.limit - sbp.cursor;
if (!sbp.eq_s_b(1, "e")) {
sbp.cursor = sbp.limit - v_4;
sbp.slice_del();
break;
}
}
}
sbp.cursor = sbp.limit - v_3;
r_undouble();
}
break;
case 2:
if (r_R2()) {
v_5 = sbp.limit - sbp.cursor;
if (!sbp.eq_s_b(1, "e")) {
sbp.cursor = sbp.limit - v_5;
sbp.slice_del();
}
}
break;
case 3:
if (r_R2()) {
sbp.slice_del();
r_e_ending();
}
break;
case 4:
if (r_R2())
sbp.slice_del();
break;
case 5:
if (r_R2() && B_e_found)
sbp.slice_del();
break;
}
}
sbp.cursor = sbp.limit - v_1;
if (sbp.out_grouping_b(g_v_I, 73, 232)) {
v_6 = sbp.limit - sbp.cursor;
if (sbp.find_among_b(a_5, 4) && sbp.out_grouping_b(g_v, 97, 232)) {
sbp.cursor = sbp.limit - v_6;
sbp.ket = sbp.cursor;
if (sbp.cursor > sbp.limit_backward) {
sbp.cursor--;
sbp.bra = sbp.cursor;
sbp.slice_del();
}
}
}
}
this.stem = function() {
var v_1 = sbp.cursor;
r_prelude();
sbp.cursor = v_1;
r_mark_regions();
sbp.limit_backward = v_1;
sbp.cursor = sbp.limit;
r_standard_suffix();
sbp.cursor = sbp.limit_backward;
r_postlude();
return true;
}
};
/* and return a function that stems a word for the current locale */
return function(word) {
st.setCurrent(word);
st.stem();
return st.getCurrent();
}
})();
lunr.Pipeline.registerFunction(lunr.du.stemmer, 'stemmer-du');
/* stop word filter function */
lunr.du.stopWordFilter = function(token) {
if (lunr.du.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.du.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.du.stopWordFilter.stopWords.length = 103;
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
lunr.du.stopWordFilter.stopWords.elements = ' aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou'.split(' ');
lunr.Pipeline.registerFunction(lunr.du.stopWordFilter, 'stopWordFilter-du');
};
}))
\ No newline at end of file
/*!
* Lunr languages, `Spanish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function() {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.es = function() {
this.pipeline.reset();
this.pipeline.add(
lunr.es.trimmer,
lunr.es.stopWordFilter,
lunr.es.stemmer
);
};
/* lunr trimmer function */
lunr.es.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A";
lunr.es.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.es.wordCharacters);
lunr.Pipeline.registerFunction(lunr.es.trimmer, 'trimmer-es');
/* lunr stemmer function */
lunr.es.stemmer = (function() {
/* create the wrapped stemmer object */
var Among = lunr.stemmerSupport.Among,
SnowballProgram = lunr.stemmerSupport.SnowballProgram,
st = new function SpanishStemmer() {
var a_0 = [new Among("", -1, 6), new Among("\u00E1", 0, 1),
new Among("\u00E9", 0, 2), new Among("\u00ED", 0, 3),
new Among("\u00F3", 0, 4), new Among("\u00FA", 0, 5)
],
a_1 = [
new Among("la", -1, -1), new Among("sela", 0, -1),
new Among("le", -1, -1), new Among("me", -1, -1),
new Among("se", -1, -1), new Among("lo", -1, -1),
new Among("selo", 5, -1), new Among("las", -1, -1),
new Among("selas", 7, -1), new Among("les", -1, -1),
new Among("los", -1, -1), new Among("selos", 10, -1),
new Among("nos", -1, -1)
],
a_2 = [new Among("ando", -1, 6),
new Among("iendo", -1, 6), new Among("yendo", -1, 7),
new Among("\u00E1ndo", -1, 2), new Among("i\u00E9ndo", -1, 1),
new Among("ar", -1, 6), new Among("er", -1, 6),
new Among("ir", -1, 6), new Among("\u00E1r", -1, 3),
new Among("\u00E9r", -1, 4), new Among("\u00EDr", -1, 5)
],
a_3 = [
new Among("ic", -1, -1), new Among("ad", -1, -1),
new Among("os", -1, -1), new Among("iv", -1, 1)
],
a_4 = [
new Among("able", -1, 1), new Among("ible", -1, 1),
new Among("ante", -1, 1)
],
a_5 = [new Among("ic", -1, 1),
new Among("abil", -1, 1), new Among("iv", -1, 1)
],
a_6 = [
new Among("ica", -1, 1), new Among("ancia", -1, 2),
new Among("encia", -1, 5), new Among("adora", -1, 2),
new Among("osa", -1, 1), new Among("ista", -1, 1),
new Among("iva", -1, 9), new Among("anza", -1, 1),
new Among("log\u00EDa", -1, 3), new Among("idad", -1, 8),
new Among("able", -1, 1), new Among("ible", -1, 1),
new Among("ante", -1, 2), new Among("mente", -1, 7),
new Among("amente", 13, 6), new Among("aci\u00F3n", -1, 2),
new Among("uci\u00F3n", -1, 4), new Among("ico", -1, 1),
new Among("ismo", -1, 1), new Among("oso", -1, 1),
new Among("amiento", -1, 1), new Among("imiento", -1, 1),
new Among("ivo", -1, 9), new Among("ador", -1, 2),
new Among("icas", -1, 1), new Among("ancias", -1, 2),
new Among("encias", -1, 5), new Among("adoras", -1, 2),
new Among("osas", -1, 1), new Among("istas", -1, 1),
new Among("ivas", -1, 9), new Among("anzas", -1, 1),
new Among("log\u00EDas", -1, 3), new Among("idades", -1, 8),
new Among("ables", -1, 1), new Among("ibles", -1, 1),
new Among("aciones", -1, 2), new Among("uciones", -1, 4),
new Among("adores", -1, 2), new Among("antes", -1, 2),
new Among("icos", -1, 1), new Among("ismos", -1, 1),
new Among("osos", -1, 1), new Among("amientos", -1, 1),
new Among("imientos", -1, 1), new Among("ivos", -1, 9)
],
a_7 = [
new Among("ya", -1, 1), new Among("ye", -1, 1),
new Among("yan", -1, 1), new Among("yen", -1, 1),
new Among("yeron", -1, 1), new Among("yendo", -1, 1),
new Among("yo", -1, 1), new Among("yas", -1, 1),
new Among("yes", -1, 1), new Among("yais", -1, 1),
new Among("yamos", -1, 1), new Among("y\u00F3", -1, 1)
],
a_8 = [
new Among("aba", -1, 2), new Among("ada", -1, 2),
new Among("ida", -1, 2), new Among("ara", -1, 2),
new Among("iera", -1, 2), new Among("\u00EDa", -1, 2),
new Among("ar\u00EDa", 5, 2), new Among("er\u00EDa", 5, 2),
new Among("ir\u00EDa", 5, 2), new Among("ad", -1, 2),
new Among("ed", -1, 2), new Among("id", -1, 2),
new Among("ase", -1, 2), new Among("iese", -1, 2),
new Among("aste", -1, 2), new Among("iste", -1, 2),
new Among("an", -1, 2), new Among("aban", 16, 2),
new Among("aran", 16, 2), new Among("ieran", 16, 2),
new Among("\u00EDan", 16, 2), new Among("ar\u00EDan", 20, 2),
new Among("er\u00EDan", 20, 2), new Among("ir\u00EDan", 20, 2),
new Among("en", -1, 1), new Among("asen", 24, 2),
new Among("iesen", 24, 2), new Among("aron", -1, 2),
new Among("ieron", -1, 2), new Among("ar\u00E1n", -1, 2),
new Among("er\u00E1n", -1, 2), new Among("ir\u00E1n", -1, 2),
new Among("ado", -1, 2), new Among("ido", -1, 2),
new Among("ando", -1, 2), new Among("iendo", -1, 2),
new Among("ar", -1, 2), new Among("er", -1, 2),
new Among("ir", -1, 2), new Among("as", -1, 2),
new Among("abas", 39, 2), new Among("adas", 39, 2),
new Among("idas", 39, 2), new Among("aras", 39, 2),
new Among("ieras", 39, 2), new Among("\u00EDas", 39, 2),
new Among("ar\u00EDas", 45, 2), new Among("er\u00EDas", 45, 2),
new Among("ir\u00EDas", 45, 2), new Among("es", -1, 1),
new Among("ases", 49, 2), new Among("ieses", 49, 2),
new Among("abais", -1, 2), new Among("arais", -1, 2),
new Among("ierais", -1, 2), new Among("\u00EDais", -1, 2),
new Among("ar\u00EDais", 55, 2), new Among("er\u00EDais", 55, 2),
new Among("ir\u00EDais", 55, 2), new Among("aseis", -1, 2),
new Among("ieseis", -1, 2), new Among("asteis", -1, 2),
new Among("isteis", -1, 2), new Among("\u00E1is", -1, 2),
new Among("\u00E9is", -1, 1), new Among("ar\u00E9is", 64, 2),
new Among("er\u00E9is", 64, 2), new Among("ir\u00E9is", 64, 2),
new Among("ados", -1, 2), new Among("idos", -1, 2),
new Among("amos", -1, 2), new Among("\u00E1bamos", 70, 2),
new Among("\u00E1ramos", 70, 2), new Among("i\u00E9ramos", 70, 2),
new Among("\u00EDamos", 70, 2), new Among("ar\u00EDamos", 74, 2),
new Among("er\u00EDamos", 74, 2), new Among("ir\u00EDamos", 74, 2),
new Among("emos", -1, 1), new Among("aremos", 78, 2),
new Among("eremos", 78, 2), new Among("iremos", 78, 2),
new Among("\u00E1semos", 78, 2), new Among("i\u00E9semos", 78, 2),
new Among("imos", -1, 2), new Among("ar\u00E1s", -1, 2),
new Among("er\u00E1s", -1, 2), new Among("ir\u00E1s", -1, 2),
new Among("\u00EDs", -1, 2), new Among("ar\u00E1", -1, 2),
new Among("er\u00E1", -1, 2), new Among("ir\u00E1", -1, 2),
new Among("ar\u00E9", -1, 2), new Among("er\u00E9", -1, 2),
new Among("ir\u00E9", -1, 2), new Among("i\u00F3", -1, 2)
],
a_9 = [
new Among("a", -1, 1), new Among("e", -1, 2),
new Among("o", -1, 1), new Among("os", -1, 1),
new Among("\u00E1", -1, 1), new Among("\u00E9", -1, 2),
new Among("\u00ED", -1, 1), new Among("\u00F3", -1, 1)
],
g_v = [17,
65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 4, 10
],
I_p2, I_p1, I_pV, sbp = new SnowballProgram();
this.setCurrent = function(word) {
sbp.setCurrent(word);
};
this.getCurrent = function() {
return sbp.getCurrent();
};
function habr1() {
if (sbp.out_grouping(g_v, 97, 252)) {
while (!sbp.in_grouping(g_v, 97, 252)) {
if (sbp.cursor >= sbp.limit)
return true;
sbp.cursor++;
}
return false;
}
return true;
}
function habr2() {
if (sbp.in_grouping(g_v, 97, 252)) {
var v_1 = sbp.cursor;
if (habr1()) {
sbp.cursor = v_1;
if (!sbp.in_grouping(g_v, 97, 252))
return true;
while (!sbp.out_grouping(g_v, 97, 252)) {
if (sbp.cursor >= sbp.limit)
return true;
sbp.cursor++;
}
}
return false;
}
return true;
}
function habr3() {
var v_1 = sbp.cursor,
v_2;
if (habr2()) {
sbp.cursor = v_1;
if (!sbp.out_grouping(g_v, 97, 252))
return;
v_2 = sbp.cursor;
if (habr1()) {
sbp.cursor = v_2;
if (!sbp.in_grouping(g_v, 97, 252) || sbp.cursor >= sbp.limit)
return;
sbp.cursor++;
}
}
I_pV = sbp.cursor;
}
function habr4() {
while (!sbp.in_grouping(g_v, 97, 252)) {
if (sbp.cursor >= sbp.limit)
return false;
sbp.cursor++;
}
while (!sbp.out_grouping(g_v, 97, 252)) {
if (sbp.cursor >= sbp.limit)
return false;
sbp.cursor++;
}
return true;
}
function r_mark_regions() {
var v_1 = sbp.cursor;
I_pV = sbp.limit;
I_p1 = I_pV;
I_p2 = I_pV;
habr3();
sbp.cursor = v_1;
if (habr4()) {
I_p1 = sbp.cursor;
if (habr4())
I_p2 = sbp.cursor;
}
}
function r_postlude() {
var among_var;
while (true) {
sbp.bra = sbp.cursor;
among_var = sbp.find_among(a_0, 6);
if (among_var) {
sbp.ket = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_from("a");
continue;
case 2:
sbp.slice_from("e");
continue;
case 3:
sbp.slice_from("i");
continue;
case 4:
sbp.slice_from("o");
continue;
case 5:
sbp.slice_from("u");
continue;
case 6:
if (sbp.cursor >= sbp.limit)
break;
sbp.cursor++;
continue;
}
}
break;
}
}
function r_RV() {
return I_pV <= sbp.cursor;
}
function r_R1() {
return I_p1 <= sbp.cursor;
}
function r_R2() {
return I_p2 <= sbp.cursor;
}
function r_attached_pronoun() {
var among_var;
sbp.ket = sbp.cursor;
if (sbp.find_among_b(a_1, 13)) {
sbp.bra = sbp.cursor;
among_var = sbp.find_among_b(a_2, 11);
if (among_var && r_RV())
switch (among_var) {
case 1:
sbp.bra = sbp.cursor;
sbp.slice_from("iendo");
break;
case 2:
sbp.bra = sbp.cursor;
sbp.slice_from("ando");
break;
case 3:
sbp.bra = sbp.cursor;
sbp.slice_from("ar");
break;
case 4:
sbp.bra = sbp.cursor;
sbp.slice_from("er");
break;
case 5:
sbp.bra = sbp.cursor;
sbp.slice_from("ir");
break;
case 6:
sbp.slice_del();
break;
case 7:
if (sbp.eq_s_b(1, "u"))
sbp.slice_del();
break;
}
}
}
function habr5(a, n) {
if (!r_R2())
return true;
sbp.slice_del();
sbp.ket = sbp.cursor;
var among_var = sbp.find_among_b(a, n);
if (among_var) {
sbp.bra = sbp.cursor;
if (among_var == 1 && r_R2())
sbp.slice_del();
}
return false;
}
function habr6(c1) {
if (!r_R2())
return true;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, c1)) {
sbp.bra = sbp.cursor;
if (r_R2())
sbp.slice_del();
}
return false;
}
function r_standard_suffix() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_6, 46);
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
if (!r_R2())
return false;
sbp.slice_del();
break;
case 2:
if (habr6("ic"))
return false;
break;
case 3:
if (!r_R2())
return false;
sbp.slice_from("log");
break;
case 4:
if (!r_R2())
return false;
sbp.slice_from("u");
break;
case 5:
if (!r_R2())
return false;
sbp.slice_from("ente");
break;
case 6:
if (!r_R1())
return false;
sbp.slice_del();
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_3, 4);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R2()) {
sbp.slice_del();
if (among_var == 1) {
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, "at")) {
sbp.bra = sbp.cursor;
if (r_R2())
sbp.slice_del();
}
}
}
}
break;
case 7:
if (habr5(a_4, 3))
return false;
break;
case 8:
if (habr5(a_5, 3))
return false;
break;
case 9:
if (habr6("at"))
return false;
break;
}
return true;
}
return false;
}
function r_y_verb_suffix() {
var among_var, v_1;
if (sbp.cursor >= I_pV) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_pV;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_7, 12);
sbp.limit_backward = v_1;
if (among_var) {
sbp.bra = sbp.cursor;
if (among_var == 1) {
if (!sbp.eq_s_b(1, "u"))
return false;
sbp.slice_del();
}
return true;
}
}
return false;
}
function r_verb_suffix() {
var among_var, v_1, v_2, v_3;
if (sbp.cursor >= I_pV) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_pV;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_8, 96);
sbp.limit_backward = v_1;
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
v_2 = sbp.limit - sbp.cursor;
if (sbp.eq_s_b(1, "u")) {
v_3 = sbp.limit - sbp.cursor;
if (sbp.eq_s_b(1, "g"))
sbp.cursor = sbp.limit - v_3;
else
sbp.cursor = sbp.limit - v_2;
} else
sbp.cursor = sbp.limit - v_2;
sbp.bra = sbp.cursor;
case 2:
sbp.slice_del();
break;
}
}
}
}
function r_residual_suffix() {
var among_var, v_1;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_9, 8);
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
if (r_RV())
sbp.slice_del();
break;
case 2:
if (r_RV()) {
sbp.slice_del();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(1, "u")) {
sbp.bra = sbp.cursor;
v_1 = sbp.limit - sbp.cursor;
if (sbp.eq_s_b(1, "g")) {
sbp.cursor = sbp.limit - v_1;
if (r_RV())
sbp.slice_del();
}
}
}
break;
}
}
}
this.stem = function() {
var v_1 = sbp.cursor;
r_mark_regions();
sbp.limit_backward = v_1;
sbp.cursor = sbp.limit;
r_attached_pronoun();
sbp.cursor = sbp.limit;
if (!r_standard_suffix()) {
sbp.cursor = sbp.limit;
if (!r_y_verb_suffix()) {
sbp.cursor = sbp.limit;
r_verb_suffix();
}
}
sbp.cursor = sbp.limit;
r_residual_suffix();
sbp.cursor = sbp.limit_backward;
r_postlude();
return true;
}
};
/* and return a function that stems a word for the current locale */
return function(word) {
st.setCurrent(word);
st.stem();
return st.getCurrent();
}
})();
lunr.Pipeline.registerFunction(lunr.es.stemmer, 'stemmer-es');
/* stop word filter function */
lunr.es.stopWordFilter = function(token) {
if (lunr.es.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.es.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.es.stopWordFilter.stopWords.length = 309;
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
lunr.es.stopWordFilter.stopWords.elements = ' a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos'.split(' ');
lunr.Pipeline.registerFunction(lunr.es.stopWordFilter, 'stopWordFilter-es');
};
}))
\ No newline at end of file
/*!
* Lunr languages, `Finnish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function() {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.fi = function() {
this.pipeline.reset();
this.pipeline.add(
lunr.fi.trimmer,
lunr.fi.stopWordFilter,
lunr.fi.stemmer
);
};
/* lunr trimmer function */
lunr.fi.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A";
lunr.fi.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.fi.wordCharacters);
lunr.Pipeline.registerFunction(lunr.fi.trimmer, 'trimmer-fi');
/* lunr stemmer function */
lunr.fi.stemmer = (function() {
/* create the wrapped stemmer object */
var Among = lunr.stemmerSupport.Among,
SnowballProgram = lunr.stemmerSupport.SnowballProgram,
st = new function FinnishStemmer() {
var a_0 = [new Among("pa", -1, 1), new Among("sti", -1, 2),
new Among("kaan", -1, 1), new Among("han", -1, 1),
new Among("kin", -1, 1), new Among("h\u00E4n", -1, 1),
new Among("k\u00E4\u00E4n", -1, 1), new Among("ko", -1, 1),
new Among("p\u00E4", -1, 1), new Among("k\u00F6", -1, 1)
],
a_1 = [
new Among("lla", -1, -1), new Among("na", -1, -1),
new Among("ssa", -1, -1), new Among("ta", -1, -1),
new Among("lta", 3, -1), new Among("sta", 3, -1)
],
a_2 = [
new Among("ll\u00E4", -1, -1), new Among("n\u00E4", -1, -1),
new Among("ss\u00E4", -1, -1), new Among("t\u00E4", -1, -1),
new Among("lt\u00E4", 3, -1), new Among("st\u00E4", 3, -1)
],
a_3 = [
new Among("lle", -1, -1), new Among("ine", -1, -1)
],
a_4 = [
new Among("nsa", -1, 3), new Among("mme", -1, 3),
new Among("nne", -1, 3), new Among("ni", -1, 2),
new Among("si", -1, 1), new Among("an", -1, 4),
new Among("en", -1, 6), new Among("\u00E4n", -1, 5),
new Among("ns\u00E4", -1, 3)
],
a_5 = [new Among("aa", -1, -1),
new Among("ee", -1, -1), new Among("ii", -1, -1),
new Among("oo", -1, -1), new Among("uu", -1, -1),
new Among("\u00E4\u00E4", -1, -1),
new Among("\u00F6\u00F6", -1, -1)
],
a_6 = [new Among("a", -1, 8),
new Among("lla", 0, -1), new Among("na", 0, -1),
new Among("ssa", 0, -1), new Among("ta", 0, -1),
new Among("lta", 4, -1), new Among("sta", 4, -1),
new Among("tta", 4, 9), new Among("lle", -1, -1),
new Among("ine", -1, -1), new Among("ksi", -1, -1),
new Among("n", -1, 7), new Among("han", 11, 1),
new Among("den", 11, -1, r_VI), new Among("seen", 11, -1, r_LONG),
new Among("hen", 11, 2), new Among("tten", 11, -1, r_VI),
new Among("hin", 11, 3), new Among("siin", 11, -1, r_VI),
new Among("hon", 11, 4), new Among("h\u00E4n", 11, 5),
new Among("h\u00F6n", 11, 6), new Among("\u00E4", -1, 8),
new Among("ll\u00E4", 22, -1), new Among("n\u00E4", 22, -1),
new Among("ss\u00E4", 22, -1), new Among("t\u00E4", 22, -1),
new Among("lt\u00E4", 26, -1), new Among("st\u00E4", 26, -1),
new Among("tt\u00E4", 26, 9)
],
a_7 = [new Among("eja", -1, -1),
new Among("mma", -1, 1), new Among("imma", 1, -1),
new Among("mpa", -1, 1), new Among("impa", 3, -1),
new Among("mmi", -1, 1), new Among("immi", 5, -1),
new Among("mpi", -1, 1), new Among("impi", 7, -1),
new Among("ej\u00E4", -1, -1), new Among("mm\u00E4", -1, 1),
new Among("imm\u00E4", 10, -1), new Among("mp\u00E4", -1, 1),
new Among("imp\u00E4", 12, -1)
],
a_8 = [new Among("i", -1, -1),
new Among("j", -1, -1)
],
a_9 = [new Among("mma", -1, 1),
new Among("imma", 0, -1)
],
g_AEI = [17, 1, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 8
],
g_V1 = [17, 65, 16, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 8, 0, 32
],
g_V2 = [17, 65, 16, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 8, 0, 32
],
g_particle_end = [17, 97, 24, 1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 32
],
B_ending_removed, S_x, I_p2, I_p1, sbp = new SnowballProgram();
this.setCurrent = function(word) {
sbp.setCurrent(word);
};
this.getCurrent = function() {
return sbp.getCurrent();
};
function r_mark_regions() {
I_p1 = sbp.limit;
I_p2 = I_p1;
if (!habr1()) {
I_p1 = sbp.cursor;
if (!habr1())
I_p2 = sbp.cursor;
}
}
function habr1() {
var v_1;
while (true) {
v_1 = sbp.cursor;
if (sbp.in_grouping(g_V1, 97, 246))
break;
sbp.cursor = v_1;
if (v_1 >= sbp.limit)
return true;
sbp.cursor++;
}
sbp.cursor = v_1;
while (!sbp.out_grouping(g_V1, 97, 246)) {
if (sbp.cursor >= sbp.limit)
return true;
sbp.cursor++;
}
return false;
}
function r_R2() {
return I_p2 <= sbp.cursor;
}
function r_particle_etc() {
var among_var, v_1;
if (sbp.cursor >= I_p1) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_p1;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_0, 10);
if (among_var) {
sbp.bra = sbp.cursor;
sbp.limit_backward = v_1;
switch (among_var) {
case 1:
if (!sbp.in_grouping_b(g_particle_end, 97, 246))
return;
break;
case 2:
if (!r_R2())
return;
break;
}
sbp.slice_del();
} else
sbp.limit_backward = v_1;
}
}
function r_possessive() {
var among_var, v_1, v_2;
if (sbp.cursor >= I_p1) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_p1;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_4, 9);
if (among_var) {
sbp.bra = sbp.cursor;
sbp.limit_backward = v_1;
switch (among_var) {
case 1:
v_2 = sbp.limit - sbp.cursor;
if (!sbp.eq_s_b(1, "k")) {
sbp.cursor = sbp.limit - v_2;
sbp.slice_del();
}
break;
case 2:
sbp.slice_del();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(3, "kse")) {
sbp.bra = sbp.cursor;
sbp.slice_from("ksi");
}
break;
case 3:
sbp.slice_del();
break;
case 4:
if (sbp.find_among_b(a_1, 6))
sbp.slice_del();
break;
case 5:
if (sbp.find_among_b(a_2, 6))
sbp.slice_del();
break;
case 6:
if (sbp.find_among_b(a_3, 2))
sbp.slice_del();
break;
}
} else
sbp.limit_backward = v_1;
}
}
function r_LONG() {
return sbp.find_among_b(a_5, 7);
}
function r_VI() {
return sbp.eq_s_b(1, "i") && sbp.in_grouping_b(g_V2, 97, 246);
}
function r_case_ending() {
var among_var, v_1, v_2;
if (sbp.cursor >= I_p1) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_p1;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_6, 30);
if (among_var) {
sbp.bra = sbp.cursor;
sbp.limit_backward = v_1;
switch (among_var) {
case 1:
if (!sbp.eq_s_b(1, "a"))
return;
break;
case 2:
case 9:
if (!sbp.eq_s_b(1, "e"))
return;
break;
case 3:
if (!sbp.eq_s_b(1, "i"))
return;
break;
case 4:
if (!sbp.eq_s_b(1, "o"))
return;
break;
case 5:
if (!sbp.eq_s_b(1, "\u00E4"))
return;
break;
case 6:
if (!sbp.eq_s_b(1, "\u00F6"))
return;
break;
case 7:
v_2 = sbp.limit - sbp.cursor;
if (!r_LONG()) {
sbp.cursor = sbp.limit - v_2;
if (!sbp.eq_s_b(2, "ie")) {
sbp.cursor = sbp.limit - v_2;
break;
}
}
sbp.cursor = sbp.limit - v_2;
if (sbp.cursor <= sbp.limit_backward) {
sbp.cursor = sbp.limit - v_2;
break;
}
sbp.cursor--;
sbp.bra = sbp.cursor;
break;
case 8:
if (!sbp.in_grouping_b(g_V1, 97, 246) || !sbp.out_grouping_b(g_V1, 97, 246))
return;
break;
}
sbp.slice_del();
B_ending_removed = true;
} else
sbp.limit_backward = v_1;
}
}
function r_other_endings() {
var among_var, v_1, v_2;
if (sbp.cursor >= I_p2) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_p2;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_7, 14);
if (among_var) {
sbp.bra = sbp.cursor;
sbp.limit_backward = v_1;
if (among_var == 1) {
v_2 = sbp.limit - sbp.cursor;
if (sbp.eq_s_b(2, "po"))
return;
sbp.cursor = sbp.limit - v_2;
}
sbp.slice_del();
} else
sbp.limit_backward = v_1;
}
}
function r_i_plural() {
var v_1;
if (sbp.cursor >= I_p1) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_p1;
sbp.ket = sbp.cursor;
if (sbp.find_among_b(a_8, 2)) {
sbp.bra = sbp.cursor;
sbp.limit_backward = v_1;
sbp.slice_del();
} else
sbp.limit_backward = v_1;
}
}
function r_t_plural() {
var among_var, v_1, v_2, v_3, v_4, v_5;
if (sbp.cursor >= I_p1) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_p1;
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(1, "t")) {
sbp.bra = sbp.cursor;
v_2 = sbp.limit - sbp.cursor;
if (sbp.in_grouping_b(g_V1, 97, 246)) {
sbp.cursor = sbp.limit - v_2;
sbp.slice_del();
sbp.limit_backward = v_1;
v_3 = sbp.limit - sbp.cursor;
if (sbp.cursor >= I_p2) {
sbp.cursor = I_p2;
v_4 = sbp.limit_backward;
sbp.limit_backward = sbp.cursor;
sbp.cursor = sbp.limit - v_3;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_9, 2);
if (among_var) {
sbp.bra = sbp.cursor;
sbp.limit_backward = v_4;
if (among_var == 1) {
v_5 = sbp.limit - sbp.cursor;
if (sbp.eq_s_b(2, "po"))
return;
sbp.cursor = sbp.limit - v_5;
}
sbp.slice_del();
return;
}
}
}
}
sbp.limit_backward = v_1;
}
}
function r_tidy() {
var v_1, v_2, v_3, v_4;
if (sbp.cursor >= I_p1) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_p1;
v_2 = sbp.limit - sbp.cursor;
if (r_LONG()) {
sbp.cursor = sbp.limit - v_2;
sbp.ket = sbp.cursor;
if (sbp.cursor > sbp.limit_backward) {
sbp.cursor--;
sbp.bra = sbp.cursor;
sbp.slice_del();
}
}
sbp.cursor = sbp.limit - v_2;
sbp.ket = sbp.cursor;
if (sbp.in_grouping_b(g_AEI, 97, 228)) {
sbp.bra = sbp.cursor;
if (sbp.out_grouping_b(g_V1, 97, 246))
sbp.slice_del();
}
sbp.cursor = sbp.limit - v_2;
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(1, "j")) {
sbp.bra = sbp.cursor;
v_3 = sbp.limit - sbp.cursor;
if (!sbp.eq_s_b(1, "o")) {
sbp.cursor = sbp.limit - v_3;
if (sbp.eq_s_b(1, "u"))
sbp.slice_del();
} else
sbp.slice_del();
}
sbp.cursor = sbp.limit - v_2;
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(1, "o")) {
sbp.bra = sbp.cursor;
if (sbp.eq_s_b(1, "j"))
sbp.slice_del();
}
sbp.cursor = sbp.limit - v_2;
sbp.limit_backward = v_1;
while (true) {
v_4 = sbp.limit - sbp.cursor;
if (sbp.out_grouping_b(g_V1, 97, 246)) {
sbp.cursor = sbp.limit - v_4;
break;
}
sbp.cursor = sbp.limit - v_4;
if (sbp.cursor <= sbp.limit_backward)
return;
sbp.cursor--;
}
sbp.ket = sbp.cursor;
if (sbp.cursor > sbp.limit_backward) {
sbp.cursor--;
sbp.bra = sbp.cursor;
S_x = sbp.slice_to();
if (sbp.eq_v_b(S_x))
sbp.slice_del();
}
}
}
this.stem = function() {
var v_1 = sbp.cursor;
r_mark_regions();
B_ending_removed = false;
sbp.limit_backward = v_1;
sbp.cursor = sbp.limit;
r_particle_etc();
sbp.cursor = sbp.limit;
r_possessive();
sbp.cursor = sbp.limit;
r_case_ending();
sbp.cursor = sbp.limit;
r_other_endings();
sbp.cursor = sbp.limit;
if (B_ending_removed) {
r_i_plural();
sbp.cursor = sbp.limit;
} else {
sbp.cursor = sbp.limit;
r_t_plural();
sbp.cursor = sbp.limit;
}
r_tidy();
return true;
}
};
/* and return a function that stems a word for the current locale */
return function(word) {
st.setCurrent(word);
st.stem();
return st.getCurrent();
}
})();
lunr.Pipeline.registerFunction(lunr.fi.stemmer, 'stemmer-fi');
/* stop word filter function */
lunr.fi.stopWordFilter = function(token) {
if (lunr.fi.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.fi.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.fi.stopWordFilter.stopWords.length = 236;
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
lunr.fi.stopWordFilter.stopWords.elements = ' ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli'.split(' ');
lunr.Pipeline.registerFunction(lunr.fi.stopWordFilter, 'stopWordFilter-fi');
};
}))
\ No newline at end of file
/*!
* Lunr languages, `French` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function() {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.fr = function() {
this.pipeline.reset();
this.pipeline.add(
lunr.fr.trimmer,
lunr.fr.stopWordFilter,
lunr.fr.stemmer
);
};
/* lunr trimmer function */
lunr.fr.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A";
lunr.fr.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.fr.wordCharacters);
lunr.Pipeline.registerFunction(lunr.fr.trimmer, 'trimmer-fr');
/* lunr stemmer function */
lunr.fr.stemmer = (function() {
/* create the wrapped stemmer object */
var Among = lunr.stemmerSupport.Among,
SnowballProgram = lunr.stemmerSupport.SnowballProgram,
st = new function FrenchStemmer() {
var a_0 = [new Among("col", -1, -1), new Among("par", -1, -1),
new Among("tap", -1, -1)
],
a_1 = [new Among("", -1, 4),
new Among("I", 0, 1), new Among("U", 0, 2), new Among("Y", 0, 3)
],
a_2 = [
new Among("iqU", -1, 3), new Among("abl", -1, 3),
new Among("I\u00E8r", -1, 4), new Among("i\u00E8r", -1, 4),
new Among("eus", -1, 2), new Among("iv", -1, 1)
],
a_3 = [
new Among("ic", -1, 2), new Among("abil", -1, 1),
new Among("iv", -1, 3)
],
a_4 = [new Among("iqUe", -1, 1),
new Among("atrice", -1, 2), new Among("ance", -1, 1),
new Among("ence", -1, 5), new Among("logie", -1, 3),
new Among("able", -1, 1), new Among("isme", -1, 1),
new Among("euse", -1, 11), new Among("iste", -1, 1),
new Among("ive", -1, 8), new Among("if", -1, 8),
new Among("usion", -1, 4), new Among("ation", -1, 2),
new Among("ution", -1, 4), new Among("ateur", -1, 2),
new Among("iqUes", -1, 1), new Among("atrices", -1, 2),
new Among("ances", -1, 1), new Among("ences", -1, 5),
new Among("logies", -1, 3), new Among("ables", -1, 1),
new Among("ismes", -1, 1), new Among("euses", -1, 11),
new Among("istes", -1, 1), new Among("ives", -1, 8),
new Among("ifs", -1, 8), new Among("usions", -1, 4),
new Among("ations", -1, 2), new Among("utions", -1, 4),
new Among("ateurs", -1, 2), new Among("ments", -1, 15),
new Among("ements", 30, 6), new Among("issements", 31, 12),
new Among("it\u00E9s", -1, 7), new Among("ment", -1, 15),
new Among("ement", 34, 6), new Among("issement", 35, 12),
new Among("amment", 34, 13), new Among("emment", 34, 14),
new Among("aux", -1, 10), new Among("eaux", 39, 9),
new Among("eux", -1, 1), new Among("it\u00E9", -1, 7)
],
a_5 = [
new Among("ira", -1, 1), new Among("ie", -1, 1),
new Among("isse", -1, 1), new Among("issante", -1, 1),
new Among("i", -1, 1), new Among("irai", 4, 1),
new Among("ir", -1, 1), new Among("iras", -1, 1),
new Among("ies", -1, 1), new Among("\u00EEmes", -1, 1),
new Among("isses", -1, 1), new Among("issantes", -1, 1),
new Among("\u00EEtes", -1, 1), new Among("is", -1, 1),
new Among("irais", 13, 1), new Among("issais", 13, 1),
new Among("irions", -1, 1), new Among("issions", -1, 1),
new Among("irons", -1, 1), new Among("issons", -1, 1),
new Among("issants", -1, 1), new Among("it", -1, 1),
new Among("irait", 21, 1), new Among("issait", 21, 1),
new Among("issant", -1, 1), new Among("iraIent", -1, 1),
new Among("issaIent", -1, 1), new Among("irent", -1, 1),
new Among("issent", -1, 1), new Among("iront", -1, 1),
new Among("\u00EEt", -1, 1), new Among("iriez", -1, 1),
new Among("issiez", -1, 1), new Among("irez", -1, 1),
new Among("issez", -1, 1)
],
a_6 = [new Among("a", -1, 3),
new Among("era", 0, 2), new Among("asse", -1, 3),
new Among("ante", -1, 3), new Among("\u00E9e", -1, 2),
new Among("ai", -1, 3), new Among("erai", 5, 2),
new Among("er", -1, 2), new Among("as", -1, 3),
new Among("eras", 8, 2), new Among("\u00E2mes", -1, 3),
new Among("asses", -1, 3), new Among("antes", -1, 3),
new Among("\u00E2tes", -1, 3), new Among("\u00E9es", -1, 2),
new Among("ais", -1, 3), new Among("erais", 15, 2),
new Among("ions", -1, 1), new Among("erions", 17, 2),
new Among("assions", 17, 3), new Among("erons", -1, 2),
new Among("ants", -1, 3), new Among("\u00E9s", -1, 2),
new Among("ait", -1, 3), new Among("erait", 23, 2),
new Among("ant", -1, 3), new Among("aIent", -1, 3),
new Among("eraIent", 26, 2), new Among("\u00E8rent", -1, 2),
new Among("assent", -1, 3), new Among("eront", -1, 2),
new Among("\u00E2t", -1, 3), new Among("ez", -1, 2),
new Among("iez", 32, 2), new Among("eriez", 33, 2),
new Among("assiez", 33, 3), new Among("erez", 32, 2),
new Among("\u00E9", -1, 2)
],
a_7 = [new Among("e", -1, 3),
new Among("I\u00E8re", 0, 2), new Among("i\u00E8re", 0, 2),
new Among("ion", -1, 1), new Among("Ier", -1, 2),
new Among("ier", -1, 2), new Among("\u00EB", -1, 4)
],
a_8 = [
new Among("ell", -1, -1), new Among("eill", -1, -1),
new Among("enn", -1, -1), new Among("onn", -1, -1),
new Among("ett", -1, -1)
],
g_v = [17, 65, 16, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 128, 130, 103, 8, 5
],
g_keep_with_s = [1, 65, 20, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128
],
I_p2, I_p1, I_pV, sbp = new SnowballProgram();
this.setCurrent = function(word) {
sbp.setCurrent(word);
};
this.getCurrent = function() {
return sbp.getCurrent();
};
function habr1(c1, c2, v_1) {
if (sbp.eq_s(1, c1)) {
sbp.ket = sbp.cursor;
if (sbp.in_grouping(g_v, 97, 251)) {
sbp.slice_from(c2);
sbp.cursor = v_1;
return true;
}
}
return false;
}
function habr2(c1, c2, v_1) {
if (sbp.eq_s(1, c1)) {
sbp.ket = sbp.cursor;
sbp.slice_from(c2);
sbp.cursor = v_1;
return true;
}
return false;
}
function r_prelude() {
var v_1, v_2;
while (true) {
v_1 = sbp.cursor;
if (sbp.in_grouping(g_v, 97, 251)) {
sbp.bra = sbp.cursor;
v_2 = sbp.cursor;
if (habr1("u", "U", v_1))
continue;
sbp.cursor = v_2;
if (habr1("i", "I", v_1))
continue;
sbp.cursor = v_2;
if (habr2("y", "Y", v_1))
continue;
}
sbp.cursor = v_1;
sbp.bra = v_1;
if (!habr1("y", "Y", v_1)) {
sbp.cursor = v_1;
if (sbp.eq_s(1, "q")) {
sbp.bra = sbp.cursor;
if (habr2("u", "U", v_1))
continue;
}
sbp.cursor = v_1;
if (v_1 >= sbp.limit)
return;
sbp.cursor++;
}
}
}
function habr3() {
while (!sbp.in_grouping(g_v, 97, 251)) {
if (sbp.cursor >= sbp.limit)
return true;
sbp.cursor++;
}
while (!sbp.out_grouping(g_v, 97, 251)) {
if (sbp.cursor >= sbp.limit)
return true;
sbp.cursor++;
}
return false;
}
function r_mark_regions() {
var v_1 = sbp.cursor;
I_pV = sbp.limit;
I_p1 = I_pV;
I_p2 = I_pV;
if (sbp.in_grouping(g_v, 97, 251) && sbp.in_grouping(g_v, 97, 251) && sbp.cursor < sbp.limit)
sbp.cursor++;
else {
sbp.cursor = v_1;
if (!sbp.find_among(a_0, 3)) {
sbp.cursor = v_1;
do {
if (sbp.cursor >= sbp.limit) {
sbp.cursor = I_pV;
break;
}
sbp.cursor++;
} while (!sbp.in_grouping(g_v, 97, 251));
}
}
I_pV = sbp.cursor;
sbp.cursor = v_1;
if (!habr3()) {
I_p1 = sbp.cursor;
if (!habr3())
I_p2 = sbp.cursor;
}
}
function r_postlude() {
var among_var, v_1;
while (true) {
v_1 = sbp.cursor;
sbp.bra = v_1;
among_var = sbp.find_among(a_1, 4);
if (!among_var)
break;
sbp.ket = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_from("i");
break;
case 2:
sbp.slice_from("u");
break;
case 3:
sbp.slice_from("y");
break;
case 4:
if (sbp.cursor >= sbp.limit)
return;
sbp.cursor++;
break;
}
}
}
function r_RV() {
return I_pV <= sbp.cursor;
}
function r_R1() {
return I_p1 <= sbp.cursor;
}
function r_R2() {
return I_p2 <= sbp.cursor;
}
function r_standard_suffix() {
var among_var, v_1;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_4, 43);
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
if (!r_R2())
return false;
sbp.slice_del();
break;
case 2:
if (!r_R2())
return false;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, "ic")) {
sbp.bra = sbp.cursor;
if (!r_R2())
sbp.slice_from("iqU");
else
sbp.slice_del();
}
break;
case 3:
if (!r_R2())
return false;
sbp.slice_from("log");
break;
case 4:
if (!r_R2())
return false;
sbp.slice_from("u");
break;
case 5:
if (!r_R2())
return false;
sbp.slice_from("ent");
break;
case 6:
if (!r_RV())
return false;
sbp.slice_del();
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_2, 6);
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
if (r_R2()) {
sbp.slice_del();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, "at")) {
sbp.bra = sbp.cursor;
if (r_R2())
sbp.slice_del();
}
}
break;
case 2:
if (r_R2())
sbp.slice_del();
else if (r_R1())
sbp.slice_from("eux");
break;
case 3:
if (r_R2())
sbp.slice_del();
break;
case 4:
if (r_RV())
sbp.slice_from("i");
break;
}
}
break;
case 7:
if (!r_R2())
return false;
sbp.slice_del();
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_3, 3);
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
if (r_R2())
sbp.slice_del();
else
sbp.slice_from("abl");
break;
case 2:
if (r_R2())
sbp.slice_del();
else
sbp.slice_from("iqU");
break;
case 3:
if (r_R2())
sbp.slice_del();
break;
}
}
break;
case 8:
if (!r_R2())
return false;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, "at")) {
sbp.bra = sbp.cursor;
if (r_R2()) {
sbp.slice_del();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, "ic")) {
sbp.bra = sbp.cursor;
if (r_R2())
sbp.slice_del();
else
sbp.slice_from("iqU");
break;
}
}
}
break;
case 9:
sbp.slice_from("eau");
break;
case 10:
if (!r_R1())
return false;
sbp.slice_from("al");
break;
case 11:
if (r_R2())
sbp.slice_del();
else if (!r_R1())
return false;
else
sbp.slice_from("eux");
break;
case 12:
if (!r_R1() || !sbp.out_grouping_b(g_v, 97, 251))
return false;
sbp.slice_del();
break;
case 13:
if (r_RV())
sbp.slice_from("ant");
return false;
case 14:
if (r_RV())
sbp.slice_from("ent");
return false;
case 15:
v_1 = sbp.limit - sbp.cursor;
if (sbp.in_grouping_b(g_v, 97, 251) && r_RV()) {
sbp.cursor = sbp.limit - v_1;
sbp.slice_del();
}
return false;
}
return true;
}
return false;
}
function r_i_verb_suffix() {
var among_var, v_1;
if (sbp.cursor < I_pV)
return false;
v_1 = sbp.limit_backward;
sbp.limit_backward = I_pV;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_5, 35);
if (!among_var) {
sbp.limit_backward = v_1;
return false;
}
sbp.bra = sbp.cursor;
if (among_var == 1) {
if (!sbp.out_grouping_b(g_v, 97, 251)) {
sbp.limit_backward = v_1;
return false;
}
sbp.slice_del();
}
sbp.limit_backward = v_1;
return true;
}
function r_verb_suffix() {
var among_var, v_2, v_3;
if (sbp.cursor < I_pV)
return false;
v_2 = sbp.limit_backward;
sbp.limit_backward = I_pV;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_6, 38);
if (!among_var) {
sbp.limit_backward = v_2;
return false;
}
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
if (!r_R2()) {
sbp.limit_backward = v_2;
return false;
}
sbp.slice_del();
break;
case 2:
sbp.slice_del();
break;
case 3:
sbp.slice_del();
v_3 = sbp.limit - sbp.cursor;
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(1, "e")) {
sbp.bra = sbp.cursor;
sbp.slice_del();
} else
sbp.cursor = sbp.limit - v_3;
break;
}
sbp.limit_backward = v_2;
return true;
}
function r_residual_suffix() {
var among_var, v_1 = sbp.limit - sbp.cursor,
v_2, v_4, v_5;
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(1, "s")) {
sbp.bra = sbp.cursor;
v_2 = sbp.limit - sbp.cursor;
if (sbp.out_grouping_b(g_keep_with_s, 97, 232)) {
sbp.cursor = sbp.limit - v_2;
sbp.slice_del();
} else
sbp.cursor = sbp.limit - v_1;
} else
sbp.cursor = sbp.limit - v_1;
if (sbp.cursor >= I_pV) {
v_4 = sbp.limit_backward;
sbp.limit_backward = I_pV;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_7, 7);
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
if (r_R2()) {
v_5 = sbp.limit - sbp.cursor;
if (!sbp.eq_s_b(1, "s")) {
sbp.cursor = sbp.limit - v_5;
if (!sbp.eq_s_b(1, "t"))
break;
}
sbp.slice_del();
}
break;
case 2:
sbp.slice_from("i");
break;
case 3:
sbp.slice_del();
break;
case 4:
if (sbp.eq_s_b(2, "gu"))
sbp.slice_del();
break;
}
}
sbp.limit_backward = v_4;
}
}
function r_un_double() {
var v_1 = sbp.limit - sbp.cursor;
if (sbp.find_among_b(a_8, 5)) {
sbp.cursor = sbp.limit - v_1;
sbp.ket = sbp.cursor;
if (sbp.cursor > sbp.limit_backward) {
sbp.cursor--;
sbp.bra = sbp.cursor;
sbp.slice_del();
}
}
}
function r_un_accent() {
var v_1, v_2 = 1;
while (sbp.out_grouping_b(g_v, 97, 251))
v_2--;
if (v_2 <= 0) {
sbp.ket = sbp.cursor;
v_1 = sbp.limit - sbp.cursor;
if (!sbp.eq_s_b(1, "\u00E9")) {
sbp.cursor = sbp.limit - v_1;
if (!sbp.eq_s_b(1, "\u00E8"))
return;
}
sbp.bra = sbp.cursor;
sbp.slice_from("e");
}
}
function habr5() {
if (!r_standard_suffix()) {
sbp.cursor = sbp.limit;
if (!r_i_verb_suffix()) {
sbp.cursor = sbp.limit;
if (!r_verb_suffix()) {
sbp.cursor = sbp.limit;
r_residual_suffix();
return;
}
}
}
sbp.cursor = sbp.limit;
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(1, "Y")) {
sbp.bra = sbp.cursor;
sbp.slice_from("i");
} else {
sbp.cursor = sbp.limit;
if (sbp.eq_s_b(1, "\u00E7")) {
sbp.bra = sbp.cursor;
sbp.slice_from("c");
}
}
}
this.stem = function() {
var v_1 = sbp.cursor;
r_prelude();
sbp.cursor = v_1;
r_mark_regions();
sbp.limit_backward = v_1;
sbp.cursor = sbp.limit;
habr5();
sbp.cursor = sbp.limit;
r_un_double();
sbp.cursor = sbp.limit;
r_un_accent();
sbp.cursor = sbp.limit_backward;
r_postlude();
return true;
}
};
/* and return a function that stems a word for the current locale */
return function(word) {
st.setCurrent(word);
st.stem();
return st.getCurrent();
}
})();
lunr.Pipeline.registerFunction(lunr.fr.stemmer, 'stemmer-fr');
/* stop word filter function */
lunr.fr.stopWordFilter = function(token) {
if (lunr.fr.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.fr.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.fr.stopWordFilter.stopWords.length = 164;
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
lunr.fr.stopWordFilter.stopWords.elements = ' ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes'.split(' ');
lunr.Pipeline.registerFunction(lunr.fr.stopWordFilter, 'stopWordFilter-fr');
};
}))
\ No newline at end of file
/*!
* Lunr languages, `Hungarian` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function() {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.hu = function() {
this.pipeline.reset();
this.pipeline.add(
lunr.hu.trimmer,
lunr.hu.stopWordFilter,
lunr.hu.stemmer
);
};
/* lunr trimmer function */
lunr.hu.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A";
lunr.hu.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.hu.wordCharacters);
lunr.Pipeline.registerFunction(lunr.hu.trimmer, 'trimmer-hu');
/* lunr stemmer function */
lunr.hu.stemmer = (function() {
/* create the wrapped stemmer object */
var Among = lunr.stemmerSupport.Among,
SnowballProgram = lunr.stemmerSupport.SnowballProgram,
st = new function HungarianStemmer() {
var a_0 = [new Among("cs", -1, -1), new Among("dzs", -1, -1),
new Among("gy", -1, -1), new Among("ly", -1, -1),
new Among("ny", -1, -1), new Among("sz", -1, -1),
new Among("ty", -1, -1), new Among("zs", -1, -1)
],
a_1 = [
new Among("\u00E1", -1, 1), new Among("\u00E9", -1, 2)
],
a_2 = [
new Among("bb", -1, -1), new Among("cc", -1, -1),
new Among("dd", -1, -1), new Among("ff", -1, -1),
new Among("gg", -1, -1), new Among("jj", -1, -1),
new Among("kk", -1, -1), new Among("ll", -1, -1),
new Among("mm", -1, -1), new Among("nn", -1, -1),
new Among("pp", -1, -1), new Among("rr", -1, -1),
new Among("ccs", -1, -1), new Among("ss", -1, -1),
new Among("zzs", -1, -1), new Among("tt", -1, -1),
new Among("vv", -1, -1), new Among("ggy", -1, -1),
new Among("lly", -1, -1), new Among("nny", -1, -1),
new Among("tty", -1, -1), new Among("ssz", -1, -1),
new Among("zz", -1, -1)
],
a_3 = [new Among("al", -1, 1),
new Among("el", -1, 2)
],
a_4 = [new Among("ba", -1, -1),
new Among("ra", -1, -1), new Among("be", -1, -1),
new Among("re", -1, -1), new Among("ig", -1, -1),
new Among("nak", -1, -1), new Among("nek", -1, -1),
new Among("val", -1, -1), new Among("vel", -1, -1),
new Among("ul", -1, -1), new Among("n\u00E1l", -1, -1),
new Among("n\u00E9l", -1, -1), new Among("b\u00F3l", -1, -1),
new Among("r\u00F3l", -1, -1), new Among("t\u00F3l", -1, -1),
new Among("b\u00F5l", -1, -1), new Among("r\u00F5l", -1, -1),
new Among("t\u00F5l", -1, -1), new Among("\u00FCl", -1, -1),
new Among("n", -1, -1), new Among("an", 19, -1),
new Among("ban", 20, -1), new Among("en", 19, -1),
new Among("ben", 22, -1), new Among("k\u00E9ppen", 22, -1),
new Among("on", 19, -1), new Among("\u00F6n", 19, -1),
new Among("k\u00E9pp", -1, -1), new Among("kor", -1, -1),
new Among("t", -1, -1), new Among("at", 29, -1),
new Among("et", 29, -1), new Among("k\u00E9nt", 29, -1),
new Among("ank\u00E9nt", 32, -1), new Among("enk\u00E9nt", 32, -1),
new Among("onk\u00E9nt", 32, -1), new Among("ot", 29, -1),
new Among("\u00E9rt", 29, -1), new Among("\u00F6t", 29, -1),
new Among("hez", -1, -1), new Among("hoz", -1, -1),
new Among("h\u00F6z", -1, -1), new Among("v\u00E1", -1, -1),
new Among("v\u00E9", -1, -1)
],
a_5 = [new Among("\u00E1n", -1, 2),
new Among("\u00E9n", -1, 1), new Among("\u00E1nk\u00E9nt", -1, 3)
],
a_6 = [
new Among("stul", -1, 2), new Among("astul", 0, 1),
new Among("\u00E1stul", 0, 3), new Among("st\u00FCl", -1, 2),
new Among("est\u00FCl", 3, 1), new Among("\u00E9st\u00FCl", 3, 4)
],
a_7 = [
new Among("\u00E1", -1, 1), new Among("\u00E9", -1, 2)
],
a_8 = [
new Among("k", -1, 7), new Among("ak", 0, 4),
new Among("ek", 0, 6), new Among("ok", 0, 5),
new Among("\u00E1k", 0, 1), new Among("\u00E9k", 0, 2),
new Among("\u00F6k", 0, 3)
],
a_9 = [new Among("\u00E9i", -1, 7),
new Among("\u00E1\u00E9i", 0, 6), new Among("\u00E9\u00E9i", 0, 5),
new Among("\u00E9", -1, 9), new Among("k\u00E9", 3, 4),
new Among("ak\u00E9", 4, 1), new Among("ek\u00E9", 4, 1),
new Among("ok\u00E9", 4, 1), new Among("\u00E1k\u00E9", 4, 3),
new Among("\u00E9k\u00E9", 4, 2), new Among("\u00F6k\u00E9", 4, 1),
new Among("\u00E9\u00E9", 3, 8)
],
a_10 = [new Among("a", -1, 18),
new Among("ja", 0, 17), new Among("d", -1, 16),
new Among("ad", 2, 13), new Among("ed", 2, 13),
new Among("od", 2, 13), new Among("\u00E1d", 2, 14),
new Among("\u00E9d", 2, 15), new Among("\u00F6d", 2, 13),
new Among("e", -1, 18), new Among("je", 9, 17),
new Among("nk", -1, 4), new Among("unk", 11, 1),
new Among("\u00E1nk", 11, 2), new Among("\u00E9nk", 11, 3),
new Among("\u00FCnk", 11, 1), new Among("uk", -1, 8),
new Among("juk", 16, 7), new Among("\u00E1juk", 17, 5),
new Among("\u00FCk", -1, 8), new Among("j\u00FCk", 19, 7),
new Among("\u00E9j\u00FCk", 20, 6), new Among("m", -1, 12),
new Among("am", 22, 9), new Among("em", 22, 9),
new Among("om", 22, 9), new Among("\u00E1m", 22, 10),
new Among("\u00E9m", 22, 11), new Among("o", -1, 18),
new Among("\u00E1", -1, 19), new Among("\u00E9", -1, 20)
],
a_11 = [
new Among("id", -1, 10), new Among("aid", 0, 9),
new Among("jaid", 1, 6), new Among("eid", 0, 9),
new Among("jeid", 3, 6), new Among("\u00E1id", 0, 7),
new Among("\u00E9id", 0, 8), new Among("i", -1, 15),
new Among("ai", 7, 14), new Among("jai", 8, 11),
new Among("ei", 7, 14), new Among("jei", 10, 11),
new Among("\u00E1i", 7, 12), new Among("\u00E9i", 7, 13),
new Among("itek", -1, 24), new Among("eitek", 14, 21),
new Among("jeitek", 15, 20), new Among("\u00E9itek", 14, 23),
new Among("ik", -1, 29), new Among("aik", 18, 26),
new Among("jaik", 19, 25), new Among("eik", 18, 26),
new Among("jeik", 21, 25), new Among("\u00E1ik", 18, 27),
new Among("\u00E9ik", 18, 28), new Among("ink", -1, 20),
new Among("aink", 25, 17), new Among("jaink", 26, 16),
new Among("eink", 25, 17), new Among("jeink", 28, 16),
new Among("\u00E1ink", 25, 18), new Among("\u00E9ink", 25, 19),
new Among("aitok", -1, 21), new Among("jaitok", 32, 20),
new Among("\u00E1itok", -1, 22), new Among("im", -1, 5),
new Among("aim", 35, 4), new Among("jaim", 36, 1),
new Among("eim", 35, 4), new Among("jeim", 38, 1),
new Among("\u00E1im", 35, 2), new Among("\u00E9im", 35, 3)
],
g_v = [
17, 65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 52, 14
],
I_p1, sbp = new SnowballProgram();
this.setCurrent = function(word) {
sbp.setCurrent(word);
};
this.getCurrent = function() {
return sbp.getCurrent();
};
function r_mark_regions() {
var v_1 = sbp.cursor,
v_2;
I_p1 = sbp.limit;
if (sbp.in_grouping(g_v, 97, 252)) {
while (true) {
v_2 = sbp.cursor;
if (sbp.out_grouping(g_v, 97, 252)) {
sbp.cursor = v_2;
if (!sbp.find_among(a_0, 8)) {
sbp.cursor = v_2;
if (v_2 < sbp.limit)
sbp.cursor++;
}
I_p1 = sbp.cursor;
return;
}
sbp.cursor = v_2;
if (v_2 >= sbp.limit) {
I_p1 = v_2;
return;
}
sbp.cursor++;
}
}
sbp.cursor = v_1;
if (sbp.out_grouping(g_v, 97, 252)) {
while (!sbp.in_grouping(g_v, 97, 252)) {
if (sbp.cursor >= sbp.limit)
return;
sbp.cursor++;
}
I_p1 = sbp.cursor;
}
}
function r_R1() {
return I_p1 <= sbp.cursor;
}
function r_v_ending() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_1, 2);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R1()) {
switch (among_var) {
case 1:
sbp.slice_from("a");
break;
case 2:
sbp.slice_from("e");
break;
}
}
}
}
function r_double() {
var v_1 = sbp.limit - sbp.cursor;
if (!sbp.find_among_b(a_2, 23))
return false;
sbp.cursor = sbp.limit - v_1;
return true;
}
function r_undouble() {
if (sbp.cursor > sbp.limit_backward) {
sbp.cursor--;
sbp.ket = sbp.cursor;
var c = sbp.cursor - 1;
if (sbp.limit_backward <= c && c <= sbp.limit) {
sbp.cursor = c;
sbp.bra = c;
sbp.slice_del();
}
}
}
function r_instrum() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_3, 2);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R1()) {
if (among_var == 1 || among_var == 2)
if (!r_double())
return;
sbp.slice_del();
r_undouble();
}
}
}
function r_case() {
sbp.ket = sbp.cursor;
if (sbp.find_among_b(a_4, 44)) {
sbp.bra = sbp.cursor;
if (r_R1()) {
sbp.slice_del();
r_v_ending();
}
}
}
function r_case_special() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_5, 3);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R1()) {
switch (among_var) {
case 1:
sbp.slice_from("e");
break;
case 2:
case 3:
sbp.slice_from("a");
break;
}
}
}
}
function r_case_other() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_6, 6);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R1()) {
switch (among_var) {
case 1:
case 2:
sbp.slice_del();
break;
case 3:
sbp.slice_from("a");
break;
case 4:
sbp.slice_from("e");
break;
}
}
}
}
function r_factive() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_7, 2);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R1()) {
if (among_var == 1 || among_var == 2)
if (!r_double())
return;
sbp.slice_del();
r_undouble()
}
}
}
function r_plural() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_8, 7);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R1()) {
switch (among_var) {
case 1:
sbp.slice_from("a");
break;
case 2:
sbp.slice_from("e");
break;
case 3:
case 4:
case 5:
case 6:
case 7:
sbp.slice_del();
break;
}
}
}
}
function r_owned() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_9, 12);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R1()) {
switch (among_var) {
case 1:
case 4:
case 7:
case 9:
sbp.slice_del();
break;
case 2:
case 5:
case 8:
sbp.slice_from("e");
break;
case 3:
case 6:
sbp.slice_from("a");
break;
}
}
}
}
function r_sing_owner() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_10, 31);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R1()) {
switch (among_var) {
case 1:
case 4:
case 7:
case 8:
case 9:
case 12:
case 13:
case 16:
case 17:
case 18:
sbp.slice_del();
break;
case 2:
case 5:
case 10:
case 14:
case 19:
sbp.slice_from("a");
break;
case 3:
case 6:
case 11:
case 15:
case 20:
sbp.slice_from("e");
break;
}
}
}
}
function r_plur_owner() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_11, 42);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R1()) {
switch (among_var) {
case 1:
case 4:
case 5:
case 6:
case 9:
case 10:
case 11:
case 14:
case 15:
case 16:
case 17:
case 20:
case 21:
case 24:
case 25:
case 26:
case 29:
sbp.slice_del();
break;
case 2:
case 7:
case 12:
case 18:
case 22:
case 27:
sbp.slice_from("a");
break;
case 3:
case 8:
case 13:
case 19:
case 23:
case 28:
sbp.slice_from("e");
break;
}
}
}
}
this.stem = function() {
var v_1 = sbp.cursor;
r_mark_regions();
sbp.limit_backward = v_1;
sbp.cursor = sbp.limit;
r_instrum();
sbp.cursor = sbp.limit;
r_case();
sbp.cursor = sbp.limit;
r_case_special();
sbp.cursor = sbp.limit;
r_case_other();
sbp.cursor = sbp.limit;
r_factive();
sbp.cursor = sbp.limit;
r_owned();
sbp.cursor = sbp.limit;
r_sing_owner();
sbp.cursor = sbp.limit;
r_plur_owner();
sbp.cursor = sbp.limit;
r_plural();
return true;
}
};
/* and return a function that stems a word for the current locale */
return function(word) {
st.setCurrent(word);
st.stem();
return st.getCurrent();
}
})();
lunr.Pipeline.registerFunction(lunr.hu.stemmer, 'stemmer-hu');
/* stop word filter function */
lunr.hu.stopWordFilter = function(token) {
if (lunr.hu.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.hu.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.hu.stopWordFilter.stopWords.length = 200;
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
lunr.hu.stopWordFilter.stopWords.elements = ' a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra'.split(' ');
lunr.Pipeline.registerFunction(lunr.hu.stopWordFilter, 'stopWordFilter-hu');
};
}))
\ No newline at end of file
/*!
* Lunr languages, `Italian` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function() {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.it = function() {
this.pipeline.reset();
this.pipeline.add(
lunr.it.trimmer,
lunr.it.stopWordFilter,
lunr.it.stemmer
);
};
/* lunr trimmer function */
lunr.it.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A";
lunr.it.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.it.wordCharacters);
lunr.Pipeline.registerFunction(lunr.it.trimmer, 'trimmer-it');
/* lunr stemmer function */
lunr.it.stemmer = (function() {
/* create the wrapped stemmer object */
var Among = lunr.stemmerSupport.Among,
SnowballProgram = lunr.stemmerSupport.SnowballProgram,
st = new function ItalianStemmer() {
var a_0 = [new Among("", -1, 7), new Among("qu", 0, 6),
new Among("\u00E1", 0, 1), new Among("\u00E9", 0, 2),
new Among("\u00ED", 0, 3), new Among("\u00F3", 0, 4),
new Among("\u00FA", 0, 5)
],
a_1 = [new Among("", -1, 3),
new Among("I", 0, 1), new Among("U", 0, 2)
],
a_2 = [
new Among("la", -1, -1), new Among("cela", 0, -1),
new Among("gliela", 0, -1), new Among("mela", 0, -1),
new Among("tela", 0, -1), new Among("vela", 0, -1),
new Among("le", -1, -1), new Among("cele", 6, -1),
new Among("gliele", 6, -1), new Among("mele", 6, -1),
new Among("tele", 6, -1), new Among("vele", 6, -1),
new Among("ne", -1, -1), new Among("cene", 12, -1),
new Among("gliene", 12, -1), new Among("mene", 12, -1),
new Among("sene", 12, -1), new Among("tene", 12, -1),
new Among("vene", 12, -1), new Among("ci", -1, -1),
new Among("li", -1, -1), new Among("celi", 20, -1),
new Among("glieli", 20, -1), new Among("meli", 20, -1),
new Among("teli", 20, -1), new Among("veli", 20, -1),
new Among("gli", 20, -1), new Among("mi", -1, -1),
new Among("si", -1, -1), new Among("ti", -1, -1),
new Among("vi", -1, -1), new Among("lo", -1, -1),
new Among("celo", 31, -1), new Among("glielo", 31, -1),
new Among("melo", 31, -1), new Among("telo", 31, -1),
new Among("velo", 31, -1)
],
a_3 = [new Among("ando", -1, 1),
new Among("endo", -1, 1), new Among("ar", -1, 2),
new Among("er", -1, 2), new Among("ir", -1, 2)
],
a_4 = [
new Among("ic", -1, -1), new Among("abil", -1, -1),
new Among("os", -1, -1), new Among("iv", -1, 1)
],
a_5 = [
new Among("ic", -1, 1), new Among("abil", -1, 1),
new Among("iv", -1, 1)
],
a_6 = [new Among("ica", -1, 1),
new Among("logia", -1, 3), new Among("osa", -1, 1),
new Among("ista", -1, 1), new Among("iva", -1, 9),
new Among("anza", -1, 1), new Among("enza", -1, 5),
new Among("ice", -1, 1), new Among("atrice", 7, 1),
new Among("iche", -1, 1), new Among("logie", -1, 3),
new Among("abile", -1, 1), new Among("ibile", -1, 1),
new Among("usione", -1, 4), new Among("azione", -1, 2),
new Among("uzione", -1, 4), new Among("atore", -1, 2),
new Among("ose", -1, 1), new Among("ante", -1, 1),
new Among("mente", -1, 1), new Among("amente", 19, 7),
new Among("iste", -1, 1), new Among("ive", -1, 9),
new Among("anze", -1, 1), new Among("enze", -1, 5),
new Among("ici", -1, 1), new Among("atrici", 25, 1),
new Among("ichi", -1, 1), new Among("abili", -1, 1),
new Among("ibili", -1, 1), new Among("ismi", -1, 1),
new Among("usioni", -1, 4), new Among("azioni", -1, 2),
new Among("uzioni", -1, 4), new Among("atori", -1, 2),
new Among("osi", -1, 1), new Among("anti", -1, 1),
new Among("amenti", -1, 6), new Among("imenti", -1, 6),
new Among("isti", -1, 1), new Among("ivi", -1, 9),
new Among("ico", -1, 1), new Among("ismo", -1, 1),
new Among("oso", -1, 1), new Among("amento", -1, 6),
new Among("imento", -1, 6), new Among("ivo", -1, 9),
new Among("it\u00E0", -1, 8), new Among("ist\u00E0", -1, 1),
new Among("ist\u00E8", -1, 1), new Among("ist\u00EC", -1, 1)
],
a_7 = [
new Among("isca", -1, 1), new Among("enda", -1, 1),
new Among("ata", -1, 1), new Among("ita", -1, 1),
new Among("uta", -1, 1), new Among("ava", -1, 1),
new Among("eva", -1, 1), new Among("iva", -1, 1),
new Among("erebbe", -1, 1), new Among("irebbe", -1, 1),
new Among("isce", -1, 1), new Among("ende", -1, 1),
new Among("are", -1, 1), new Among("ere", -1, 1),
new Among("ire", -1, 1), new Among("asse", -1, 1),
new Among("ate", -1, 1), new Among("avate", 16, 1),
new Among("evate", 16, 1), new Among("ivate", 16, 1),
new Among("ete", -1, 1), new Among("erete", 20, 1),
new Among("irete", 20, 1), new Among("ite", -1, 1),
new Among("ereste", -1, 1), new Among("ireste", -1, 1),
new Among("ute", -1, 1), new Among("erai", -1, 1),
new Among("irai", -1, 1), new Among("isci", -1, 1),
new Among("endi", -1, 1), new Among("erei", -1, 1),
new Among("irei", -1, 1), new Among("assi", -1, 1),
new Among("ati", -1, 1), new Among("iti", -1, 1),
new Among("eresti", -1, 1), new Among("iresti", -1, 1),
new Among("uti", -1, 1), new Among("avi", -1, 1),
new Among("evi", -1, 1), new Among("ivi", -1, 1),
new Among("isco", -1, 1), new Among("ando", -1, 1),
new Among("endo", -1, 1), new Among("Yamo", -1, 1),
new Among("iamo", -1, 1), new Among("avamo", -1, 1),
new Among("evamo", -1, 1), new Among("ivamo", -1, 1),
new Among("eremo", -1, 1), new Among("iremo", -1, 1),
new Among("assimo", -1, 1), new Among("ammo", -1, 1),
new Among("emmo", -1, 1), new Among("eremmo", 54, 1),
new Among("iremmo", 54, 1), new Among("immo", -1, 1),
new Among("ano", -1, 1), new Among("iscano", 58, 1),
new Among("avano", 58, 1), new Among("evano", 58, 1),
new Among("ivano", 58, 1), new Among("eranno", -1, 1),
new Among("iranno", -1, 1), new Among("ono", -1, 1),
new Among("iscono", 65, 1), new Among("arono", 65, 1),
new Among("erono", 65, 1), new Among("irono", 65, 1),
new Among("erebbero", -1, 1), new Among("irebbero", -1, 1),
new Among("assero", -1, 1), new Among("essero", -1, 1),
new Among("issero", -1, 1), new Among("ato", -1, 1),
new Among("ito", -1, 1), new Among("uto", -1, 1),
new Among("avo", -1, 1), new Among("evo", -1, 1),
new Among("ivo", -1, 1), new Among("ar", -1, 1),
new Among("ir", -1, 1), new Among("er\u00E0", -1, 1),
new Among("ir\u00E0", -1, 1), new Among("er\u00F2", -1, 1),
new Among("ir\u00F2", -1, 1)
],
g_v = [17, 65, 16, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 128, 128, 8, 2, 1
],
g_AEIO = [17, 65, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 8, 2
],
g_CG = [17],
I_p2, I_p1, I_pV, sbp = new SnowballProgram();
this.setCurrent = function(word) {
sbp.setCurrent(word);
};
this.getCurrent = function() {
return sbp.getCurrent();
};
function habr1(c1, c2, v_1) {
if (sbp.eq_s(1, c1)) {
sbp.ket = sbp.cursor;
if (sbp.in_grouping(g_v, 97, 249)) {
sbp.slice_from(c2);
sbp.cursor = v_1;
return true;
}
}
return false;
}
function r_prelude() {
var among_var, v_1 = sbp.cursor,
v_2, v_3, v_4;
while (true) {
sbp.bra = sbp.cursor;
among_var = sbp.find_among(a_0, 7);
if (among_var) {
sbp.ket = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_from("\u00E0");
continue;
case 2:
sbp.slice_from("\u00E8");
continue;
case 3:
sbp.slice_from("\u00EC");
continue;
case 4:
sbp.slice_from("\u00F2");
continue;
case 5:
sbp.slice_from("\u00F9");
continue;
case 6:
sbp.slice_from("qU");
continue;
case 7:
if (sbp.cursor >= sbp.limit)
break;
sbp.cursor++;
continue;
}
}
break;
}
sbp.cursor = v_1;
while (true) {
v_2 = sbp.cursor;
while (true) {
v_3 = sbp.cursor;
if (sbp.in_grouping(g_v, 97, 249)) {
sbp.bra = sbp.cursor;
v_4 = sbp.cursor;
if (habr1("u", "U", v_3))
break;
sbp.cursor = v_4;
if (habr1("i", "I", v_3))
break;
}
sbp.cursor = v_3;
if (sbp.cursor >= sbp.limit) {
sbp.cursor = v_2;
return;
}
sbp.cursor++;
}
}
}
function habr2(v_1) {
sbp.cursor = v_1;
if (!sbp.in_grouping(g_v, 97, 249))
return false;
while (!sbp.out_grouping(g_v, 97, 249)) {
if (sbp.cursor >= sbp.limit)
return false;
sbp.cursor++;
}
return true;
}
function habr3() {
if (sbp.in_grouping(g_v, 97, 249)) {
var v_1 = sbp.cursor;
if (sbp.out_grouping(g_v, 97, 249)) {
while (!sbp.in_grouping(g_v, 97, 249)) {
if (sbp.cursor >= sbp.limit)
return habr2(v_1);
sbp.cursor++;
}
return true;
}
return habr2(v_1);
}
return false;
}
function habr4() {
var v_1 = sbp.cursor,
v_2;
if (!habr3()) {
sbp.cursor = v_1;
if (!sbp.out_grouping(g_v, 97, 249))
return;
v_2 = sbp.cursor;
if (sbp.out_grouping(g_v, 97, 249)) {
while (!sbp.in_grouping(g_v, 97, 249)) {
if (sbp.cursor >= sbp.limit) {
sbp.cursor = v_2;
if (sbp.in_grouping(g_v, 97, 249) && sbp.cursor < sbp.limit)
sbp.cursor++;
return;
}
sbp.cursor++;
}
I_pV = sbp.cursor;
return;
}
sbp.cursor = v_2;
if (!sbp.in_grouping(g_v, 97, 249) || sbp.cursor >= sbp.limit)
return;
sbp.cursor++;
}
I_pV = sbp.cursor;
}
function habr5() {
while (!sbp.in_grouping(g_v, 97, 249)) {
if (sbp.cursor >= sbp.limit)
return false;
sbp.cursor++;
}
while (!sbp.out_grouping(g_v, 97, 249)) {
if (sbp.cursor >= sbp.limit)
return false;
sbp.cursor++;
}
return true;
}
function r_mark_regions() {
var v_1 = sbp.cursor;
I_pV = sbp.limit;
I_p1 = I_pV;
I_p2 = I_pV;
habr4();
sbp.cursor = v_1;
if (habr5()) {
I_p1 = sbp.cursor;
if (habr5())
I_p2 = sbp.cursor;
}
}
function r_postlude() {
var among_var;
while (true) {
sbp.bra = sbp.cursor;
among_var = sbp.find_among(a_1, 3);
if (!among_var)
break;
sbp.ket = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_from("i");
break;
case 2:
sbp.slice_from("u");
break;
case 3:
if (sbp.cursor >= sbp.limit)
return;
sbp.cursor++;
break;
}
}
}
function r_RV() {
return I_pV <= sbp.cursor;
}
function r_R1() {
return I_p1 <= sbp.cursor;
}
function r_R2() {
return I_p2 <= sbp.cursor;
}
function r_attached_pronoun() {
var among_var;
sbp.ket = sbp.cursor;
if (sbp.find_among_b(a_2, 37)) {
sbp.bra = sbp.cursor;
among_var = sbp.find_among_b(a_3, 5);
if (among_var && r_RV()) {
switch (among_var) {
case 1:
sbp.slice_del();
break;
case 2:
sbp.slice_from("e");
break;
}
}
}
}
function r_standard_suffix() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_6, 51);
if (!among_var)
return false;
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
if (!r_R2())
return false;
sbp.slice_del();
break;
case 2:
if (!r_R2())
return false;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, "ic")) {
sbp.bra = sbp.cursor;
if (r_R2())
sbp.slice_del();
}
break;
case 3:
if (!r_R2())
return false;
sbp.slice_from("log");
break;
case 4:
if (!r_R2())
return false;
sbp.slice_from("u");
break;
case 5:
if (!r_R2())
return false;
sbp.slice_from("ente");
break;
case 6:
if (!r_RV())
return false;
sbp.slice_del();
break;
case 7:
if (!r_R1())
return false;
sbp.slice_del();
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_4, 4);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R2()) {
sbp.slice_del();
if (among_var == 1) {
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, "at")) {
sbp.bra = sbp.cursor;
if (r_R2())
sbp.slice_del();
}
}
}
}
break;
case 8:
if (!r_R2())
return false;
sbp.slice_del();
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_5, 3);
if (among_var) {
sbp.bra = sbp.cursor;
if (among_var == 1)
if (r_R2())
sbp.slice_del();
}
break;
case 9:
if (!r_R2())
return false;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, "at")) {
sbp.bra = sbp.cursor;
if (r_R2()) {
sbp.slice_del();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, "ic")) {
sbp.bra = sbp.cursor;
if (r_R2())
sbp.slice_del();
}
}
}
break;
}
return true;
}
function r_verb_suffix() {
var among_var, v_1;
if (sbp.cursor >= I_pV) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_pV;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_7, 87);
if (among_var) {
sbp.bra = sbp.cursor;
if (among_var == 1)
sbp.slice_del();
}
sbp.limit_backward = v_1;
}
}
function habr6() {
var v_1 = sbp.limit - sbp.cursor;
sbp.ket = sbp.cursor;
if (sbp.in_grouping_b(g_AEIO, 97, 242)) {
sbp.bra = sbp.cursor;
if (r_RV()) {
sbp.slice_del();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(1, "i")) {
sbp.bra = sbp.cursor;
if (r_RV()) {
sbp.slice_del();
return;
}
}
}
}
sbp.cursor = sbp.limit - v_1;
}
function r_vowel_suffix() {
habr6();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(1, "h")) {
sbp.bra = sbp.cursor;
if (sbp.in_grouping_b(g_CG, 99, 103))
if (r_RV())
sbp.slice_del();
}
}
this.stem = function() {
var v_1 = sbp.cursor;
r_prelude();
sbp.cursor = v_1;
r_mark_regions();
sbp.limit_backward = v_1;
sbp.cursor = sbp.limit;
r_attached_pronoun();
sbp.cursor = sbp.limit;
if (!r_standard_suffix()) {
sbp.cursor = sbp.limit;
r_verb_suffix();
}
sbp.cursor = sbp.limit;
r_vowel_suffix();
sbp.cursor = sbp.limit_backward;
r_postlude();
return true;
}
};
/* and return a function that stems a word for the current locale */
return function(word) {
st.setCurrent(word);
st.stem();
return st.getCurrent();
}
})();
lunr.Pipeline.registerFunction(lunr.it.stemmer, 'stemmer-it');
/* stop word filter function */
lunr.it.stopWordFilter = function(token) {
if (lunr.it.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.it.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.it.stopWordFilter.stopWords.length = 280;
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
lunr.it.stopWordFilter.stopWords.elements = ' a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è'.split(' ');
lunr.Pipeline.registerFunction(lunr.it.stopWordFilter, 'stopWordFilter-it');
};
}))
\ No newline at end of file
/*!
* Lunr languages, `Japanese` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Chad Liu
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function() {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.jp = function() {
this.pipeline.reset();
this.pipeline.add(
lunr.jp.stopWordFilter,
lunr.jp.stemmer
);
// change the tokenizer for japanese one
lunr.tokenizer = lunr.jp.tokenizer;
};
var segmenter = new TinySegmenter(); // インスタンス生成
lunr.jp.tokenizer = function (obj) {
if (!arguments.length || obj == null || obj == undefined) return []
if (Array.isArray(obj)) return obj.map(function (t) { return t.toLowerCase() })
var str = obj.toString().replace(/^\s+/, '')
for (var i = str.length - 1; i >= 0; i--) {
if (/\S/.test(str.charAt(i))) {
str = str.substring(0, i + 1)
break
}
}
var segs = segmenter.segment(str); // 単語の配列が返る
return segs.filter(function (token) {
return !!token
})
.map(function (token) {
return token
})
}
/* lunr stemmer function */
lunr.jp.stemmer = (function() {
/* TODO japanese stemmer */
return function(word) {
return word;
}
})();
lunr.Pipeline.registerFunction(lunr.jp.stemmer, 'stemmer-jp');
/* stop word filter function */
lunr.jp.stopWordFilter = function(token) {
if (lunr.jp.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.jp.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.jp.stopWordFilter.stopWords.length = 45;
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
// stopword for japanese is from http://www.ranks.nl/stopwords/japanese
lunr.jp.stopWordFilter.stopWords.elements = ' これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし'.split(' ');
lunr.Pipeline.registerFunction(lunr.jp.stopWordFilter, 'stopWordFilter-jp');
};
}))
\ No newline at end of file
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function () {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* Set up the pipeline for indexing content in multiple languages. The
corresponding lunr.{lang} files must be loaded before calling this
function; English ('en') is built in.
Returns: a lunr plugin for use in your indexer.
Known drawback: every word will be stemmed with stemmers for every
language. This could mean that sometimes words that have the same
stemming root will not be stemmed as such.
*/
lunr.multiLanguage = function(/* lang1, lang2, ... */) {
var languages = Array.prototype.slice.call(arguments);
var nameSuffix = languages.join('-');
var wordCharacters = "";
var pipeline = [];
for (var i = 0; i < languages.length; ++i) {
if (languages[i] == 'en') {
wordCharacters += '\\w';
pipeline.unshift(lunr.stopWordFilter);
pipeline.push(lunr.stemmer);
} else {
wordCharacters += lunr[languages[i]].wordCharacters;
pipeline.unshift(lunr[languages[i]].stopWordFilter);
pipeline.push(lunr[languages[i]].stemmer);
}
};
var multiTrimmer = lunr.trimmerSupport.generateTrimmer(wordCharacters);
lunr.Pipeline.registerFunction(multiTrimmer, 'lunr-multi-trimmer-' + nameSuffix);
pipeline.unshift(multiTrimmer);
return function() {
this.pipeline.reset();
this.pipeline.add.apply(this.pipeline, pipeline);
};
}
}
}));
/*!
* Lunr languages, `Norwegian` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function() {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.no = function() {
this.pipeline.reset();
this.pipeline.add(
lunr.no.trimmer,
lunr.no.stopWordFilter,
lunr.no.stemmer
);
};
/* lunr trimmer function */
lunr.no.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A";
lunr.no.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.no.wordCharacters);
lunr.Pipeline.registerFunction(lunr.no.trimmer, 'trimmer-no');
/* lunr stemmer function */
lunr.no.stemmer = (function() {
/* create the wrapped stemmer object */
var Among = lunr.stemmerSupport.Among,
SnowballProgram = lunr.stemmerSupport.SnowballProgram,
st = new function NorwegianStemmer() {
var a_0 = [new Among("a", -1, 1), new Among("e", -1, 1),
new Among("ede", 1, 1), new Among("ande", 1, 1),
new Among("ende", 1, 1), new Among("ane", 1, 1),
new Among("ene", 1, 1), new Among("hetene", 6, 1),
new Among("erte", 1, 3), new Among("en", -1, 1),
new Among("heten", 9, 1), new Among("ar", -1, 1),
new Among("er", -1, 1), new Among("heter", 12, 1),
new Among("s", -1, 2), new Among("as", 14, 1),
new Among("es", 14, 1), new Among("edes", 16, 1),
new Among("endes", 16, 1), new Among("enes", 16, 1),
new Among("hetenes", 19, 1), new Among("ens", 14, 1),
new Among("hetens", 21, 1), new Among("ers", 14, 1),
new Among("ets", 14, 1), new Among("et", -1, 1),
new Among("het", 25, 1), new Among("ert", -1, 3),
new Among("ast", -1, 1)
],
a_1 = [new Among("dt", -1, -1),
new Among("vt", -1, -1)
],
a_2 = [new Among("leg", -1, 1),
new Among("eleg", 0, 1), new Among("ig", -1, 1),
new Among("eig", 2, 1), new Among("lig", 2, 1),
new Among("elig", 4, 1), new Among("els", -1, 1),
new Among("lov", -1, 1), new Among("elov", 7, 1),
new Among("slov", 7, 1), new Among("hetslov", 9, 1)
],
g_v = [17,
65, 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 128
],
g_s_ending = [
119, 125, 149, 1
],
I_x, I_p1, sbp = new SnowballProgram();
this.setCurrent = function(word) {
sbp.setCurrent(word);
};
this.getCurrent = function() {
return sbp.getCurrent();
};
function r_mark_regions() {
var v_1, c = sbp.cursor + 3;
I_p1 = sbp.limit;
if (0 <= c || c <= sbp.limit) {
I_x = c;
while (true) {
v_1 = sbp.cursor;
if (sbp.in_grouping(g_v, 97, 248)) {
sbp.cursor = v_1;
break;
}
if (v_1 >= sbp.limit)
return;
sbp.cursor = v_1 + 1;
}
while (!sbp.out_grouping(g_v, 97, 248)) {
if (sbp.cursor >= sbp.limit)
return;
sbp.cursor++;
}
I_p1 = sbp.cursor;
if (I_p1 < I_x)
I_p1 = I_x;
}
}
function r_main_suffix() {
var among_var, v_1, v_2;
if (sbp.cursor >= I_p1) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_p1;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_0, 29);
sbp.limit_backward = v_1;
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_del();
break;
case 2:
v_2 = sbp.limit - sbp.cursor;
if (sbp.in_grouping_b(g_s_ending, 98, 122))
sbp.slice_del();
else {
sbp.cursor = sbp.limit - v_2;
if (sbp.eq_s_b(1, "k") && sbp.out_grouping_b(g_v, 97, 248))
sbp.slice_del();
}
break;
case 3:
sbp.slice_from("er");
break;
}
}
}
}
function r_consonant_pair() {
var v_1 = sbp.limit - sbp.cursor,
v_2;
if (sbp.cursor >= I_p1) {
v_2 = sbp.limit_backward;
sbp.limit_backward = I_p1;
sbp.ket = sbp.cursor;
if (sbp.find_among_b(a_1, 2)) {
sbp.bra = sbp.cursor;
sbp.limit_backward = v_2;
sbp.cursor = sbp.limit - v_1;
if (sbp.cursor > sbp.limit_backward) {
sbp.cursor--;
sbp.bra = sbp.cursor;
sbp.slice_del();
}
} else
sbp.limit_backward = v_2;
}
}
function r_other_suffix() {
var among_var, v_1;
if (sbp.cursor >= I_p1) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_p1;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_2, 11);
if (among_var) {
sbp.bra = sbp.cursor;
sbp.limit_backward = v_1;
if (among_var == 1)
sbp.slice_del();
} else
sbp.limit_backward = v_1;
}
}
this.stem = function() {
var v_1 = sbp.cursor;
r_mark_regions();
sbp.limit_backward = v_1;
sbp.cursor = sbp.limit;
r_main_suffix();
sbp.cursor = sbp.limit;
r_consonant_pair();
sbp.cursor = sbp.limit;
r_other_suffix();
return true;
}
};
/* and return a function that stems a word for the current locale */
return function(word) {
st.setCurrent(word);
st.stem();
return st.getCurrent();
}
})();
lunr.Pipeline.registerFunction(lunr.no.stemmer, 'stemmer-no');
/* stop word filter function */
lunr.no.stopWordFilter = function(token) {
if (lunr.no.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.no.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.no.stopWordFilter.stopWords.length = 177;
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
lunr.no.stopWordFilter.stopWords.elements = ' alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å'.split(' ');
lunr.Pipeline.registerFunction(lunr.no.stopWordFilter, 'stopWordFilter-no');
};
}))
\ No newline at end of file
/*!
* Lunr languages, `Portuguese` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function() {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.pt = function() {
this.pipeline.reset();
this.pipeline.add(
lunr.pt.trimmer,
lunr.pt.stopWordFilter,
lunr.pt.stemmer
);
};
/* lunr trimmer function */
lunr.pt.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A";
lunr.pt.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.pt.wordCharacters);
lunr.Pipeline.registerFunction(lunr.pt.trimmer, 'trimmer-pt');
/* lunr stemmer function */
lunr.pt.stemmer = (function() {
/* create the wrapped stemmer object */
var Among = lunr.stemmerSupport.Among,
SnowballProgram = lunr.stemmerSupport.SnowballProgram,
st = new function PortugueseStemmer() {
var a_0 = [new Among("", -1, 3), new Among("\u00E3", 0, 1),
new Among("\u00F5", 0, 2)
],
a_1 = [new Among("", -1, 3),
new Among("a~", 0, 1), new Among("o~", 0, 2)
],
a_2 = [
new Among("ic", -1, -1), new Among("ad", -1, -1),
new Among("os", -1, -1), new Among("iv", -1, 1)
],
a_3 = [
new Among("ante", -1, 1), new Among("avel", -1, 1),
new Among("\u00EDvel", -1, 1)
],
a_4 = [new Among("ic", -1, 1),
new Among("abil", -1, 1), new Among("iv", -1, 1)
],
a_5 = [
new Among("ica", -1, 1), new Among("\u00E2ncia", -1, 1),
new Among("\u00EAncia", -1, 4), new Among("ira", -1, 9),
new Among("adora", -1, 1), new Among("osa", -1, 1),
new Among("ista", -1, 1), new Among("iva", -1, 8),
new Among("eza", -1, 1), new Among("log\u00EDa", -1, 2),
new Among("idade", -1, 7), new Among("ante", -1, 1),
new Among("mente", -1, 6), new Among("amente", 12, 5),
new Among("\u00E1vel", -1, 1), new Among("\u00EDvel", -1, 1),
new Among("uci\u00F3n", -1, 3), new Among("ico", -1, 1),
new Among("ismo", -1, 1), new Among("oso", -1, 1),
new Among("amento", -1, 1), new Among("imento", -1, 1),
new Among("ivo", -1, 8), new Among("a\u00E7a~o", -1, 1),
new Among("ador", -1, 1), new Among("icas", -1, 1),
new Among("\u00EAncias", -1, 4), new Among("iras", -1, 9),
new Among("adoras", -1, 1), new Among("osas", -1, 1),
new Among("istas", -1, 1), new Among("ivas", -1, 8),
new Among("ezas", -1, 1), new Among("log\u00EDas", -1, 2),
new Among("idades", -1, 7), new Among("uciones", -1, 3),
new Among("adores", -1, 1), new Among("antes", -1, 1),
new Among("a\u00E7o~es", -1, 1), new Among("icos", -1, 1),
new Among("ismos", -1, 1), new Among("osos", -1, 1),
new Among("amentos", -1, 1), new Among("imentos", -1, 1),
new Among("ivos", -1, 8)
],
a_6 = [new Among("ada", -1, 1),
new Among("ida", -1, 1), new Among("ia", -1, 1),
new Among("aria", 2, 1), new Among("eria", 2, 1),
new Among("iria", 2, 1), new Among("ara", -1, 1),
new Among("era", -1, 1), new Among("ira", -1, 1),
new Among("ava", -1, 1), new Among("asse", -1, 1),
new Among("esse", -1, 1), new Among("isse", -1, 1),
new Among("aste", -1, 1), new Among("este", -1, 1),
new Among("iste", -1, 1), new Among("ei", -1, 1),
new Among("arei", 16, 1), new Among("erei", 16, 1),
new Among("irei", 16, 1), new Among("am", -1, 1),
new Among("iam", 20, 1), new Among("ariam", 21, 1),
new Among("eriam", 21, 1), new Among("iriam", 21, 1),
new Among("aram", 20, 1), new Among("eram", 20, 1),
new Among("iram", 20, 1), new Among("avam", 20, 1),
new Among("em", -1, 1), new Among("arem", 29, 1),
new Among("erem", 29, 1), new Among("irem", 29, 1),
new Among("assem", 29, 1), new Among("essem", 29, 1),
new Among("issem", 29, 1), new Among("ado", -1, 1),
new Among("ido", -1, 1), new Among("ando", -1, 1),
new Among("endo", -1, 1), new Among("indo", -1, 1),
new Among("ara~o", -1, 1), new Among("era~o", -1, 1),
new Among("ira~o", -1, 1), new Among("ar", -1, 1),
new Among("er", -1, 1), new Among("ir", -1, 1),
new Among("as", -1, 1), new Among("adas", 47, 1),
new Among("idas", 47, 1), new Among("ias", 47, 1),
new Among("arias", 50, 1), new Among("erias", 50, 1),
new Among("irias", 50, 1), new Among("aras", 47, 1),
new Among("eras", 47, 1), new Among("iras", 47, 1),
new Among("avas", 47, 1), new Among("es", -1, 1),
new Among("ardes", 58, 1), new Among("erdes", 58, 1),
new Among("irdes", 58, 1), new Among("ares", 58, 1),
new Among("eres", 58, 1), new Among("ires", 58, 1),
new Among("asses", 58, 1), new Among("esses", 58, 1),
new Among("isses", 58, 1), new Among("astes", 58, 1),
new Among("estes", 58, 1), new Among("istes", 58, 1),
new Among("is", -1, 1), new Among("ais", 71, 1),
new Among("eis", 71, 1), new Among("areis", 73, 1),
new Among("ereis", 73, 1), new Among("ireis", 73, 1),
new Among("\u00E1reis", 73, 1), new Among("\u00E9reis", 73, 1),
new Among("\u00EDreis", 73, 1), new Among("\u00E1sseis", 73, 1),
new Among("\u00E9sseis", 73, 1), new Among("\u00EDsseis", 73, 1),
new Among("\u00E1veis", 73, 1), new Among("\u00EDeis", 73, 1),
new Among("ar\u00EDeis", 84, 1), new Among("er\u00EDeis", 84, 1),
new Among("ir\u00EDeis", 84, 1), new Among("ados", -1, 1),
new Among("idos", -1, 1), new Among("amos", -1, 1),
new Among("\u00E1ramos", 90, 1), new Among("\u00E9ramos", 90, 1),
new Among("\u00EDramos", 90, 1), new Among("\u00E1vamos", 90, 1),
new Among("\u00EDamos", 90, 1), new Among("ar\u00EDamos", 95, 1),
new Among("er\u00EDamos", 95, 1), new Among("ir\u00EDamos", 95, 1),
new Among("emos", -1, 1), new Among("aremos", 99, 1),
new Among("eremos", 99, 1), new Among("iremos", 99, 1),
new Among("\u00E1ssemos", 99, 1), new Among("\u00EAssemos", 99, 1),
new Among("\u00EDssemos", 99, 1), new Among("imos", -1, 1),
new Among("armos", -1, 1), new Among("ermos", -1, 1),
new Among("irmos", -1, 1), new Among("\u00E1mos", -1, 1),
new Among("ar\u00E1s", -1, 1), new Among("er\u00E1s", -1, 1),
new Among("ir\u00E1s", -1, 1), new Among("eu", -1, 1),
new Among("iu", -1, 1), new Among("ou", -1, 1),
new Among("ar\u00E1", -1, 1), new Among("er\u00E1", -1, 1),
new Among("ir\u00E1", -1, 1)
],
a_7 = [new Among("a", -1, 1),
new Among("i", -1, 1), new Among("o", -1, 1),
new Among("os", -1, 1), new Among("\u00E1", -1, 1),
new Among("\u00ED", -1, 1), new Among("\u00F3", -1, 1)
],
a_8 = [
new Among("e", -1, 1), new Among("\u00E7", -1, 2),
new Among("\u00E9", -1, 1), new Among("\u00EA", -1, 1)
],
g_v = [17,
65, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 12, 2
],
I_p2, I_p1, I_pV, sbp = new SnowballProgram();
this.setCurrent = function(word) {
sbp.setCurrent(word);
};
this.getCurrent = function() {
return sbp.getCurrent();
};
function r_prelude() {
var among_var;
while (true) {
sbp.bra = sbp.cursor;
among_var = sbp.find_among(a_0, 3);
if (among_var) {
sbp.ket = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_from("a~");
continue;
case 2:
sbp.slice_from("o~");
continue;
case 3:
if (sbp.cursor >= sbp.limit)
break;
sbp.cursor++;
continue;
}
}
break;
}
}
function habr2() {
if (sbp.out_grouping(g_v, 97, 250)) {
while (!sbp.in_grouping(g_v, 97, 250)) {
if (sbp.cursor >= sbp.limit)
return true;
sbp.cursor++;
}
return false;
}
return true;
}
function habr3() {
if (sbp.in_grouping(g_v, 97, 250)) {
while (!sbp.out_grouping(g_v, 97, 250)) {
if (sbp.cursor >= sbp.limit)
return false;
sbp.cursor++;
}
}
I_pV = sbp.cursor;
return true;
}
function habr4() {
var v_1 = sbp.cursor,
v_2, v_3;
if (sbp.in_grouping(g_v, 97, 250)) {
v_2 = sbp.cursor;
if (habr2()) {
sbp.cursor = v_2;
if (habr3())
return;
} else
I_pV = sbp.cursor;
}
sbp.cursor = v_1;
if (sbp.out_grouping(g_v, 97, 250)) {
v_3 = sbp.cursor;
if (habr2()) {
sbp.cursor = v_3;
if (!sbp.in_grouping(g_v, 97, 250) || sbp.cursor >= sbp.limit)
return;
sbp.cursor++;
}
I_pV = sbp.cursor;
}
}
function habr5() {
while (!sbp.in_grouping(g_v, 97, 250)) {
if (sbp.cursor >= sbp.limit)
return false;
sbp.cursor++;
}
while (!sbp.out_grouping(g_v, 97, 250)) {
if (sbp.cursor >= sbp.limit)
return false;
sbp.cursor++;
}
return true;
}
function r_mark_regions() {
var v_1 = sbp.cursor;
I_pV = sbp.limit;
I_p1 = I_pV;
I_p2 = I_pV;
habr4();
sbp.cursor = v_1;
if (habr5()) {
I_p1 = sbp.cursor;
if (habr5())
I_p2 = sbp.cursor;
}
}
function r_postlude() {
var among_var;
while (true) {
sbp.bra = sbp.cursor;
among_var = sbp.find_among(a_1, 3);
if (among_var) {
sbp.ket = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_from("\u00E3");
continue;
case 2:
sbp.slice_from("\u00F5");
continue;
case 3:
if (sbp.cursor >= sbp.limit)
break;
sbp.cursor++;
continue;
}
}
break;
}
}
function r_RV() {
return I_pV <= sbp.cursor;
}
function r_R1() {
return I_p1 <= sbp.cursor;
}
function r_R2() {
return I_p2 <= sbp.cursor;
}
function r_standard_suffix() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_5, 45);
if (!among_var)
return false;
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
if (!r_R2())
return false;
sbp.slice_del();
break;
case 2:
if (!r_R2())
return false;
sbp.slice_from("log");
break;
case 3:
if (!r_R2())
return false;
sbp.slice_from("u");
break;
case 4:
if (!r_R2())
return false;
sbp.slice_from("ente");
break;
case 5:
if (!r_R1())
return false;
sbp.slice_del();
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_2, 4);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R2()) {
sbp.slice_del();
if (among_var == 1) {
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, "at")) {
sbp.bra = sbp.cursor;
if (r_R2())
sbp.slice_del();
}
}
}
}
break;
case 6:
if (!r_R2())
return false;
sbp.slice_del();
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_3, 3);
if (among_var) {
sbp.bra = sbp.cursor;
if (among_var == 1)
if (r_R2())
sbp.slice_del();
}
break;
case 7:
if (!r_R2())
return false;
sbp.slice_del();
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_4, 3);
if (among_var) {
sbp.bra = sbp.cursor;
if (among_var == 1)
if (r_R2())
sbp.slice_del();
}
break;
case 8:
if (!r_R2())
return false;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(2, "at")) {
sbp.bra = sbp.cursor;
if (r_R2())
sbp.slice_del();
}
break;
case 9:
if (!r_RV() || !sbp.eq_s_b(1, "e"))
return false;
sbp.slice_from("ir");
break;
}
return true;
}
function r_verb_suffix() {
var among_var, v_1;
if (sbp.cursor >= I_pV) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_pV;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_6, 120);
if (among_var) {
sbp.bra = sbp.cursor;
if (among_var == 1)
sbp.slice_del();
sbp.limit_backward = v_1;
return true;
}
sbp.limit_backward = v_1;
}
return false;
}
function r_residual_suffix() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_7, 7);
if (among_var) {
sbp.bra = sbp.cursor;
if (among_var == 1)
if (r_RV())
sbp.slice_del();
}
}
function habr6(c1, c2) {
if (sbp.eq_s_b(1, c1)) {
sbp.bra = sbp.cursor;
var v_1 = sbp.limit - sbp.cursor;
if (sbp.eq_s_b(1, c2)) {
sbp.cursor = sbp.limit - v_1;
if (r_RV())
sbp.slice_del();
return false;
}
}
return true;
}
function r_residual_form() {
var among_var, v_1, v_2, v_3;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_8, 4);
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
if (r_RV()) {
sbp.slice_del();
sbp.ket = sbp.cursor;
v_1 = sbp.limit - sbp.cursor;
if (habr6("u", "g"))
habr6("i", "c")
}
break;
case 2:
sbp.slice_from("c");
break;
}
}
}
function habr1() {
if (!r_standard_suffix()) {
sbp.cursor = sbp.limit;
if (!r_verb_suffix()) {
sbp.cursor = sbp.limit;
r_residual_suffix();
return;
}
}
sbp.cursor = sbp.limit;
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(1, "i")) {
sbp.bra = sbp.cursor;
if (sbp.eq_s_b(1, "c")) {
sbp.cursor = sbp.limit;
if (r_RV())
sbp.slice_del();
}
}
}
this.stem = function() {
var v_1 = sbp.cursor;
r_prelude();
sbp.cursor = v_1;
r_mark_regions();
sbp.limit_backward = v_1;
sbp.cursor = sbp.limit;
habr1();
sbp.cursor = sbp.limit;
r_residual_form();
sbp.cursor = sbp.limit_backward;
r_postlude();
return true;
}
};
/* and return a function that stems a word for the current locale */
return function(word) {
st.setCurrent(word);
st.stem();
return st.getCurrent();
}
})();
lunr.Pipeline.registerFunction(lunr.pt.stemmer, 'stemmer-pt');
/* stop word filter function */
lunr.pt.stopWordFilter = function(token) {
if (lunr.pt.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.pt.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.pt.stopWordFilter.stopWords.length = 204;
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
lunr.pt.stopWordFilter.stopWords.elements = ' a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos'.split(' ');
lunr.Pipeline.registerFunction(lunr.pt.stopWordFilter, 'stopWordFilter-pt');
};
}))
\ No newline at end of file
/*!
* Lunr languages, `Romanian` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function() {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.ro = function() {
this.pipeline.reset();
this.pipeline.add(
lunr.ro.trimmer,
lunr.ro.stopWordFilter,
lunr.ro.stemmer
);
};
/* lunr trimmer function */
lunr.ro.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A";
lunr.ro.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.ro.wordCharacters);
lunr.Pipeline.registerFunction(lunr.ro.trimmer, 'trimmer-ro');
/* lunr stemmer function */
lunr.ro.stemmer = (function() {
/* create the wrapped stemmer object */
var Among = lunr.stemmerSupport.Among,
SnowballProgram = lunr.stemmerSupport.SnowballProgram,
st = new function RomanianStemmer() {
var a_0 = [new Among("", -1, 3), new Among("I", 0, 1), new Among("U", 0, 2)],
a_1 = [
new Among("ea", -1, 3), new Among("a\u0163ia", -1, 7),
new Among("aua", -1, 2), new Among("iua", -1, 4),
new Among("a\u0163ie", -1, 7), new Among("ele", -1, 3),
new Among("ile", -1, 5), new Among("iile", 6, 4),
new Among("iei", -1, 4), new Among("atei", -1, 6),
new Among("ii", -1, 4), new Among("ului", -1, 1),
new Among("ul", -1, 1), new Among("elor", -1, 3),
new Among("ilor", -1, 4), new Among("iilor", 14, 4)
],
a_2 = [
new Among("icala", -1, 4), new Among("iciva", -1, 4),
new Among("ativa", -1, 5), new Among("itiva", -1, 6),
new Among("icale", -1, 4), new Among("a\u0163iune", -1, 5),
new Among("i\u0163iune", -1, 6), new Among("atoare", -1, 5),
new Among("itoare", -1, 6), new Among("\u0103toare", -1, 5),
new Among("icitate", -1, 4), new Among("abilitate", -1, 1),
new Among("ibilitate", -1, 2), new Among("ivitate", -1, 3),
new Among("icive", -1, 4), new Among("ative", -1, 5),
new Among("itive", -1, 6), new Among("icali", -1, 4),
new Among("atori", -1, 5), new Among("icatori", 18, 4),
new Among("itori", -1, 6), new Among("\u0103tori", -1, 5),
new Among("icitati", -1, 4), new Among("abilitati", -1, 1),
new Among("ivitati", -1, 3), new Among("icivi", -1, 4),
new Among("ativi", -1, 5), new Among("itivi", -1, 6),
new Among("icit\u0103i", -1, 4), new Among("abilit\u0103i", -1, 1),
new Among("ivit\u0103i", -1, 3),
new Among("icit\u0103\u0163i", -1, 4),
new Among("abilit\u0103\u0163i", -1, 1),
new Among("ivit\u0103\u0163i", -1, 3), new Among("ical", -1, 4),
new Among("ator", -1, 5), new Among("icator", 35, 4),
new Among("itor", -1, 6), new Among("\u0103tor", -1, 5),
new Among("iciv", -1, 4), new Among("ativ", -1, 5),
new Among("itiv", -1, 6), new Among("ical\u0103", -1, 4),
new Among("iciv\u0103", -1, 4), new Among("ativ\u0103", -1, 5),
new Among("itiv\u0103", -1, 6)
],
a_3 = [new Among("ica", -1, 1),
new Among("abila", -1, 1), new Among("ibila", -1, 1),
new Among("oasa", -1, 1), new Among("ata", -1, 1),
new Among("ita", -1, 1), new Among("anta", -1, 1),
new Among("ista", -1, 3), new Among("uta", -1, 1),
new Among("iva", -1, 1), new Among("ic", -1, 1),
new Among("ice", -1, 1), new Among("abile", -1, 1),
new Among("ibile", -1, 1), new Among("isme", -1, 3),
new Among("iune", -1, 2), new Among("oase", -1, 1),
new Among("ate", -1, 1), new Among("itate", 17, 1),
new Among("ite", -1, 1), new Among("ante", -1, 1),
new Among("iste", -1, 3), new Among("ute", -1, 1),
new Among("ive", -1, 1), new Among("ici", -1, 1),
new Among("abili", -1, 1), new Among("ibili", -1, 1),
new Among("iuni", -1, 2), new Among("atori", -1, 1),
new Among("osi", -1, 1), new Among("ati", -1, 1),
new Among("itati", 30, 1), new Among("iti", -1, 1),
new Among("anti", -1, 1), new Among("isti", -1, 3),
new Among("uti", -1, 1), new Among("i\u015Fti", -1, 3),
new Among("ivi", -1, 1), new Among("it\u0103i", -1, 1),
new Among("o\u015Fi", -1, 1), new Among("it\u0103\u0163i", -1, 1),
new Among("abil", -1, 1), new Among("ibil", -1, 1),
new Among("ism", -1, 3), new Among("ator", -1, 1),
new Among("os", -1, 1), new Among("at", -1, 1),
new Among("it", -1, 1), new Among("ant", -1, 1),
new Among("ist", -1, 3), new Among("ut", -1, 1),
new Among("iv", -1, 1), new Among("ic\u0103", -1, 1),
new Among("abil\u0103", -1, 1), new Among("ibil\u0103", -1, 1),
new Among("oas\u0103", -1, 1), new Among("at\u0103", -1, 1),
new Among("it\u0103", -1, 1), new Among("ant\u0103", -1, 1),
new Among("ist\u0103", -1, 3), new Among("ut\u0103", -1, 1),
new Among("iv\u0103", -1, 1)
],
a_4 = [new Among("ea", -1, 1),
new Among("ia", -1, 1), new Among("esc", -1, 1),
new Among("\u0103sc", -1, 1), new Among("ind", -1, 1),
new Among("\u00E2nd", -1, 1), new Among("are", -1, 1),
new Among("ere", -1, 1), new Among("ire", -1, 1),
new Among("\u00E2re", -1, 1), new Among("se", -1, 2),
new Among("ase", 10, 1), new Among("sese", 10, 2),
new Among("ise", 10, 1), new Among("use", 10, 1),
new Among("\u00E2se", 10, 1), new Among("e\u015Fte", -1, 1),
new Among("\u0103\u015Fte", -1, 1), new Among("eze", -1, 1),
new Among("ai", -1, 1), new Among("eai", 19, 1),
new Among("iai", 19, 1), new Among("sei", -1, 2),
new Among("e\u015Fti", -1, 1), new Among("\u0103\u015Fti", -1, 1),
new Among("ui", -1, 1), new Among("ezi", -1, 1),
new Among("\u00E2i", -1, 1), new Among("a\u015Fi", -1, 1),
new Among("se\u015Fi", -1, 2), new Among("ase\u015Fi", 29, 1),
new Among("sese\u015Fi", 29, 2), new Among("ise\u015Fi", 29, 1),
new Among("use\u015Fi", 29, 1),
new Among("\u00E2se\u015Fi", 29, 1), new Among("i\u015Fi", -1, 1),
new Among("u\u015Fi", -1, 1), new Among("\u00E2\u015Fi", -1, 1),
new Among("a\u0163i", -1, 2), new Among("ea\u0163i", 38, 1),
new Among("ia\u0163i", 38, 1), new Among("e\u0163i", -1, 2),
new Among("i\u0163i", -1, 2), new Among("\u00E2\u0163i", -1, 2),
new Among("ar\u0103\u0163i", -1, 1),
new Among("ser\u0103\u0163i", -1, 2),
new Among("aser\u0103\u0163i", 45, 1),
new Among("seser\u0103\u0163i", 45, 2),
new Among("iser\u0103\u0163i", 45, 1),
new Among("user\u0103\u0163i", 45, 1),
new Among("\u00E2ser\u0103\u0163i", 45, 1),
new Among("ir\u0103\u0163i", -1, 1),
new Among("ur\u0103\u0163i", -1, 1),
new Among("\u00E2r\u0103\u0163i", -1, 1), new Among("am", -1, 1),
new Among("eam", 54, 1), new Among("iam", 54, 1),
new Among("em", -1, 2), new Among("asem", 57, 1),
new Among("sesem", 57, 2), new Among("isem", 57, 1),
new Among("usem", 57, 1), new Among("\u00E2sem", 57, 1),
new Among("im", -1, 2), new Among("\u00E2m", -1, 2),
new Among("\u0103m", -1, 2), new Among("ar\u0103m", 65, 1),
new Among("ser\u0103m", 65, 2), new Among("aser\u0103m", 67, 1),
new Among("seser\u0103m", 67, 2), new Among("iser\u0103m", 67, 1),
new Among("user\u0103m", 67, 1),
new Among("\u00E2ser\u0103m", 67, 1),
new Among("ir\u0103m", 65, 1), new Among("ur\u0103m", 65, 1),
new Among("\u00E2r\u0103m", 65, 1), new Among("au", -1, 1),
new Among("eau", 76, 1), new Among("iau", 76, 1),
new Among("indu", -1, 1), new Among("\u00E2ndu", -1, 1),
new Among("ez", -1, 1), new Among("easc\u0103", -1, 1),
new Among("ar\u0103", -1, 1), new Among("ser\u0103", -1, 2),
new Among("aser\u0103", 84, 1), new Among("seser\u0103", 84, 2),
new Among("iser\u0103", 84, 1), new Among("user\u0103", 84, 1),
new Among("\u00E2ser\u0103", 84, 1), new Among("ir\u0103", -1, 1),
new Among("ur\u0103", -1, 1), new Among("\u00E2r\u0103", -1, 1),
new Among("eaz\u0103", -1, 1)
],
a_5 = [new Among("a", -1, 1),
new Among("e", -1, 1), new Among("ie", 1, 1),
new Among("i", -1, 1), new Among("\u0103", -1, 1)
],
g_v = [17, 65,
16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 32, 0, 0, 4
],
B_standard_suffix_removed, I_p2, I_p1, I_pV, sbp = new SnowballProgram();
this.setCurrent = function(word) {
sbp.setCurrent(word);
};
this.getCurrent = function() {
return sbp.getCurrent();
};
function habr1(c1, c2) {
if (sbp.eq_s(1, c1)) {
sbp.ket = sbp.cursor;
if (sbp.in_grouping(g_v, 97, 259))
sbp.slice_from(c2);
}
}
function r_prelude() {
var v_1, v_2;
while (true) {
v_1 = sbp.cursor;
if (sbp.in_grouping(g_v, 97, 259)) {
v_2 = sbp.cursor;
sbp.bra = v_2;
habr1("u", "U");
sbp.cursor = v_2;
habr1("i", "I");
}
sbp.cursor = v_1;
if (sbp.cursor >= sbp.limit) {
break;
}
sbp.cursor++;
}
}
function habr2() {
if (sbp.out_grouping(g_v, 97, 259)) {
while (!sbp.in_grouping(g_v, 97, 259)) {
if (sbp.cursor >= sbp.limit)
return true;
sbp.cursor++;
}
return false;
}
return true;
}
function habr3() {
if (sbp.in_grouping(g_v, 97, 259)) {
while (!sbp.out_grouping(g_v, 97, 259)) {
if (sbp.cursor >= sbp.limit)
return true;
sbp.cursor++;
}
}
return false;
}
function habr4() {
var v_1 = sbp.cursor,
v_2, v_3;
if (sbp.in_grouping(g_v, 97, 259)) {
v_2 = sbp.cursor;
if (habr2()) {
sbp.cursor = v_2;
if (!habr3()) {
I_pV = sbp.cursor;
return;
}
} else {
I_pV = sbp.cursor;
return;
}
}
sbp.cursor = v_1;
if (sbp.out_grouping(g_v, 97, 259)) {
v_3 = sbp.cursor;
if (habr2()) {
sbp.cursor = v_3;
if (sbp.in_grouping(g_v, 97, 259) && sbp.cursor < sbp.limit)
sbp.cursor++;
}
I_pV = sbp.cursor;
}
}
function habr5() {
while (!sbp.in_grouping(g_v, 97, 259)) {
if (sbp.cursor >= sbp.limit)
return false;
sbp.cursor++;
}
while (!sbp.out_grouping(g_v, 97, 259)) {
if (sbp.cursor >= sbp.limit)
return false;
sbp.cursor++;
}
return true;
}
function r_mark_regions() {
var v_1 = sbp.cursor;
I_pV = sbp.limit;
I_p1 = I_pV;
I_p2 = I_pV;
habr4();
sbp.cursor = v_1;
if (habr5()) {
I_p1 = sbp.cursor;
if (habr5())
I_p2 = sbp.cursor;
}
}
function r_postlude() {
var among_var;
while (true) {
sbp.bra = sbp.cursor;
among_var = sbp.find_among(a_0, 3);
if (among_var) {
sbp.ket = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_from("i");
continue;
case 2:
sbp.slice_from("u");
continue;
case 3:
if (sbp.cursor >= sbp.limit)
break;
sbp.cursor++;
continue;
}
}
break;
}
}
function r_RV() {
return I_pV <= sbp.cursor;
}
function r_R1() {
return I_p1 <= sbp.cursor;
}
function r_R2() {
return I_p2 <= sbp.cursor;
}
function r_step_0() {
var among_var, v_1;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_1, 16);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R1()) {
switch (among_var) {
case 1:
sbp.slice_del();
break;
case 2:
sbp.slice_from("a");
break;
case 3:
sbp.slice_from("e");
break;
case 4:
sbp.slice_from("i");
break;
case 5:
v_1 = sbp.limit - sbp.cursor;
if (!sbp.eq_s_b(2, "ab")) {
sbp.cursor = sbp.limit - v_1;
sbp.slice_from("i");
}
break;
case 6:
sbp.slice_from("at");
break;
case 7:
sbp.slice_from("a\u0163i");
break;
}
}
}
}
function r_combo_suffix() {
var among_var, v_1 = sbp.limit - sbp.cursor;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_2, 46);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R1()) {
switch (among_var) {
case 1:
sbp.slice_from("abil");
break;
case 2:
sbp.slice_from("ibil");
break;
case 3:
sbp.slice_from("iv");
break;
case 4:
sbp.slice_from("ic");
break;
case 5:
sbp.slice_from("at");
break;
case 6:
sbp.slice_from("it");
break;
}
B_standard_suffix_removed = true;
sbp.cursor = sbp.limit - v_1;
return true;
}
}
return false;
}
function r_standard_suffix() {
var among_var, v_1;
B_standard_suffix_removed = false;
while (true) {
v_1 = sbp.limit - sbp.cursor;
if (!r_combo_suffix()) {
sbp.cursor = sbp.limit - v_1;
break;
}
}
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_3, 62);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R2()) {
switch (among_var) {
case 1:
sbp.slice_del();
break;
case 2:
if (sbp.eq_s_b(1, "\u0163")) {
sbp.bra = sbp.cursor;
sbp.slice_from("t");
}
break;
case 3:
sbp.slice_from("ist");
break;
}
B_standard_suffix_removed = true;
}
}
}
function r_verb_suffix() {
var among_var, v_1, v_2;
if (sbp.cursor >= I_pV) {
v_1 = sbp.limit_backward;
sbp.limit_backward = I_pV;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_4, 94);
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
v_2 = sbp.limit - sbp.cursor;
if (!sbp.out_grouping_b(g_v, 97, 259)) {
sbp.cursor = sbp.limit - v_2;
if (!sbp.eq_s_b(1, "u"))
break;
}
case 2:
sbp.slice_del();
break;
}
}
sbp.limit_backward = v_1;
}
}
function r_vowel_suffix() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_5, 5);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_RV() && among_var == 1)
sbp.slice_del();
}
}
this.stem = function() {
var v_1 = sbp.cursor;
r_prelude();
sbp.cursor = v_1;
r_mark_regions();
sbp.limit_backward = v_1;
sbp.cursor = sbp.limit;
r_step_0();
sbp.cursor = sbp.limit;
r_standard_suffix();
sbp.cursor = sbp.limit;
if (!B_standard_suffix_removed) {
sbp.cursor = sbp.limit;
r_verb_suffix();
sbp.cursor = sbp.limit;
}
r_vowel_suffix();
sbp.cursor = sbp.limit_backward;
r_postlude();
return true;
}
};
/* and return a function that stems a word for the current locale */
return function(word) {
st.setCurrent(word);
st.stem();
return st.getCurrent();
}
})();
lunr.Pipeline.registerFunction(lunr.ro.stemmer, 'stemmer-ro');
/* stop word filter function */
lunr.ro.stopWordFilter = function(token) {
if (lunr.ro.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.ro.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.ro.stopWordFilter.stopWords.length = 282;
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
lunr.ro.stopWordFilter.stopWords.elements = ' acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie'.split(' ');
lunr.Pipeline.registerFunction(lunr.ro.stopWordFilter, 'stopWordFilter-ro');
};
}))
\ No newline at end of file
/*!
* Lunr languages, `Russian` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function() {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.ru = function() {
this.pipeline.reset();
this.pipeline.add(
lunr.ru.trimmer,
lunr.ru.stopWordFilter,
lunr.ru.stemmer
);
};
/* lunr trimmer function */
lunr.ru.wordCharacters = "\u0400-\u0484\u0487-\u052F\u1D2B\u1D78\u2DE0-\u2DFF\uA640-\uA69F\uFE2E\uFE2F";
lunr.ru.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.ru.wordCharacters);
lunr.Pipeline.registerFunction(lunr.ru.trimmer, 'trimmer-ru');
/* lunr stemmer function */
lunr.ru.stemmer = (function() {
/* create the wrapped stemmer object */
var Among = lunr.stemmerSupport.Among,
SnowballProgram = lunr.stemmerSupport.SnowballProgram,
st = new function RussianStemmer() {
var a_0 = [new Among("\u0432", -1, 1), new Among("\u0438\u0432", 0, 2),
new Among("\u044B\u0432", 0, 2),
new Among("\u0432\u0448\u0438", -1, 1),
new Among("\u0438\u0432\u0448\u0438", 3, 2),
new Among("\u044B\u0432\u0448\u0438", 3, 2),
new Among("\u0432\u0448\u0438\u0441\u044C", -1, 1),
new Among("\u0438\u0432\u0448\u0438\u0441\u044C", 6, 2),
new Among("\u044B\u0432\u0448\u0438\u0441\u044C", 6, 2)
],
a_1 = [
new Among("\u0435\u0435", -1, 1), new Among("\u0438\u0435", -1, 1),
new Among("\u043E\u0435", -1, 1), new Among("\u044B\u0435", -1, 1),
new Among("\u0438\u043C\u0438", -1, 1),
new Among("\u044B\u043C\u0438", -1, 1),
new Among("\u0435\u0439", -1, 1), new Among("\u0438\u0439", -1, 1),
new Among("\u043E\u0439", -1, 1), new Among("\u044B\u0439", -1, 1),
new Among("\u0435\u043C", -1, 1), new Among("\u0438\u043C", -1, 1),
new Among("\u043E\u043C", -1, 1), new Among("\u044B\u043C", -1, 1),
new Among("\u0435\u0433\u043E", -1, 1),
new Among("\u043E\u0433\u043E", -1, 1),
new Among("\u0435\u043C\u0443", -1, 1),
new Among("\u043E\u043C\u0443", -1, 1),
new Among("\u0438\u0445", -1, 1), new Among("\u044B\u0445", -1, 1),
new Among("\u0435\u044E", -1, 1), new Among("\u043E\u044E", -1, 1),
new Among("\u0443\u044E", -1, 1), new Among("\u044E\u044E", -1, 1),
new Among("\u0430\u044F", -1, 1), new Among("\u044F\u044F", -1, 1)
],
a_2 = [
new Among("\u0435\u043C", -1, 1), new Among("\u043D\u043D", -1, 1),
new Among("\u0432\u0448", -1, 1),
new Among("\u0438\u0432\u0448", 2, 2),
new Among("\u044B\u0432\u0448", 2, 2), new Among("\u0449", -1, 1),
new Among("\u044E\u0449", 5, 1),
new Among("\u0443\u044E\u0449", 6, 2)
],
a_3 = [
new Among("\u0441\u044C", -1, 1), new Among("\u0441\u044F", -1, 1)
],
a_4 = [
new Among("\u043B\u0430", -1, 1),
new Among("\u0438\u043B\u0430", 0, 2),
new Among("\u044B\u043B\u0430", 0, 2),
new Among("\u043D\u0430", -1, 1),
new Among("\u0435\u043D\u0430", 3, 2),
new Among("\u0435\u0442\u0435", -1, 1),
new Among("\u0438\u0442\u0435", -1, 2),
new Among("\u0439\u0442\u0435", -1, 1),
new Among("\u0435\u0439\u0442\u0435", 7, 2),
new Among("\u0443\u0439\u0442\u0435", 7, 2),
new Among("\u043B\u0438", -1, 1),
new Among("\u0438\u043B\u0438", 10, 2),
new Among("\u044B\u043B\u0438", 10, 2), new Among("\u0439", -1, 1),
new Among("\u0435\u0439", 13, 2), new Among("\u0443\u0439", 13, 2),
new Among("\u043B", -1, 1), new Among("\u0438\u043B", 16, 2),
new Among("\u044B\u043B", 16, 2), new Among("\u0435\u043C", -1, 1),
new Among("\u0438\u043C", -1, 2), new Among("\u044B\u043C", -1, 2),
new Among("\u043D", -1, 1), new Among("\u0435\u043D", 22, 2),
new Among("\u043B\u043E", -1, 1),
new Among("\u0438\u043B\u043E", 24, 2),
new Among("\u044B\u043B\u043E", 24, 2),
new Among("\u043D\u043E", -1, 1),
new Among("\u0435\u043D\u043E", 27, 2),
new Among("\u043D\u043D\u043E", 27, 1),
new Among("\u0435\u0442", -1, 1),
new Among("\u0443\u0435\u0442", 30, 2),
new Among("\u0438\u0442", -1, 2), new Among("\u044B\u0442", -1, 2),
new Among("\u044E\u0442", -1, 1),
new Among("\u0443\u044E\u0442", 34, 2),
new Among("\u044F\u0442", -1, 2), new Among("\u043D\u044B", -1, 1),
new Among("\u0435\u043D\u044B", 37, 2),
new Among("\u0442\u044C", -1, 1),
new Among("\u0438\u0442\u044C", 39, 2),
new Among("\u044B\u0442\u044C", 39, 2),
new Among("\u0435\u0448\u044C", -1, 1),
new Among("\u0438\u0448\u044C", -1, 2), new Among("\u044E", -1, 2),
new Among("\u0443\u044E", 44, 2)
],
a_5 = [
new Among("\u0430", -1, 1), new Among("\u0435\u0432", -1, 1),
new Among("\u043E\u0432", -1, 1), new Among("\u0435", -1, 1),
new Among("\u0438\u0435", 3, 1), new Among("\u044C\u0435", 3, 1),
new Among("\u0438", -1, 1), new Among("\u0435\u0438", 6, 1),
new Among("\u0438\u0438", 6, 1),
new Among("\u0430\u043C\u0438", 6, 1),
new Among("\u044F\u043C\u0438", 6, 1),
new Among("\u0438\u044F\u043C\u0438", 10, 1),
new Among("\u0439", -1, 1), new Among("\u0435\u0439", 12, 1),
new Among("\u0438\u0435\u0439", 13, 1),
new Among("\u0438\u0439", 12, 1), new Among("\u043E\u0439", 12, 1),
new Among("\u0430\u043C", -1, 1), new Among("\u0435\u043C", -1, 1),
new Among("\u0438\u0435\u043C", 18, 1),
new Among("\u043E\u043C", -1, 1), new Among("\u044F\u043C", -1, 1),
new Among("\u0438\u044F\u043C", 21, 1), new Among("\u043E", -1, 1),
new Among("\u0443", -1, 1), new Among("\u0430\u0445", -1, 1),
new Among("\u044F\u0445", -1, 1),
new Among("\u0438\u044F\u0445", 26, 1), new Among("\u044B", -1, 1),
new Among("\u044C", -1, 1), new Among("\u044E", -1, 1),
new Among("\u0438\u044E", 30, 1), new Among("\u044C\u044E", 30, 1),
new Among("\u044F", -1, 1), new Among("\u0438\u044F", 33, 1),
new Among("\u044C\u044F", 33, 1)
],
a_6 = [
new Among("\u043E\u0441\u0442", -1, 1),
new Among("\u043E\u0441\u0442\u044C", -1, 1)
],
a_7 = [
new Among("\u0435\u0439\u0448\u0435", -1, 1),
new Among("\u043D", -1, 2), new Among("\u0435\u0439\u0448", -1, 1),
new Among("\u044C", -1, 3)
],
g_v = [33, 65, 8, 232],
I_p2, I_pV, sbp = new SnowballProgram();
this.setCurrent = function(word) {
sbp.setCurrent(word);
};
this.getCurrent = function() {
return sbp.getCurrent();
};
function habr3() {
while (!sbp.in_grouping(g_v, 1072, 1103)) {
if (sbp.cursor >= sbp.limit)
return false;
sbp.cursor++;
}
return true;
}
function habr4() {
while (!sbp.out_grouping(g_v, 1072, 1103)) {
if (sbp.cursor >= sbp.limit)
return false;
sbp.cursor++;
}
return true;
}
function r_mark_regions() {
I_pV = sbp.limit;
I_p2 = I_pV;
if (habr3()) {
I_pV = sbp.cursor;
if (habr4())
if (habr3())
if (habr4())
I_p2 = sbp.cursor;
}
}
function r_R2() {
return I_p2 <= sbp.cursor;
}
function habr2(a, n) {
var among_var, v_1;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a, n);
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
v_1 = sbp.limit - sbp.cursor;
if (!sbp.eq_s_b(1, "\u0430")) {
sbp.cursor = sbp.limit - v_1;
if (!sbp.eq_s_b(1, "\u044F"))
return false;
}
case 2:
sbp.slice_del();
break;
}
return true;
}
return false;
}
function r_perfective_gerund() {
return habr2(a_0, 9);
}
function habr1(a, n) {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a, n);
if (among_var) {
sbp.bra = sbp.cursor;
if (among_var == 1)
sbp.slice_del();
return true;
}
return false;
}
function r_adjective() {
return habr1(a_1, 26);
}
function r_adjectival() {
var among_var;
if (r_adjective()) {
habr2(a_2, 8);
return true;
}
return false;
}
function r_reflexive() {
return habr1(a_3, 2);
}
function r_verb() {
return habr2(a_4, 46);
}
function r_noun() {
habr1(a_5, 36);
}
function r_derivational() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_6, 2);
if (among_var) {
sbp.bra = sbp.cursor;
if (r_R2() && among_var == 1)
sbp.slice_del();
}
}
function r_tidy_up() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_7, 4);
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_del();
sbp.ket = sbp.cursor;
if (!sbp.eq_s_b(1, "\u043D"))
break;
sbp.bra = sbp.cursor;
case 2:
if (!sbp.eq_s_b(1, "\u043D"))
break;
case 3:
sbp.slice_del();
break;
}
}
}
this.stem = function() {
r_mark_regions();
sbp.cursor = sbp.limit;
if (sbp.cursor < I_pV)
return false;
sbp.limit_backward = I_pV;
if (!r_perfective_gerund()) {
sbp.cursor = sbp.limit;
if (!r_reflexive())
sbp.cursor = sbp.limit;
if (!r_adjectival()) {
sbp.cursor = sbp.limit;
if (!r_verb()) {
sbp.cursor = sbp.limit;
r_noun();
}
}
}
sbp.cursor = sbp.limit;
sbp.ket = sbp.cursor;
if (sbp.eq_s_b(1, "\u0438")) {
sbp.bra = sbp.cursor;
sbp.slice_del();
} else
sbp.cursor = sbp.limit;
r_derivational();
sbp.cursor = sbp.limit;
r_tidy_up();
return true;
}
};
/* and return a function that stems a word for the current locale */
return function(word) {
st.setCurrent(word);
st.stem();
return st.getCurrent();
}
})();
lunr.Pipeline.registerFunction(lunr.ru.stemmer, 'stemmer-ru');
/* stop word filter function */
lunr.ru.stopWordFilter = function(token) {
if (lunr.ru.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.ru.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.ru.stopWordFilter.stopWords.length = 422;
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
lunr.ru.stopWordFilter.stopWords.elements = ' алло без близко более больше будем будет будете будешь будто буду будут будь бы бывает бывь был была были было быть в важная важное важные важный вам вами вас ваш ваша ваше ваши вверх вдали вдруг ведь везде весь вниз внизу во вокруг вон восемнадцатый восемнадцать восемь восьмой вот впрочем времени время все всегда всего всем всеми всему всех всею всю всюду вся всё второй вы г где говорил говорит год года году да давно даже далеко дальше даром два двадцатый двадцать две двенадцатый двенадцать двух девятнадцатый девятнадцать девятый девять действительно дел день десятый десять для до довольно долго должно другая другие других друго другое другой е его ее ей ему если есть еще ещё ею её ж же жизнь за занят занята занято заняты затем зато зачем здесь значит и из или им именно иметь ими имя иногда их к каждая каждое каждые каждый кажется как какая какой кем когда кого ком кому конечно которая которого которой которые который которых кроме кругом кто куда лет ли лишь лучше люди м мало между меля менее меньше меня миллионов мимо мира мне много многочисленная многочисленное многочисленные многочисленный мной мною мог могут мож может можно можхо мои мой мор мочь моя моё мы на наверху над надо назад наиболее наконец нам нами нас начала наш наша наше наши не него недавно недалеко нее ней нельзя нем немного нему непрерывно нередко несколько нет нею неё ни нибудь ниже низко никогда никуда ними них ничего но ну нужно нх о об оба обычно один одиннадцатый одиннадцать однажды однако одного одной около он она они оно опять особенно от отовсюду отсюда очень первый перед по под пожалуйста позже пока пор пора после посреди потом потому почему почти прекрасно при про просто против процентов пятнадцатый пятнадцать пятый пять раз разве рано раньше рядом с сам сама сами самим самими самих само самого самой самом самому саму свое своего своей свои своих свою сеаой себе себя сегодня седьмой сейчас семнадцатый семнадцать семь сих сказал сказала сказать сколько слишком сначала снова со собой собою совсем спасибо стал суть т та так такая также такие такое такой там твой твоя твоё те тебе тебя тем теми теперь тех то тобой тобою тогда того тоже только том тому тот тою третий три тринадцатый тринадцать ту туда тут ты тысяч у уж уже уметь хорошо хотеть хоть хотя хочешь часто чаще чего человек чем чему через четвертый четыре четырнадцатый четырнадцать что чтоб чтобы чуть шестнадцатый шестнадцать шестой шесть эта эти этим этими этих это этого этой этом этому этот эту я а'.split(' ');
lunr.Pipeline.registerFunction(lunr.ru.stopWordFilter, 'stopWordFilter-ru');
};
}))
\ No newline at end of file
/*!
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function () {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* provides utilities for the included stemmers */
lunr.stemmerSupport = {
Among: function(s, substring_i, result, method) {
this.toCharArray = function(s) {
var sLength = s.length, charArr = new Array(sLength);
for (var i = 0; i < sLength; i++)
charArr[i] = s.charCodeAt(i);
return charArr;
};
if ((!s && s != "") || (!substring_i && (substring_i != 0)) || !result)
throw ("Bad Among initialisation: s:" + s + ", substring_i: "
+ substring_i + ", result: " + result);
this.s_size = s.length;
this.s = this.toCharArray(s);
this.substring_i = substring_i;
this.result = result;
this.method = method;
},
SnowballProgram: function() {
var current;
return {
bra : 0,
ket : 0,
limit : 0,
cursor : 0,
limit_backward : 0,
setCurrent : function(word) {
current = word;
this.cursor = 0;
this.limit = word.length;
this.limit_backward = 0;
this.bra = this.cursor;
this.ket = this.limit;
},
getCurrent : function() {
var result = current;
current = null;
return result;
},
in_grouping : function(s, min, max) {
if (this.cursor < this.limit) {
var ch = current.charCodeAt(this.cursor);
if (ch <= max && ch >= min) {
ch -= min;
if (s[ch >> 3] & (0X1 << (ch & 0X7))) {
this.cursor++;
return true;
}
}
}
return false;
},
in_grouping_b : function(s, min, max) {
if (this.cursor > this.limit_backward) {
var ch = current.charCodeAt(this.cursor - 1);
if (ch <= max && ch >= min) {
ch -= min;
if (s[ch >> 3] & (0X1 << (ch & 0X7))) {
this.cursor--;
return true;
}
}
}
return false;
},
out_grouping : function(s, min, max) {
if (this.cursor < this.limit) {
var ch = current.charCodeAt(this.cursor);
if (ch > max || ch < min) {
this.cursor++;
return true;
}
ch -= min;
if (!(s[ch >> 3] & (0X1 << (ch & 0X7)))) {
this.cursor++;
return true;
}
}
return false;
},
out_grouping_b : function(s, min, max) {
if (this.cursor > this.limit_backward) {
var ch = current.charCodeAt(this.cursor - 1);
if (ch > max || ch < min) {
this.cursor--;
return true;
}
ch -= min;
if (!(s[ch >> 3] & (0X1 << (ch & 0X7)))) {
this.cursor--;
return true;
}
}
return false;
},
eq_s : function(s_size, s) {
if (this.limit - this.cursor < s_size)
return false;
for (var i = 0; i < s_size; i++)
if (current.charCodeAt(this.cursor + i) != s.charCodeAt(i))
return false;
this.cursor += s_size;
return true;
},
eq_s_b : function(s_size, s) {
if (this.cursor - this.limit_backward < s_size)
return false;
for (var i = 0; i < s_size; i++)
if (current.charCodeAt(this.cursor - s_size + i) != s
.charCodeAt(i))
return false;
this.cursor -= s_size;
return true;
},
find_among : function(v, v_size) {
var i = 0, j = v_size, c = this.cursor, l = this.limit, common_i = 0, common_j = 0, first_key_inspected = false;
while (true) {
var k = i + ((j - i) >> 1), diff = 0, common = common_i < common_j
? common_i
: common_j, w = v[k];
for (var i2 = common; i2 < w.s_size; i2++) {
if (c + common == l) {
diff = -1;
break;
}
diff = current.charCodeAt(c + common) - w.s[i2];
if (diff)
break;
common++;
}
if (diff < 0) {
j = k;
common_j = common;
} else {
i = k;
common_i = common;
}
if (j - i <= 1) {
if (i > 0 || j == i || first_key_inspected)
break;
first_key_inspected = true;
}
}
while (true) {
var w = v[i];
if (common_i >= w.s_size) {
this.cursor = c + w.s_size;
if (!w.method)
return w.result;
var res = w.method();
this.cursor = c + w.s_size;
if (res)
return w.result;
}
i = w.substring_i;
if (i < 0)
return 0;
}
},
find_among_b : function(v, v_size) {
var i = 0, j = v_size, c = this.cursor, lb = this.limit_backward, common_i = 0, common_j = 0, first_key_inspected = false;
while (true) {
var k = i + ((j - i) >> 1), diff = 0, common = common_i < common_j
? common_i
: common_j, w = v[k];
for (var i2 = w.s_size - 1 - common; i2 >= 0; i2--) {
if (c - common == lb) {
diff = -1;
break;
}
diff = current.charCodeAt(c - 1 - common) - w.s[i2];
if (diff)
break;
common++;
}
if (diff < 0) {
j = k;
common_j = common;
} else {
i = k;
common_i = common;
}
if (j - i <= 1) {
if (i > 0 || j == i || first_key_inspected)
break;
first_key_inspected = true;
}
}
while (true) {
var w = v[i];
if (common_i >= w.s_size) {
this.cursor = c - w.s_size;
if (!w.method)
return w.result;
var res = w.method();
this.cursor = c - w.s_size;
if (res)
return w.result;
}
i = w.substring_i;
if (i < 0)
return 0;
}
},
replace_s : function(c_bra, c_ket, s) {
var adjustment = s.length - (c_ket - c_bra), left = current
.substring(0, c_bra), right = current.substring(c_ket);
current = left + s + right;
this.limit += adjustment;
if (this.cursor >= c_ket)
this.cursor += adjustment;
else if (this.cursor > c_bra)
this.cursor = c_bra;
return adjustment;
},
slice_check : function() {
if (this.bra < 0 || this.bra > this.ket || this.ket > this.limit
|| this.limit > current.length)
throw ("faulty slice operation");
},
slice_from : function(s) {
this.slice_check();
this.replace_s(this.bra, this.ket, s);
},
slice_del : function() {
this.slice_from("");
},
insert : function(c_bra, c_ket, s) {
var adjustment = this.replace_s(c_bra, c_ket, s);
if (c_bra <= this.bra)
this.bra += adjustment;
if (c_bra <= this.ket)
this.ket += adjustment;
},
slice_to : function() {
this.slice_check();
return current.substring(this.bra, this.ket);
},
eq_v_b : function(s) {
return this.eq_s_b(s.length, s);
}
};
}
};
lunr.trimmerSupport = {
generateTrimmer: function(wordCharacters) {
var startRegex = new RegExp("^[^" + wordCharacters + "]+")
var endRegex = new RegExp("[^" + wordCharacters + "]+$")
return function(token) {
return token
.replace(startRegex, '')
.replace(endRegex, '');
};
}
}
}
}));
/*!
* Lunr languages, `Swedish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function() {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.sv = function() {
this.pipeline.reset();
this.pipeline.add(
lunr.sv.trimmer,
lunr.sv.stopWordFilter,
lunr.sv.stemmer
);
};
/* lunr trimmer function */
lunr.sv.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A";
lunr.sv.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.sv.wordCharacters);
lunr.Pipeline.registerFunction(lunr.sv.trimmer, 'trimmer-sv');
/* lunr stemmer function */
lunr.sv.stemmer = (function() {
/* create the wrapped stemmer object */
var Among = lunr.stemmerSupport.Among,
SnowballProgram = lunr.stemmerSupport.SnowballProgram,
st = new function SwedishStemmer() {
var a_0 = [new Among("a", -1, 1), new Among("arna", 0, 1),
new Among("erna", 0, 1), new Among("heterna", 2, 1),
new Among("orna", 0, 1), new Among("ad", -1, 1),
new Among("e", -1, 1), new Among("ade", 6, 1),
new Among("ande", 6, 1), new Among("arne", 6, 1),
new Among("are", 6, 1), new Among("aste", 6, 1),
new Among("en", -1, 1), new Among("anden", 12, 1),
new Among("aren", 12, 1), new Among("heten", 12, 1),
new Among("ern", -1, 1), new Among("ar", -1, 1),
new Among("er", -1, 1), new Among("heter", 18, 1),
new Among("or", -1, 1), new Among("s", -1, 2),
new Among("as", 21, 1), new Among("arnas", 22, 1),
new Among("ernas", 22, 1), new Among("ornas", 22, 1),
new Among("es", 21, 1), new Among("ades", 26, 1),
new Among("andes", 26, 1), new Among("ens", 21, 1),
new Among("arens", 29, 1), new Among("hetens", 29, 1),
new Among("erns", 21, 1), new Among("at", -1, 1),
new Among("andet", -1, 1), new Among("het", -1, 1),
new Among("ast", -1, 1)
],
a_1 = [new Among("dd", -1, -1),
new Among("gd", -1, -1), new Among("nn", -1, -1),
new Among("dt", -1, -1), new Among("gt", -1, -1),
new Among("kt", -1, -1), new Among("tt", -1, -1)
],
a_2 = [
new Among("ig", -1, 1), new Among("lig", 0, 1),
new Among("els", -1, 1), new Among("fullt", -1, 3),
new Among("l\u00F6st", -1, 2)
],
g_v = [17, 65, 16, 1, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 32
],
g_s_ending = [119, 127, 149],
I_x, I_p1, sbp = new SnowballProgram();
this.setCurrent = function(word) {
sbp.setCurrent(word);
};
this.getCurrent = function() {
return sbp.getCurrent();
};
function r_mark_regions() {
var v_1, c = sbp.cursor + 3;
I_p1 = sbp.limit;
if (0 <= c || c <= sbp.limit) {
I_x = c;
while (true) {
v_1 = sbp.cursor;
if (sbp.in_grouping(g_v, 97, 246)) {
sbp.cursor = v_1;
break;
}
sbp.cursor = v_1;
if (sbp.cursor >= sbp.limit)
return;
sbp.cursor++;
}
while (!sbp.out_grouping(g_v, 97, 246)) {
if (sbp.cursor >= sbp.limit)
return;
sbp.cursor++;
}
I_p1 = sbp.cursor;
if (I_p1 < I_x)
I_p1 = I_x;
}
}
function r_main_suffix() {
var among_var, v_2 = sbp.limit_backward;
if (sbp.cursor >= I_p1) {
sbp.limit_backward = I_p1;
sbp.cursor = sbp.limit;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_0, 37);
sbp.limit_backward = v_2;
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_del();
break;
case 2:
if (sbp.in_grouping_b(g_s_ending, 98, 121))
sbp.slice_del();
break;
}
}
}
}
function r_consonant_pair() {
var v_1 = sbp.limit_backward;
if (sbp.cursor >= I_p1) {
sbp.limit_backward = I_p1;
sbp.cursor = sbp.limit;
if (sbp.find_among_b(a_1, 7)) {
sbp.cursor = sbp.limit;
sbp.ket = sbp.cursor;
if (sbp.cursor > sbp.limit_backward) {
sbp.bra = --sbp.cursor;
sbp.slice_del();
}
}
sbp.limit_backward = v_1;
}
}
function r_other_suffix() {
var among_var, v_2;
if (sbp.cursor >= I_p1) {
v_2 = sbp.limit_backward;
sbp.limit_backward = I_p1;
sbp.cursor = sbp.limit;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_2, 5);
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_del();
break;
case 2:
sbp.slice_from("l\u00F6s");
break;
case 3:
sbp.slice_from("full");
break;
}
}
sbp.limit_backward = v_2;
}
}
this.stem = function() {
var v_1 = sbp.cursor;
r_mark_regions();
sbp.limit_backward = v_1;
sbp.cursor = sbp.limit;
r_main_suffix();
sbp.cursor = sbp.limit;
r_consonant_pair();
sbp.cursor = sbp.limit;
r_other_suffix();
return true;
}
};
/* and return a function that stems a word for the current locale */
return function(word) {
st.setCurrent(word);
st.stem();
return st.getCurrent();
}
})();
lunr.Pipeline.registerFunction(lunr.sv.stemmer, 'stemmer-sv');
/* stop word filter function */
lunr.sv.stopWordFilter = function(token) {
if (lunr.sv.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.sv.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.sv.stopWordFilter.stopWords.length = 115;
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
lunr.sv.stopWordFilter.stopWords.elements = ' alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över'.split(' ');
lunr.Pipeline.registerFunction(lunr.sv.stopWordFilter, 'stopWordFilter-sv');
};
}))
\ No newline at end of file
/*!
* Lunr languages, `Turkish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
/**
* export the module via AMD, CommonJS or as a browser global
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
*/
;
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(factory)
} else if (typeof exports === 'object') {
/**
* Node. Does not work with strict CommonJS, but
* only CommonJS-like environments that support module.exports,
* like Node.
*/
module.exports = factory()
} else {
// Browser globals (root is window)
factory()(root.lunr);
}
}(this, function() {
/**
* Just return a value to define the module export.
* This example returns an object, but the module
* can return a function as the exported value.
*/
return function(lunr) {
/* throw error if lunr is not yet included */
if ('undefined' === typeof lunr) {
throw new Error('Lunr is not present. Please include / require Lunr before this script.');
}
/* throw error if lunr stemmer support is not yet included */
if ('undefined' === typeof lunr.stemmerSupport) {
throw new Error('Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.');
}
/* register specific locale function */
lunr.tr = function() {
this.pipeline.reset();
this.pipeline.add(
lunr.tr.trimmer,
lunr.tr.stopWordFilter,
lunr.tr.stemmer
);
};
/* lunr trimmer function */
lunr.tr.wordCharacters = "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A";
lunr.tr.trimmer = lunr.trimmerSupport.generateTrimmer(lunr.tr.wordCharacters);
lunr.Pipeline.registerFunction(lunr.tr.trimmer, 'trimmer-tr');
/* lunr stemmer function */
lunr.tr.stemmer = (function() {
/* create the wrapped stemmer object */
var Among = lunr.stemmerSupport.Among,
SnowballProgram = lunr.stemmerSupport.SnowballProgram,
st = new function TurkishStemmer() {
var a_0 = [new Among("m", -1, -1), new Among("n", -1, -1),
new Among("miz", -1, -1), new Among("niz", -1, -1),
new Among("muz", -1, -1), new Among("nuz", -1, -1),
new Among("m\u00FCz", -1, -1), new Among("n\u00FCz", -1, -1),
new Among("m\u0131z", -1, -1), new Among("n\u0131z", -1, -1)
],
a_1 = [
new Among("leri", -1, -1), new Among("lar\u0131", -1, -1)
],
a_2 = [
new Among("ni", -1, -1), new Among("nu", -1, -1),
new Among("n\u00FC", -1, -1), new Among("n\u0131", -1, -1)
],
a_3 = [
new Among("in", -1, -1), new Among("un", -1, -1),
new Among("\u00FCn", -1, -1), new Among("\u0131n", -1, -1)
],
a_4 = [
new Among("a", -1, -1), new Among("e", -1, -1)
],
a_5 = [
new Among("na", -1, -1), new Among("ne", -1, -1)
],
a_6 = [
new Among("da", -1, -1), new Among("ta", -1, -1),
new Among("de", -1, -1), new Among("te", -1, -1)
],
a_7 = [
new Among("nda", -1, -1), new Among("nde", -1, -1)
],
a_8 = [
new Among("dan", -1, -1), new Among("tan", -1, -1),
new Among("den", -1, -1), new Among("ten", -1, -1)
],
a_9 = [
new Among("ndan", -1, -1), new Among("nden", -1, -1)
],
a_10 = [
new Among("la", -1, -1), new Among("le", -1, -1)
],
a_11 = [
new Among("ca", -1, -1), new Among("ce", -1, -1)
],
a_12 = [
new Among("im", -1, -1), new Among("um", -1, -1),
new Among("\u00FCm", -1, -1), new Among("\u0131m", -1, -1)
],
a_13 = [
new Among("sin", -1, -1), new Among("sun", -1, -1),
new Among("s\u00FCn", -1, -1), new Among("s\u0131n", -1, -1)
],
a_14 = [
new Among("iz", -1, -1), new Among("uz", -1, -1),
new Among("\u00FCz", -1, -1), new Among("\u0131z", -1, -1)
],
a_15 = [
new Among("siniz", -1, -1), new Among("sunuz", -1, -1),
new Among("s\u00FCn\u00FCz", -1, -1),
new Among("s\u0131n\u0131z", -1, -1)
],
a_16 = [
new Among("lar", -1, -1), new Among("ler", -1, -1)
],
a_17 = [
new Among("niz", -1, -1), new Among("nuz", -1, -1),
new Among("n\u00FCz", -1, -1), new Among("n\u0131z", -1, -1)
],
a_18 = [
new Among("dir", -1, -1), new Among("tir", -1, -1),
new Among("dur", -1, -1), new Among("tur", -1, -1),
new Among("d\u00FCr", -1, -1), new Among("t\u00FCr", -1, -1),
new Among("d\u0131r", -1, -1), new Among("t\u0131r", -1, -1)
],
a_19 = [
new Among("cas\u0131na", -1, -1), new Among("cesine", -1, -1)
],
a_20 = [
new Among("di", -1, -1), new Among("ti", -1, -1),
new Among("dik", -1, -1), new Among("tik", -1, -1),
new Among("duk", -1, -1), new Among("tuk", -1, -1),
new Among("d\u00FCk", -1, -1), new Among("t\u00FCk", -1, -1),
new Among("d\u0131k", -1, -1), new Among("t\u0131k", -1, -1),
new Among("dim", -1, -1), new Among("tim", -1, -1),
new Among("dum", -1, -1), new Among("tum", -1, -1),
new Among("d\u00FCm", -1, -1), new Among("t\u00FCm", -1, -1),
new Among("d\u0131m", -1, -1), new Among("t\u0131m", -1, -1),
new Among("din", -1, -1), new Among("tin", -1, -1),
new Among("dun", -1, -1), new Among("tun", -1, -1),
new Among("d\u00FCn", -1, -1), new Among("t\u00FCn", -1, -1),
new Among("d\u0131n", -1, -1), new Among("t\u0131n", -1, -1),
new Among("du", -1, -1), new Among("tu", -1, -1),
new Among("d\u00FC", -1, -1), new Among("t\u00FC", -1, -1),
new Among("d\u0131", -1, -1), new Among("t\u0131", -1, -1)
],
a_21 = [
new Among("sa", -1, -1), new Among("se", -1, -1),
new Among("sak", -1, -1), new Among("sek", -1, -1),
new Among("sam", -1, -1), new Among("sem", -1, -1),
new Among("san", -1, -1), new Among("sen", -1, -1)
],
a_22 = [
new Among("mi\u015F", -1, -1), new Among("mu\u015F", -1, -1),
new Among("m\u00FC\u015F", -1, -1),
new Among("m\u0131\u015F", -1, -1)
],
a_23 = [new Among("b", -1, 1),
new Among("c", -1, 2), new Among("d", -1, 3),
new Among("\u011F", -1, 4)
],
g_vowel = [17, 65, 16, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 8, 0, 0, 0, 0, 0, 0, 1
],
g_U = [
1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0,
0, 0, 0, 1
],
g_vowel1 = [1, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1
],
g_vowel2 = [17, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130
],
g_vowel3 = [1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1
],
g_vowel4 = [17],
g_vowel5 = [65],
g_vowel6 = [65],
B_c_s_n_s, I_strlen, g_habr = [
["a", g_vowel1, 97, 305],
["e", g_vowel2, 101, 252],
["\u0131", g_vowel3, 97, 305],
["i", g_vowel4, 101, 105],
["o", g_vowel5, 111, 117],
["\u00F6", g_vowel6, 246, 252],
["u", g_vowel5, 111, 117]
],
sbp = new SnowballProgram();
this.setCurrent = function(word) {
sbp.setCurrent(word);
};
this.getCurrent = function() {
return sbp.getCurrent();
};
function habr1(g_v, n1, n2) {
while (true) {
var v_1 = sbp.limit - sbp.cursor;
if (sbp.in_grouping_b(g_v, n1, n2)) {
sbp.cursor = sbp.limit - v_1;
break;
}
sbp.cursor = sbp.limit - v_1;
if (sbp.cursor <= sbp.limit_backward)
return false;
sbp.cursor--;
}
return true;
}
function r_check_vowel_harmony() {
var v_1, v_2;
v_1 = sbp.limit - sbp.cursor;
habr1(g_vowel, 97, 305);
for (var i = 0; i < g_habr.length; i++) {
v_2 = sbp.limit - sbp.cursor;
var habr = g_habr[i];
if (sbp.eq_s_b(1, habr[0]) && habr1(habr[1], habr[2], habr[3])) {
sbp.cursor = sbp.limit - v_1;
return true;
}
sbp.cursor = sbp.limit - v_2;
}
sbp.cursor = sbp.limit - v_2;
if (!sbp.eq_s_b(1, "\u00FC") || !habr1(g_vowel6, 246, 252))
return false;
sbp.cursor = sbp.limit - v_1;
return true;
}
function habr2(f1, f2) {
var v_1 = sbp.limit - sbp.cursor,
v_2;
if (f1()) {
sbp.cursor = sbp.limit - v_1;
if (sbp.cursor > sbp.limit_backward) {
sbp.cursor--;
v_2 = sbp.limit - sbp.cursor;
if (f2()) {
sbp.cursor = sbp.limit - v_2;
return true;
}
}
}
sbp.cursor = sbp.limit - v_1;
if (f1()) {
sbp.cursor = sbp.limit - v_1;
return false;
}
sbp.cursor = sbp.limit - v_1;
if (sbp.cursor <= sbp.limit_backward)
return false;
sbp.cursor--;
if (!f2())
return false;
sbp.cursor = sbp.limit - v_1;
return true;
}
function habr3(f1) {
return habr2(f1, function() {
return sbp.in_grouping_b(g_vowel, 97, 305);
});
}
function r_mark_suffix_with_optional_n_consonant() {
return habr3(function() {
return sbp.eq_s_b(1, "n");
});
}
function r_mark_suffix_with_optional_s_consonant() {
return habr3(function() {
return sbp.eq_s_b(1, "s");
});
}
function r_mark_suffix_with_optional_y_consonant() {
return habr3(function() {
return sbp.eq_s_b(1, "y");
});
}
function r_mark_suffix_with_optional_U_vowel() {
return habr2(function() {
return sbp.in_grouping_b(g_U, 105, 305);
}, function() {
return sbp.out_grouping_b(g_vowel, 97, 305);
});
}
function r_mark_possessives() {
return sbp.find_among_b(a_0, 10) && r_mark_suffix_with_optional_U_vowel();
}
function r_mark_sU() {
return r_check_vowel_harmony() && sbp.in_grouping_b(g_U, 105, 305) && r_mark_suffix_with_optional_s_consonant();
}
function r_mark_lArI() {
return sbp.find_among_b(a_1, 2);
}
function r_mark_yU() {
return r_check_vowel_harmony() && sbp.in_grouping_b(g_U, 105, 305) && r_mark_suffix_with_optional_y_consonant();
}
function r_mark_nU() {
return r_check_vowel_harmony() && sbp.find_among_b(a_2, 4);
}
function r_mark_nUn() {
return r_check_vowel_harmony() && sbp.find_among_b(a_3, 4) && r_mark_suffix_with_optional_n_consonant();
}
function r_mark_yA() {
return r_check_vowel_harmony() && sbp.find_among_b(a_4, 2) && r_mark_suffix_with_optional_y_consonant();
}
function r_mark_nA() {
return r_check_vowel_harmony() && sbp.find_among_b(a_5, 2);
}
function r_mark_DA() {
return r_check_vowel_harmony() && sbp.find_among_b(a_6, 4);
}
function r_mark_ndA() {
return r_check_vowel_harmony() && sbp.find_among_b(a_7, 2);
}
function r_mark_DAn() {
return r_check_vowel_harmony() && sbp.find_among_b(a_8, 4);
}
function r_mark_ndAn() {
return r_check_vowel_harmony() && sbp.find_among_b(a_9, 2);
}
function r_mark_ylA() {
return r_check_vowel_harmony() && sbp.find_among_b(a_10, 2) && r_mark_suffix_with_optional_y_consonant();
}
function r_mark_ki() {
return sbp.eq_s_b(2, "ki");
}
function r_mark_ncA() {
return r_check_vowel_harmony() && sbp.find_among_b(a_11, 2) && r_mark_suffix_with_optional_n_consonant();
}
function r_mark_yUm() {
return r_check_vowel_harmony() && sbp.find_among_b(a_12, 4) && r_mark_suffix_with_optional_y_consonant();
}
function r_mark_sUn() {
return r_check_vowel_harmony() && sbp.find_among_b(a_13, 4);
}
function r_mark_yUz() {
return r_check_vowel_harmony() && sbp.find_among_b(a_14, 4) && r_mark_suffix_with_optional_y_consonant();
}
function r_mark_sUnUz() {
return sbp.find_among_b(a_15, 4);
}
function r_mark_lAr() {
return r_check_vowel_harmony() && sbp.find_among_b(a_16, 2);
}
function r_mark_nUz() {
return r_check_vowel_harmony() && sbp.find_among_b(a_17, 4);
}
function r_mark_DUr() {
return r_check_vowel_harmony() && sbp.find_among_b(a_18, 8);
}
function r_mark_cAsInA() {
return sbp.find_among_b(a_19, 2);
}
function r_mark_yDU() {
return r_check_vowel_harmony() && sbp.find_among_b(a_20, 32) && r_mark_suffix_with_optional_y_consonant();
}
function r_mark_ysA() {
return sbp.find_among_b(a_21, 8) && r_mark_suffix_with_optional_y_consonant();
}
function r_mark_ymUs_() {
return r_check_vowel_harmony() && sbp.find_among_b(a_22, 4) && r_mark_suffix_with_optional_y_consonant();
}
function r_mark_yken() {
return sbp.eq_s_b(3, "ken") && r_mark_suffix_with_optional_y_consonant();
}
function habr4() {
var v_1 = sbp.limit - sbp.cursor;
if (!r_mark_ymUs_()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_yDU()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_ysA()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_yken())
return true;
}
}
}
return false;
}
function habr5() {
if (r_mark_cAsInA()) {
var v_1 = sbp.limit - sbp.cursor;
if (!r_mark_sUnUz()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_lAr()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_yUm()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_sUn()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_yUz())
sbp.cursor = sbp.limit - v_1;
}
}
}
}
if (r_mark_ymUs_())
return false;
}
return true;
}
function habr6() {
if (r_mark_lAr()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
var v_1 = sbp.limit - sbp.cursor;
sbp.ket = sbp.cursor;
if (!r_mark_DUr()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_yDU()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_ysA()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_ymUs_())
sbp.cursor = sbp.limit - v_1;
}
}
}
B_c_s_n_s = false;
return false;
}
return true;
}
function habr7() {
if (!r_mark_nUz())
return true;
var v_1 = sbp.limit - sbp.cursor;
if (!r_mark_yDU()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_ysA())
return true;
}
return false;
}
function habr8() {
var v_1 = sbp.limit - sbp.cursor,
v_2;
if (!r_mark_sUnUz()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_yUz()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_sUn()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_yUm())
return true;
}
}
}
sbp.bra = sbp.cursor;
sbp.slice_del();
v_2 = sbp.limit - sbp.cursor;
sbp.ket = sbp.cursor;
if (!r_mark_ymUs_())
sbp.cursor = sbp.limit - v_2;
return false;
}
function r_stem_nominal_verb_suffixes() {
var v_1 = sbp.limit - sbp.cursor,
v_2;
sbp.ket = sbp.cursor;
B_c_s_n_s = true;
if (habr4()) {
sbp.cursor = sbp.limit - v_1;
if (habr5()) {
sbp.cursor = sbp.limit - v_1;
if (habr6()) {
sbp.cursor = sbp.limit - v_1;
if (habr7()) {
sbp.cursor = sbp.limit - v_1;
if (habr8()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_DUr())
return;
sbp.bra = sbp.cursor;
sbp.slice_del();
sbp.ket = sbp.cursor;
v_2 = sbp.limit - sbp.cursor;
if (!r_mark_sUnUz()) {
sbp.cursor = sbp.limit - v_2;
if (!r_mark_lAr()) {
sbp.cursor = sbp.limit - v_2;
if (!r_mark_yUm()) {
sbp.cursor = sbp.limit - v_2;
if (!r_mark_sUn()) {
sbp.cursor = sbp.limit - v_2;
if (!r_mark_yUz())
sbp.cursor = sbp.limit - v_2;
}
}
}
}
if (!r_mark_ymUs_())
sbp.cursor = sbp.limit - v_2;
}
}
}
}
}
sbp.bra = sbp.cursor;
sbp.slice_del();
}
function r_stem_suffix_chain_before_ki() {
var v_1, v_2, v_3, v_4;
sbp.ket = sbp.cursor;
if (r_mark_ki()) {
v_1 = sbp.limit - sbp.cursor;
if (r_mark_DA()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
v_2 = sbp.limit - sbp.cursor;
sbp.ket = sbp.cursor;
if (r_mark_lAr()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
r_stem_suffix_chain_before_ki();
} else {
sbp.cursor = sbp.limit - v_2;
if (r_mark_possessives()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (r_mark_lAr()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
r_stem_suffix_chain_before_ki();
}
}
}
return true;
}
sbp.cursor = sbp.limit - v_1;
if (r_mark_nUn()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
sbp.ket = sbp.cursor;
v_3 = sbp.limit - sbp.cursor;
if (r_mark_lArI()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
} else {
sbp.cursor = sbp.limit - v_3;
sbp.ket = sbp.cursor;
if (!r_mark_possessives()) {
sbp.cursor = sbp.limit - v_3;
if (!r_mark_sU()) {
sbp.cursor = sbp.limit - v_3;
if (!r_stem_suffix_chain_before_ki())
return true;
}
}
sbp.bra = sbp.cursor;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (r_mark_lAr()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
r_stem_suffix_chain_before_ki()
}
}
return true;
}
sbp.cursor = sbp.limit - v_1;
if (r_mark_ndA()) {
v_4 = sbp.limit - sbp.cursor;
if (r_mark_lArI()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
} else {
sbp.cursor = sbp.limit - v_4;
if (r_mark_sU()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (r_mark_lAr()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
r_stem_suffix_chain_before_ki();
}
} else {
sbp.cursor = sbp.limit - v_4;
if (!r_stem_suffix_chain_before_ki())
return false;
}
}
return true;
}
}
return false;
}
function habr9(v_1) {
sbp.ket = sbp.cursor;
if (!r_mark_ndA()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_nA())
return false;
}
var v_2 = sbp.limit - sbp.cursor;
if (r_mark_lArI()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
} else {
sbp.cursor = sbp.limit - v_2;
if (r_mark_sU()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (r_mark_lAr()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
r_stem_suffix_chain_before_ki();
}
} else {
sbp.cursor = sbp.limit - v_2;
if (!r_stem_suffix_chain_before_ki())
return false;
}
}
return true;
}
function habr10(v_1) {
sbp.ket = sbp.cursor;
if (!r_mark_ndAn()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_nU())
return false;
}
var v_2 = sbp.limit - sbp.cursor;
if (!r_mark_sU()) {
sbp.cursor = sbp.limit - v_2;
if (!r_mark_lArI())
return false;
}
sbp.bra = sbp.cursor;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (r_mark_lAr()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
r_stem_suffix_chain_before_ki();
}
return true;
}
function habr11() {
var v_1 = sbp.limit - sbp.cursor,
v_2;
sbp.ket = sbp.cursor;
if (!r_mark_nUn()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_ylA())
return false;
}
sbp.bra = sbp.cursor;
sbp.slice_del();
v_2 = sbp.limit - sbp.cursor;
sbp.ket = sbp.cursor;
if (r_mark_lAr()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
if (r_stem_suffix_chain_before_ki())
return true;
}
sbp.cursor = sbp.limit - v_2;
sbp.ket = sbp.cursor;
if (!r_mark_possessives()) {
sbp.cursor = sbp.limit - v_2;
if (!r_mark_sU()) {
sbp.cursor = sbp.limit - v_2;
if (!r_stem_suffix_chain_before_ki())
return true;
}
}
sbp.bra = sbp.cursor;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (r_mark_lAr()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
r_stem_suffix_chain_before_ki();
}
return true;
}
function habr12() {
var v_1 = sbp.limit - sbp.cursor,
v_2, v_3;
sbp.ket = sbp.cursor;
if (!r_mark_DA()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_yU()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_yA())
return false;
}
}
sbp.bra = sbp.cursor;
sbp.slice_del();
sbp.ket = sbp.cursor;
v_2 = sbp.limit - sbp.cursor;
if (r_mark_possessives()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
v_3 = sbp.limit - sbp.cursor;
sbp.ket = sbp.cursor;
if (!r_mark_lAr())
sbp.cursor = sbp.limit - v_3;
} else {
sbp.cursor = sbp.limit - v_2;
if (!r_mark_lAr())
return true;
}
sbp.bra = sbp.cursor;
sbp.slice_del();
sbp.ket = sbp.cursor;
r_stem_suffix_chain_before_ki();
return true;
}
function r_stem_noun_suffixes() {
var v_1 = sbp.limit - sbp.cursor,
v_2, v_3;
sbp.ket = sbp.cursor;
if (r_mark_lAr()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
r_stem_suffix_chain_before_ki();
return;
}
sbp.cursor = sbp.limit - v_1;
sbp.ket = sbp.cursor;
if (r_mark_ncA()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
v_2 = sbp.limit - sbp.cursor;
sbp.ket = sbp.cursor;
if (r_mark_lArI()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
} else {
sbp.cursor = sbp.limit - v_2;
sbp.ket = sbp.cursor;
if (!r_mark_possessives()) {
sbp.cursor = sbp.limit - v_2;
if (!r_mark_sU()) {
sbp.cursor = sbp.limit - v_2;
sbp.ket = sbp.cursor;
if (!r_mark_lAr())
return;
sbp.bra = sbp.cursor;
sbp.slice_del();
if (!r_stem_suffix_chain_before_ki())
return;
}
}
sbp.bra = sbp.cursor;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (r_mark_lAr()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
r_stem_suffix_chain_before_ki();
}
}
return;
}
sbp.cursor = sbp.limit - v_1;
if (habr9(v_1))
return;
sbp.cursor = sbp.limit - v_1;
if (habr10(v_1))
return;
sbp.cursor = sbp.limit - v_1;
sbp.ket = sbp.cursor;
if (r_mark_DAn()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
sbp.ket = sbp.cursor;
v_3 = sbp.limit - sbp.cursor;
if (r_mark_possessives()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (r_mark_lAr()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
r_stem_suffix_chain_before_ki();
}
} else {
sbp.cursor = sbp.limit - v_3;
if (r_mark_lAr()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
r_stem_suffix_chain_before_ki();
} else {
sbp.cursor = sbp.limit - v_3;
r_stem_suffix_chain_before_ki();
}
}
return;
}
sbp.cursor = sbp.limit - v_1;
if (habr11())
return;
sbp.cursor = sbp.limit - v_1;
if (r_mark_lArI()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
return;
}
sbp.cursor = sbp.limit - v_1;
if (r_stem_suffix_chain_before_ki())
return;
sbp.cursor = sbp.limit - v_1;
if (habr12())
return;
sbp.cursor = sbp.limit - v_1;
sbp.ket = sbp.cursor;
if (!r_mark_possessives()) {
sbp.cursor = sbp.limit - v_1;
if (!r_mark_sU())
return;
}
sbp.bra = sbp.cursor;
sbp.slice_del();
sbp.ket = sbp.cursor;
if (r_mark_lAr()) {
sbp.bra = sbp.cursor;
sbp.slice_del();
r_stem_suffix_chain_before_ki();
}
}
function r_post_process_last_consonants() {
var among_var;
sbp.ket = sbp.cursor;
among_var = sbp.find_among_b(a_23, 4);
if (among_var) {
sbp.bra = sbp.cursor;
switch (among_var) {
case 1:
sbp.slice_from("p");
break;
case 2:
sbp.slice_from("\u00E7");
break;
case 3:
sbp.slice_from("t");
break;
case 4:
sbp.slice_from("k");
break;
}
}
}
function habr13() {
while (true) {
var v_1 = sbp.limit - sbp.cursor;
if (sbp.in_grouping_b(g_vowel, 97, 305)) {
sbp.cursor = sbp.limit - v_1;
break;
}
sbp.cursor = sbp.limit - v_1;
if (sbp.cursor <= sbp.limit_backward)
return false;
sbp.cursor--;
}
return true;
}
function habr14(v_1, c1, c2) {
sbp.cursor = sbp.limit - v_1;
if (habr13()) {
var v_2 = sbp.limit - sbp.cursor;
if (!sbp.eq_s_b(1, c1)) {
sbp.cursor = sbp.limit - v_2;
if (!sbp.eq_s_b(1, c2))
return true;
}
sbp.cursor = sbp.limit - v_1;
var c = sbp.cursor;
sbp.insert(sbp.cursor, sbp.cursor, c2);
sbp.cursor = c;
return false;
}
return true;
}
function r_append_U_to_stems_ending_with_d_or_g() {
var v_1 = sbp.limit - sbp.cursor;
if (!sbp.eq_s_b(1, "d")) {
sbp.cursor = sbp.limit - v_1;
if (!sbp.eq_s_b(1, "g"))
return;
}
if (habr14(v_1, "a", "\u0131"))
if (habr14(v_1, "e", "i"))
if (habr14(v_1, "o", "u"))
habr14(v_1, "\u00F6", "\u00FC")
}
function r_more_than_one_syllable_word() {
var v_1 = sbp.cursor,
v_2 = 2,
v_3;
while (true) {
v_3 = sbp.cursor;
while (!sbp.in_grouping(g_vowel, 97, 305)) {
if (sbp.cursor >= sbp.limit) {
sbp.cursor = v_3;
if (v_2 > 0)
return false;
sbp.cursor = v_1;
return true;
}
sbp.cursor++;
}
v_2--;
}
}
function habr15(v_1, n1, c1) {
while (!sbp.eq_s(n1, c1)) {
if (sbp.cursor >= sbp.limit)
return true;
sbp.cursor++;
}
I_strlen = n1;
if (I_strlen != sbp.limit)
return true;
sbp.cursor = v_1;
return false;
}
function r_is_reserved_word() {
var v_1 = sbp.cursor;
if (habr15(v_1, 2, "ad")) {
sbp.cursor = v_1;
if (habr15(v_1, 5, "soyad"))
return false;
}
return true;
}
function r_postlude() {
var v_1 = sbp.cursor;
if (r_is_reserved_word())
return false;
sbp.limit_backward = v_1;
sbp.cursor = sbp.limit;
r_append_U_to_stems_ending_with_d_or_g();
sbp.cursor = sbp.limit;
r_post_process_last_consonants();
return true;
}
this.stem = function() {
if (r_more_than_one_syllable_word()) {
sbp.limit_backward = sbp.cursor;
sbp.cursor = sbp.limit;
r_stem_nominal_verb_suffixes();
sbp.cursor = sbp.limit;
if (B_c_s_n_s) {
r_stem_noun_suffixes();
sbp.cursor = sbp.limit_backward;
if (r_postlude())
return true;
}
}
return false;
}
};
/* and return a function that stems a word for the current locale */
return function(word) {
st.setCurrent(word);
st.stem();
return st.getCurrent();
}
})();
lunr.Pipeline.registerFunction(lunr.tr.stemmer, 'stemmer-tr');
/* stop word filter function */
lunr.tr.stopWordFilter = function(token) {
if (lunr.tr.stopWordFilter.stopWords.indexOf(token) === -1) {
return token;
}
};
lunr.tr.stopWordFilter.stopWords = new lunr.SortedSet();
lunr.tr.stopWordFilter.stopWords.length = 210;
// The space at the beginning is crucial: It marks the empty string
// as a stop word. lunr.js crashes during search when documents
// processed by the pipeline still contain the empty string.
lunr.tr.stopWordFilter.stopWords.elements = ' acaba altmış altı ama ancak arada aslında ayrıca bana bazı belki ben benden beni benim beri beş bile bin bir biri birkaç birkez birçok birşey birşeyi biz bizden bize bizi bizim bu buna bunda bundan bunlar bunları bunların bunu bunun burada böyle böylece da daha dahi de defa değil diye diğer doksan dokuz dolayı dolayısıyla dört edecek eden ederek edilecek ediliyor edilmesi ediyor elli en etmesi etti ettiği ettiğini eğer gibi göre halen hangi hatta hem henüz hep hepsi her herhangi herkesin hiç hiçbir iki ile ilgili ise itibaren itibariyle için işte kadar karşın katrilyon kendi kendilerine kendini kendisi kendisine kendisini kez ki kim kimden kime kimi kimse kırk milyar milyon mu mü mı nasıl ne neden nedenle nerde nerede nereye niye niçin o olan olarak oldu olduklarını olduğu olduğunu olmadı olmadığı olmak olması olmayan olmaz olsa olsun olup olur olursa oluyor on ona ondan onlar onlardan onları onların onu onun otuz oysa pek rağmen sadece sanki sekiz seksen sen senden seni senin siz sizden sizi sizin tarafından trilyon tüm var vardı ve veya ya yani yapacak yapmak yaptı yaptıkları yaptığı yaptığını yapılan yapılması yapıyor yedi yerine yetmiş yine yirmi yoksa yüz zaten çok çünkü öyle üzere üç şey şeyden şeyi şeyler şu şuna şunda şundan şunları şunu şöyle'.split(' ');
lunr.Pipeline.registerFunction(lunr.tr.stopWordFilter, 'stopWordFilter-tr');
};
}))
\ No newline at end of file
/*!
* Lunr languages, `Danish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if("undefined"==typeof e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if("undefined"==typeof e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWordFilter,e.da.stemmer)},e.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.da.trimmer=e.trimmerSupport.generateTrimmer(e.da.wordCharacters),e.Pipeline.registerFunction(e.da.trimmer,"trimmer-da"),e.da.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=f.cursor+3;if(a=f.limit,r>=0&&r<=f.limit){for(d=r;;){if(e=f.cursor,f.in_grouping(w,97,248)){f.cursor=e;break}if(f.cursor=e,e>=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}a=f.cursor,d>a&&(a=d)}}function i(){var e,r;if(f.cursor>=a&&(r=f.limit_backward,f.limit_backward=a,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=a&&(e=f.limit_backward,f.limit_backward=a,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,n,i=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-i,f.cursor>=a&&(r=f.limit_backward,f.limit_backward=a,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),n=f.limit-f.cursor,t(),f.cursor=f.limit-n;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=a&&(e=f.limit_backward,f.limit_backward=a,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var d,a,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new n;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,i(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=function(r){return-1===e.da.stopWordFilter.stopWords.indexOf(r)?r:void 0},e.da.stopWordFilter.stopWords=new e.SortedSet,e.da.stopWordFilter.stopWords.length=95,e.da.stopWordFilter.stopWords.elements=" ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" "),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}});
\ No newline at end of file
/*!
* Lunr languages, `German` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if("undefined"==typeof e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if("undefined"==typeof e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.de=function(){this.pipeline.reset(),this.pipeline.add(e.de.trimmer,e.de.stopWordFilter,e.de.stemmer)},e.de.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.de.trimmer=e.trimmerSupport.generateTrimmer(e.de.wordCharacters),e.Pipeline.registerFunction(e.de.trimmer,"trimmer-de"),e.de.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return v.eq_s(1,e)&&(v.ket=v.cursor,v.in_grouping(p,97,252))?(v.slice_from(r),v.cursor=n,!0):!1}function i(){for(var r,n,i,s,t=v.cursor;;)if(r=v.cursor,v.bra=r,v.eq_s(1,"ß"))v.ket=v.cursor,v.slice_from("ss");else{if(r>=v.limit)break;v.cursor=r+1}for(v.cursor=t;;)for(n=v.cursor;;){if(i=v.cursor,v.in_grouping(p,97,252)){if(s=v.cursor,v.bra=s,e("u","U",i))break;if(v.cursor=s,e("y","Y",i))break}if(i>=v.limit)return void(v.cursor=n);v.cursor=i+1}}function s(){for(;!v.in_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}for(;!v.out_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}return!1}function t(){m=v.limit,a=m;var e=v.cursor+3;e>=0&&e<=v.limit&&(l=e,s()||(m=v.cursor,l>m&&(m=l),s()||(a=v.cursor)))}function o(){for(var e,r;;){if(r=v.cursor,v.bra=r,e=v.find_among(w,6),!e)return;switch(v.ket=v.cursor,e){case 1:v.slice_from("y");break;case 2:case 5:v.slice_from("u");break;case 3:v.slice_from("a");break;case 4:v.slice_from("o");break;case 6:if(v.cursor>=v.limit)return;v.cursor++}}}function c(){return m<=v.cursor}function u(){return a<=v.cursor}function d(){var e,r,n,i,s=v.limit-v.cursor;if(v.ket=v.cursor,e=v.find_among_b(h,7),e&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:v.slice_del(),v.ket=v.cursor,v.eq_s_b(1,"s")&&(v.bra=v.cursor,v.eq_s_b(3,"nis")&&v.slice_del());break;case 3:v.in_grouping_b(g,98,116)&&v.slice_del()}if(v.cursor=v.limit-s,v.ket=v.cursor,e=v.find_among_b(f,4),e&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:if(v.in_grouping_b(k,98,116)){var t=v.cursor-3;v.limit_backward<=t&&t<=v.limit&&(v.cursor=t,v.slice_del())}}if(v.cursor=v.limit-s,v.ket=v.cursor,e=v.find_among_b(_,8),e&&(v.bra=v.cursor,u()))switch(e){case 1:v.slice_del(),v.ket=v.cursor,v.eq_s_b(2,"ig")&&(v.bra=v.cursor,r=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-r,u()&&v.slice_del()));break;case 2:n=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-n,v.slice_del());break;case 3:if(v.slice_del(),v.ket=v.cursor,i=v.limit-v.cursor,!v.eq_s_b(2,"er")&&(v.cursor=v.limit-i,!v.eq_s_b(2,"en")))break;v.bra=v.cursor,c()&&v.slice_del();break;case 4:v.slice_del(),v.ket=v.cursor,e=v.find_among_b(b,2),e&&(v.bra=v.cursor,u()&&1==e&&v.slice_del())}}var l,a,m,w=[new r("",-1,6),new r("U",0,2),new r("Y",0,1),new r("ä",0,3),new r("ö",0,4),new r("ü",0,5)],h=[new r("e",-1,2),new r("em",-1,1),new r("en",-1,2),new r("ern",-1,1),new r("er",-1,1),new r("s",-1,3),new r("es",5,2)],f=[new r("en",-1,1),new r("er",-1,1),new r("st",-1,2),new r("est",2,1)],b=[new r("ig",-1,1),new r("lich",-1,1)],_=[new r("end",-1,1),new r("ig",-1,2),new r("ung",-1,1),new r("lich",-1,3),new r("isch",-1,2),new r("ik",-1,2),new r("heit",-1,3),new r("keit",-1,4)],p=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8],g=[117,30,5],k=[117,30,4],v=new n;this.setCurrent=function(e){v.setCurrent(e)},this.getCurrent=function(){return v.getCurrent()},this.stem=function(){var e=v.cursor;return i(),v.cursor=e,t(),v.limit_backward=e,v.cursor=v.limit,d(),v.cursor=v.limit_backward,o(),!0}};return function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}}(),e.Pipeline.registerFunction(e.de.stemmer,"stemmer-de"),e.de.stopWordFilter=function(r){return-1===e.de.stopWordFilter.stopWords.indexOf(r)?r:void 0},e.de.stopWordFilter.stopWords=new e.SortedSet,e.de.stopWordFilter.stopWords.length=232,e.de.stopWordFilter.stopWords.elements=" aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über".split(" "),e.Pipeline.registerFunction(e.de.stopWordFilter,"stopWordFilter-de")}});
\ No newline at end of file
/*!
* Lunr languages, `Dutch` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(r,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(r.lunr)}(this,function(){return function(r){if("undefined"==typeof r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if("undefined"==typeof r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");r.du=function(){this.pipeline.reset(),this.pipeline.add(r.du.trimmer,r.du.stopWordFilter,r.du.stemmer)},r.du.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.du.trimmer=r.trimmerSupport.generateTrimmer(r.du.wordCharacters),r.Pipeline.registerFunction(r.du.trimmer,"trimmer-du"),r.du.stemmer=function(){var e=r.stemmerSupport.Among,i=r.stemmerSupport.SnowballProgram,o=new function(){function r(){for(var r,e,i,n=j.cursor;;){if(j.bra=j.cursor,r=j.find_among(b,11))switch(j.ket=j.cursor,r){case 1:j.slice_from("a");continue;case 2:j.slice_from("e");continue;case 3:j.slice_from("i");continue;case 4:j.slice_from("o");continue;case 5:j.slice_from("u");continue;case 6:if(j.cursor>=j.limit)break;j.cursor++;continue}break}for(j.cursor=n,j.bra=n,j.eq_s(1,"y")?(j.ket=j.cursor,j.slice_from("Y")):j.cursor=n;;)if(e=j.cursor,j.in_grouping(q,97,232)){if(i=j.cursor,j.bra=i,j.eq_s(1,"i"))j.ket=j.cursor,j.in_grouping(q,97,232)&&(j.slice_from("I"),j.cursor=e);else if(j.cursor=i,j.eq_s(1,"y"))j.ket=j.cursor,j.slice_from("Y"),j.cursor=e;else if(o(e))break}else if(o(e))break}function o(r){return j.cursor=r,r>=j.limit?!0:(j.cursor++,!1)}function n(){_=j.limit,f=_,t()||(_=j.cursor,3>_&&(_=3),t()||(f=j.cursor))}function t(){for(;!j.in_grouping(q,97,232);){if(j.cursor>=j.limit)return!0;j.cursor++}for(;!j.out_grouping(q,97,232);){if(j.cursor>=j.limit)return!0;j.cursor++}return!1}function s(){for(var r;;)if(j.bra=j.cursor,r=j.find_among(p,3))switch(j.ket=j.cursor,r){case 1:j.slice_from("y");break;case 2:j.slice_from("i");break;case 3:if(j.cursor>=j.limit)return;j.cursor++}}function u(){return _<=j.cursor}function c(){return f<=j.cursor}function a(){var r=j.limit-j.cursor;j.find_among_b(g,3)&&(j.cursor=j.limit-r,j.ket=j.cursor,j.cursor>j.limit_backward&&(j.cursor--,j.bra=j.cursor,j.slice_del()))}function l(){var r;w=!1,j.ket=j.cursor,j.eq_s_b(1,"e")&&(j.bra=j.cursor,u()&&(r=j.limit-j.cursor,j.out_grouping_b(q,97,232)&&(j.cursor=j.limit-r,j.slice_del(),w=!0,a())))}function d(){var r;u()&&(r=j.limit-j.cursor,j.out_grouping_b(q,97,232)&&(j.cursor=j.limit-r,j.eq_s_b(3,"gem")||(j.cursor=j.limit-r,j.slice_del(),a())))}function m(){var r,e,i,o,n,t,s=j.limit-j.cursor;if(j.ket=j.cursor,r=j.find_among_b(k,5))switch(j.bra=j.cursor,r){case 1:u()&&j.slice_from("heid");break;case 2:d();break;case 3:u()&&j.out_grouping_b(W,97,232)&&j.slice_del()}if(j.cursor=j.limit-s,l(),j.cursor=j.limit-s,j.ket=j.cursor,j.eq_s_b(4,"heid")&&(j.bra=j.cursor,c()&&(e=j.limit-j.cursor,j.eq_s_b(1,"c")||(j.cursor=j.limit-e,j.slice_del(),j.ket=j.cursor,j.eq_s_b(2,"en")&&(j.bra=j.cursor,d())))),j.cursor=j.limit-s,j.ket=j.cursor,r=j.find_among_b(h,6))switch(j.bra=j.cursor,r){case 1:if(c()){if(j.slice_del(),i=j.limit-j.cursor,j.ket=j.cursor,j.eq_s_b(2,"ig")&&(j.bra=j.cursor,c()&&(o=j.limit-j.cursor,!j.eq_s_b(1,"e")))){j.cursor=j.limit-o,j.slice_del();break}j.cursor=j.limit-i,a()}break;case 2:c()&&(n=j.limit-j.cursor,j.eq_s_b(1,"e")||(j.cursor=j.limit-n,j.slice_del()));break;case 3:c()&&(j.slice_del(),l());break;case 4:c()&&j.slice_del();break;case 5:c()&&w&&j.slice_del()}j.cursor=j.limit-s,j.out_grouping_b(z,73,232)&&(t=j.limit-j.cursor,j.find_among_b(v,4)&&j.out_grouping_b(q,97,232)&&(j.cursor=j.limit-t,j.ket=j.cursor,j.cursor>j.limit_backward&&(j.cursor--,j.bra=j.cursor,j.slice_del())))}var f,_,w,b=[new e("",-1,6),new e("á",0,1),new e("ä",0,1),new e("é",0,2),new e("ë",0,2),new e("í",0,3),new e("ï",0,3),new e("ó",0,4),new e("ö",0,4),new e("ú",0,5),new e("ü",0,5)],p=[new e("",-1,3),new e("I",0,2),new e("Y",0,1)],g=[new e("dd",-1,-1),new e("kk",-1,-1),new e("tt",-1,-1)],k=[new e("ene",-1,2),new e("se",-1,3),new e("en",-1,2),new e("heden",2,1),new e("s",-1,3)],h=[new e("end",-1,1),new e("ig",-1,2),new e("ing",-1,1),new e("lijk",-1,3),new e("baar",-1,4),new e("bar",-1,5)],v=[new e("aa",-1,-1),new e("ee",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],W=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=new i;this.setCurrent=function(r){j.setCurrent(r)},this.getCurrent=function(){return j.getCurrent()},this.stem=function(){var e=j.cursor;return r(),j.cursor=e,n(),j.limit_backward=e,j.cursor=j.limit,m(),j.cursor=j.limit_backward,s(),!0}};return function(r){return o.setCurrent(r),o.stem(),o.getCurrent()}}(),r.Pipeline.registerFunction(r.du.stemmer,"stemmer-du"),r.du.stopWordFilter=function(e){return-1===r.du.stopWordFilter.stopWords.indexOf(e)?e:void 0},r.du.stopWordFilter.stopWords=new r.SortedSet,r.du.stopWordFilter.stopWords.length=103,r.du.stopWordFilter.stopWords.elements=" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" "),r.Pipeline.registerFunction(r.du.stopWordFilter,"stopWordFilter-du")}});
\ No newline at end of file
/*!
* Lunr languages, `Spanish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,s){"function"==typeof define&&define.amd?define(s):"object"==typeof exports?module.exports=s():s()(e.lunr)}(this,function(){return function(e){if("undefined"==typeof e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if("undefined"==typeof e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.es=function(){this.pipeline.reset(),this.pipeline.add(e.es.trimmer,e.es.stopWordFilter,e.es.stemmer)},e.es.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.es.trimmer=e.trimmerSupport.generateTrimmer(e.es.wordCharacters),e.Pipeline.registerFunction(e.es.trimmer,"trimmer-es"),e.es.stemmer=function(){var s=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(){if(A.out_grouping(z,97,252)){for(;!A.in_grouping(z,97,252);){if(A.cursor>=A.limit)return!0;A.cursor++}return!1}return!0}function n(){if(A.in_grouping(z,97,252)){var s=A.cursor;if(e()){if(A.cursor=s,!A.in_grouping(z,97,252))return!0;for(;!A.out_grouping(z,97,252);){if(A.cursor>=A.limit)return!0;A.cursor++}}return!1}return!0}function i(){var s,r=A.cursor;if(n()){if(A.cursor=r,!A.out_grouping(z,97,252))return;if(s=A.cursor,e()){if(A.cursor=s,!A.in_grouping(z,97,252)||A.cursor>=A.limit)return;A.cursor++}}g=A.cursor}function a(){for(;!A.in_grouping(z,97,252);){if(A.cursor>=A.limit)return!1;A.cursor++}for(;!A.out_grouping(z,97,252);){if(A.cursor>=A.limit)return!1;A.cursor++}return!0}function o(){var e=A.cursor;g=A.limit,p=g,v=g,i(),A.cursor=e,a()&&(p=A.cursor,a()&&(v=A.cursor))}function t(){for(var e;;){if(A.bra=A.cursor,e=A.find_among(y,6))switch(A.ket=A.cursor,e){case 1:A.slice_from("a");continue;case 2:A.slice_from("e");continue;case 3:A.slice_from("i");continue;case 4:A.slice_from("o");continue;case 5:A.slice_from("u");continue;case 6:if(A.cursor>=A.limit)break;A.cursor++;continue}break}}function u(){return g<=A.cursor}function w(){return p<=A.cursor}function c(){return v<=A.cursor}function m(){var e;if(A.ket=A.cursor,A.find_among_b(k,13)&&(A.bra=A.cursor,e=A.find_among_b(q,11),e&&u()))switch(e){case 1:A.bra=A.cursor,A.slice_from("iendo");break;case 2:A.bra=A.cursor,A.slice_from("ando");break;case 3:A.bra=A.cursor,A.slice_from("ar");break;case 4:A.bra=A.cursor,A.slice_from("er");break;case 5:A.bra=A.cursor,A.slice_from("ir");break;case 6:A.slice_del();break;case 7:A.eq_s_b(1,"u")&&A.slice_del()}}function l(e,s){if(!c())return!0;A.slice_del(),A.ket=A.cursor;var r=A.find_among_b(e,s);return r&&(A.bra=A.cursor,1==r&&c()&&A.slice_del()),!1}function d(e){return c()?(A.slice_del(),A.ket=A.cursor,A.eq_s_b(2,e)&&(A.bra=A.cursor,c()&&A.slice_del()),!1):!0}function b(){var e;if(A.ket=A.cursor,e=A.find_among_b(S,46)){switch(A.bra=A.cursor,e){case 1:if(!c())return!1;A.slice_del();break;case 2:if(d("ic"))return!1;break;case 3:if(!c())return!1;A.slice_from("log");break;case 4:if(!c())return!1;A.slice_from("u");break;case 5:if(!c())return!1;A.slice_from("ente");break;case 6:if(!w())return!1;A.slice_del(),A.ket=A.cursor,e=A.find_among_b(W,4),e&&(A.bra=A.cursor,c()&&(A.slice_del(),1==e&&(A.ket=A.cursor,A.eq_s_b(2,"at")&&(A.bra=A.cursor,c()&&A.slice_del()))));break;case 7:if(l(F,3))return!1;break;case 8:if(l(C,3))return!1;break;case 9:if(d("at"))return!1}return!0}return!1}function f(){var e,s;if(A.cursor>=g&&(s=A.limit_backward,A.limit_backward=g,A.ket=A.cursor,e=A.find_among_b(P,12),A.limit_backward=s,e)){if(A.bra=A.cursor,1==e){if(!A.eq_s_b(1,"u"))return!1;A.slice_del()}return!0}return!1}function _(){var e,s,r,n;if(A.cursor>=g&&(s=A.limit_backward,A.limit_backward=g,A.ket=A.cursor,e=A.find_among_b(L,96),A.limit_backward=s,e))switch(A.bra=A.cursor,e){case 1:r=A.limit-A.cursor,A.eq_s_b(1,"u")?(n=A.limit-A.cursor,A.eq_s_b(1,"g")?A.cursor=A.limit-n:A.cursor=A.limit-r):A.cursor=A.limit-r,A.bra=A.cursor;case 2:A.slice_del()}}function h(){var e,s;if(A.ket=A.cursor,e=A.find_among_b(x,8))switch(A.bra=A.cursor,e){case 1:u()&&A.slice_del();break;case 2:u()&&(A.slice_del(),A.ket=A.cursor,A.eq_s_b(1,"u")&&(A.bra=A.cursor,s=A.limit-A.cursor,A.eq_s_b(1,"g")&&(A.cursor=A.limit-s,u()&&A.slice_del())))}}var v,p,g,y=[new s("",-1,6),new s("á",0,1),new s("é",0,2),new s("í",0,3),new s("ó",0,4),new s("ú",0,5)],k=[new s("la",-1,-1),new s("sela",0,-1),new s("le",-1,-1),new s("me",-1,-1),new s("se",-1,-1),new s("lo",-1,-1),new s("selo",5,-1),new s("las",-1,-1),new s("selas",7,-1),new s("les",-1,-1),new s("los",-1,-1),new s("selos",10,-1),new s("nos",-1,-1)],q=[new s("ando",-1,6),new s("iendo",-1,6),new s("yendo",-1,7),new s("ándo",-1,2),new s("iéndo",-1,1),new s("ar",-1,6),new s("er",-1,6),new s("ir",-1,6),new s("ár",-1,3),new s("ér",-1,4),new s("ír",-1,5)],W=[new s("ic",-1,-1),new s("ad",-1,-1),new s("os",-1,-1),new s("iv",-1,1)],F=[new s("able",-1,1),new s("ible",-1,1),new s("ante",-1,1)],C=[new s("ic",-1,1),new s("abil",-1,1),new s("iv",-1,1)],S=[new s("ica",-1,1),new s("ancia",-1,2),new s("encia",-1,5),new s("adora",-1,2),new s("osa",-1,1),new s("ista",-1,1),new s("iva",-1,9),new s("anza",-1,1),new s("logía",-1,3),new s("idad",-1,8),new s("able",-1,1),new s("ible",-1,1),new s("ante",-1,2),new s("mente",-1,7),new s("amente",13,6),new s("ación",-1,2),new s("ución",-1,4),new s("ico",-1,1),new s("ismo",-1,1),new s("oso",-1,1),new s("amiento",-1,1),new s("imiento",-1,1),new s("ivo",-1,9),new s("ador",-1,2),new s("icas",-1,1),new s("ancias",-1,2),new s("encias",-1,5),new s("adoras",-1,2),new s("osas",-1,1),new s("istas",-1,1),new s("ivas",-1,9),new s("anzas",-1,1),new s("logías",-1,3),new s("idades",-1,8),new s("ables",-1,1),new s("ibles",-1,1),new s("aciones",-1,2),new s("uciones",-1,4),new s("adores",-1,2),new s("antes",-1,2),new s("icos",-1,1),new s("ismos",-1,1),new s("osos",-1,1),new s("amientos",-1,1),new s("imientos",-1,1),new s("ivos",-1,9)],P=[new s("ya",-1,1),new s("ye",-1,1),new s("yan",-1,1),new s("yen",-1,1),new s("yeron",-1,1),new s("yendo",-1,1),new s("yo",-1,1),new s("yas",-1,1),new s("yes",-1,1),new s("yais",-1,1),new s("yamos",-1,1),new s("",-1,1)],L=[new s("aba",-1,2),new s("ada",-1,2),new s("ida",-1,2),new s("ara",-1,2),new s("iera",-1,2),new s("ía",-1,2),new s("aría",5,2),new s("ería",5,2),new s("iría",5,2),new s("ad",-1,2),new s("ed",-1,2),new s("id",-1,2),new s("ase",-1,2),new s("iese",-1,2),new s("aste",-1,2),new s("iste",-1,2),new s("an",-1,2),new s("aban",16,2),new s("aran",16,2),new s("ieran",16,2),new s("ían",16,2),new s("arían",20,2),new s("erían",20,2),new s("irían",20,2),new s("en",-1,1),new s("asen",24,2),new s("iesen",24,2),new s("aron",-1,2),new s("ieron",-1,2),new s("arán",-1,2),new s("erán",-1,2),new s("irán",-1,2),new s("ado",-1,2),new s("ido",-1,2),new s("ando",-1,2),new s("iendo",-1,2),new s("ar",-1,2),new s("er",-1,2),new s("ir",-1,2),new s("as",-1,2),new s("abas",39,2),new s("adas",39,2),new s("idas",39,2),new s("aras",39,2),new s("ieras",39,2),new s("ías",39,2),new s("arías",45,2),new s("erías",45,2),new s("irías",45,2),new s("es",-1,1),new s("ases",49,2),new s("ieses",49,2),new s("abais",-1,2),new s("arais",-1,2),new s("ierais",-1,2),new s("íais",-1,2),new s("aríais",55,2),new s("eríais",55,2),new s("iríais",55,2),new s("aseis",-1,2),new s("ieseis",-1,2),new s("asteis",-1,2),new s("isteis",-1,2),new s("áis",-1,2),new s("éis",-1,1),new s("aréis",64,2),new s("eréis",64,2),new s("iréis",64,2),new s("ados",-1,2),new s("idos",-1,2),new s("amos",-1,2),new s("ábamos",70,2),new s("áramos",70,2),new s("iéramos",70,2),new s("íamos",70,2),new s("aríamos",74,2),new s("eríamos",74,2),new s("iríamos",74,2),new s("emos",-1,1),new s("aremos",78,2),new s("eremos",78,2),new s("iremos",78,2),new s("ásemos",78,2),new s("iésemos",78,2),new s("imos",-1,2),new s("arás",-1,2),new s("erás",-1,2),new s("irás",-1,2),new s("ís",-1,2),new s("ará",-1,2),new s("erá",-1,2),new s("irá",-1,2),new s("aré",-1,2),new s("eré",-1,2),new s("iré",-1,2),new s("",-1,2)],x=[new s("a",-1,1),new s("e",-1,2),new s("o",-1,1),new s("os",-1,1),new s("á",-1,1),new s("é",-1,2),new s("í",-1,1),new s("ó",-1,1)],z=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,4,10],A=new r;this.setCurrent=function(e){A.setCurrent(e)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){var e=A.cursor;return o(),A.limit_backward=e,A.cursor=A.limit,m(),A.cursor=A.limit,b()||(A.cursor=A.limit,f()||(A.cursor=A.limit,_())),A.cursor=A.limit,h(),A.cursor=A.limit_backward,t(),!0}};return function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}}(),e.Pipeline.registerFunction(e.es.stemmer,"stemmer-es"),e.es.stopWordFilter=function(s){return-1===e.es.stopWordFilter.stopWords.indexOf(s)?s:void 0},e.es.stopWordFilter.stopWords=new e.SortedSet,e.es.stopWordFilter.stopWords.length=309,e.es.stopWordFilter.stopWords.elements=" a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos".split(" "),e.Pipeline.registerFunction(e.es.stopWordFilter,"stopWordFilter-es")}});
\ No newline at end of file
/*!
* Lunr languages, `Finnish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(i,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(i.lunr)}(this,function(){return function(i){if("undefined"==typeof i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if("undefined"==typeof i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");i.fi=function(){this.pipeline.reset(),this.pipeline.add(i.fi.trimmer,i.fi.stopWordFilter,i.fi.stemmer)},i.fi.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",i.fi.trimmer=i.trimmerSupport.generateTrimmer(i.fi.wordCharacters),i.Pipeline.registerFunction(i.fi.trimmer,"trimmer-fi"),i.fi.stemmer=function(){var e=i.stemmerSupport.Among,r=i.stemmerSupport.SnowballProgram,n=new function(){function i(){f=A.limit,d=f,n()||(f=A.cursor,n()||(d=A.cursor))}function n(){for(var i;;){if(i=A.cursor,A.in_grouping(P,97,246))break;if(A.cursor=i,i>=A.limit)return!0;A.cursor++}for(A.cursor=i;!A.out_grouping(P,97,246);){if(A.cursor>=A.limit)return!0;A.cursor++}return!1}function t(){return d<=A.cursor}function s(){var i,e;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(p,10)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.in_grouping_b(x,97,246))return;break;case 2:if(!t())return}A.slice_del()}else A.limit_backward=e}function o(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(q,9))switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:r=A.limit-A.cursor,A.eq_s_b(1,"k")||(A.cursor=A.limit-r,A.slice_del());break;case 2:A.slice_del(),A.ket=A.cursor,A.eq_s_b(3,"kse")&&(A.bra=A.cursor,A.slice_from("ksi"));break;case 3:A.slice_del();break;case 4:A.find_among_b(h,6)&&A.slice_del();break;case 5:A.find_among_b(g,6)&&A.slice_del();break;case 6:A.find_among_b(j,2)&&A.slice_del()}else A.limit_backward=e}function l(){return A.find_among_b(v,7)}function a(){return A.eq_s_b(1,"i")&&A.in_grouping_b(L,97,246)}function u(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(W,30)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.eq_s_b(1,"a"))return;break;case 2:case 9:if(!A.eq_s_b(1,"e"))return;break;case 3:if(!A.eq_s_b(1,"i"))return;break;case 4:if(!A.eq_s_b(1,"o"))return;break;case 5:if(!A.eq_s_b(1,"ä"))return;break;case 6:if(!A.eq_s_b(1,"ö"))return;break;case 7:if(r=A.limit-A.cursor,!l()&&(A.cursor=A.limit-r,!A.eq_s_b(2,"ie"))){A.cursor=A.limit-r;break}if(A.cursor=A.limit-r,A.cursor<=A.limit_backward){A.cursor=A.limit-r;break}A.cursor--,A.bra=A.cursor;break;case 8:if(!A.in_grouping_b(P,97,246)||!A.out_grouping_b(P,97,246))return}A.slice_del(),k=!0}else A.limit_backward=e}function c(){var i,e,r;if(A.cursor>=d)if(e=A.limit_backward,A.limit_backward=d,A.ket=A.cursor,i=A.find_among_b(F,14)){if(A.bra=A.cursor,A.limit_backward=e,1==i){if(r=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-r}A.slice_del()}else A.limit_backward=e}function m(){var i;A.cursor>=f&&(i=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.find_among_b(C,2)?(A.bra=A.cursor,A.limit_backward=i,A.slice_del()):A.limit_backward=i)}function w(){var i,e,r,n,t,s;if(A.cursor>=f){if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.eq_s_b(1,"t")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.in_grouping_b(P,97,246)&&(A.cursor=A.limit-r,A.slice_del(),A.limit_backward=e,n=A.limit-A.cursor,A.cursor>=d&&(A.cursor=d,t=A.limit_backward,A.limit_backward=A.cursor,A.cursor=A.limit-n,A.ket=A.cursor,i=A.find_among_b(S,2))))){if(A.bra=A.cursor,A.limit_backward=t,1==i){if(s=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-s}return void A.slice_del()}A.limit_backward=e}}function _(){var i,e,r,n;if(A.cursor>=f){for(i=A.limit_backward,A.limit_backward=f,e=A.limit-A.cursor,l()&&(A.cursor=A.limit-e,A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.in_grouping_b(y,97,228)&&(A.bra=A.cursor,A.out_grouping_b(P,97,246)&&A.slice_del()),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"j")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.eq_s_b(1,"o")?A.slice_del():(A.cursor=A.limit-r,A.eq_s_b(1,"u")&&A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"o")&&(A.bra=A.cursor,A.eq_s_b(1,"j")&&A.slice_del()),A.cursor=A.limit-e,A.limit_backward=i;;){if(n=A.limit-A.cursor,A.out_grouping_b(P,97,246)){A.cursor=A.limit-n;break}if(A.cursor=A.limit-n,A.cursor<=A.limit_backward)return;A.cursor--}A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,b=A.slice_to(),A.eq_v_b(b)&&A.slice_del())}}var k,b,d,f,p=[new e("pa",-1,1),new e("sti",-1,2),new e("kaan",-1,1),new e("han",-1,1),new e("kin",-1,1),new e("hän",-1,1),new e("kään",-1,1),new e("ko",-1,1),new e("",-1,1),new e("",-1,1)],h=[new e("lla",-1,-1),new e("na",-1,-1),new e("ssa",-1,-1),new e("ta",-1,-1),new e("lta",3,-1),new e("sta",3,-1)],g=[new e("llä",-1,-1),new e("",-1,-1),new e("ssä",-1,-1),new e("",-1,-1),new e("ltä",3,-1),new e("stä",3,-1)],j=[new e("lle",-1,-1),new e("ine",-1,-1)],q=[new e("nsa",-1,3),new e("mme",-1,3),new e("nne",-1,3),new e("ni",-1,2),new e("si",-1,1),new e("an",-1,4),new e("en",-1,6),new e("än",-1,5),new e("nsä",-1,3)],v=[new e("aa",-1,-1),new e("ee",-1,-1),new e("ii",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1),new e("ää",-1,-1),new e("öö",-1,-1)],W=[new e("a",-1,8),new e("lla",0,-1),new e("na",0,-1),new e("ssa",0,-1),new e("ta",0,-1),new e("lta",4,-1),new e("sta",4,-1),new e("tta",4,9),new e("lle",-1,-1),new e("ine",-1,-1),new e("ksi",-1,-1),new e("n",-1,7),new e("han",11,1),new e("den",11,-1,a),new e("seen",11,-1,l),new e("hen",11,2),new e("tten",11,-1,a),new e("hin",11,3),new e("siin",11,-1,a),new e("hon",11,4),new e("hän",11,5),new e("hön",11,6),new e("ä",-1,8),new e("llä",22,-1),new e("",22,-1),new e("ssä",22,-1),new e("",22,-1),new e("ltä",26,-1),new e("stä",26,-1),new e("ttä",26,9)],F=[new e("eja",-1,-1),new e("mma",-1,1),new e("imma",1,-1),new e("mpa",-1,1),new e("impa",3,-1),new e("mmi",-1,1),new e("immi",5,-1),new e("mpi",-1,1),new e("impi",7,-1),new e("ejä",-1,-1),new e("mmä",-1,1),new e("immä",10,-1),new e("mpä",-1,1),new e("impä",12,-1)],C=[new e("i",-1,-1),new e("j",-1,-1)],S=[new e("mma",-1,1),new e("imma",0,-1)],y=[17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8],P=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],x=[17,97,24,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],A=new r;this.setCurrent=function(i){A.setCurrent(i)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){var e=A.cursor;return i(),k=!1,A.limit_backward=e,A.cursor=A.limit,s(),A.cursor=A.limit,o(),A.cursor=A.limit,u(),A.cursor=A.limit,c(),A.cursor=A.limit,k?(m(),A.cursor=A.limit):(A.cursor=A.limit,w(),A.cursor=A.limit),_(),!0}};return function(i){return n.setCurrent(i),n.stem(),n.getCurrent()}}(),i.Pipeline.registerFunction(i.fi.stemmer,"stemmer-fi"),i.fi.stopWordFilter=function(e){return-1===i.fi.stopWordFilter.stopWords.indexOf(e)?e:void 0},i.fi.stopWordFilter.stopWords=new i.SortedSet,i.fi.stopWordFilter.stopWords.length=236,i.fi.stopWordFilter.stopWords.elements=" ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli".split(" "),i.Pipeline.registerFunction(i.fi.stopWordFilter,"stopWordFilter-fi")}});
\ No newline at end of file
/*!
* Lunr languages, `French` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if("undefined"==typeof e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if("undefined"==typeof e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.fr=function(){this.pipeline.reset(),this.pipeline.add(e.fr.trimmer,e.fr.stopWordFilter,e.fr.stemmer)},e.fr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.fr.trimmer=e.trimmerSupport.generateTrimmer(e.fr.wordCharacters),e.Pipeline.registerFunction(e.fr.trimmer,"trimmer-fr"),e.fr.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,s){return P.eq_s(1,e)&&(P.ket=P.cursor,P.in_grouping(C,97,251))?(P.slice_from(r),P.cursor=s,!0):!1}function i(e,r,s){return P.eq_s(1,e)?(P.ket=P.cursor,P.slice_from(r),P.cursor=s,!0):!1}function n(){for(var r,s;;){if(r=P.cursor,P.in_grouping(C,97,251)){if(P.bra=P.cursor,s=P.cursor,e("u","U",r))continue;if(P.cursor=s,e("i","I",r))continue;if(P.cursor=s,i("y","Y",r))continue}if(P.cursor=r,P.bra=r,!e("y","Y",r)){if(P.cursor=r,P.eq_s(1,"q")&&(P.bra=P.cursor,i("u","U",r)))continue;if(P.cursor=r,r>=P.limit)return;P.cursor++}}}function t(){for(;!P.in_grouping(C,97,251);){if(P.cursor>=P.limit)return!0;P.cursor++}for(;!P.out_grouping(C,97,251);){if(P.cursor>=P.limit)return!0;P.cursor++}return!1}function o(){var e=P.cursor;if(q=P.limit,g=q,p=q,P.in_grouping(C,97,251)&&P.in_grouping(C,97,251)&&P.cursor<P.limit)P.cursor++;else if(P.cursor=e,!P.find_among(v,3)){P.cursor=e;do{if(P.cursor>=P.limit){P.cursor=q;break}P.cursor++}while(!P.in_grouping(C,97,251))}q=P.cursor,P.cursor=e,t()||(g=P.cursor,t()||(p=P.cursor))}function u(){for(var e,r;;){if(r=P.cursor,P.bra=r,e=P.find_among(z,4),!e)break;switch(P.ket=P.cursor,e){case 1:P.slice_from("i");break;case 2:P.slice_from("u");break;case 3:P.slice_from("y");break;case 4:if(P.cursor>=P.limit)return;P.cursor++}}}function c(){return q<=P.cursor}function a(){return g<=P.cursor}function l(){return p<=P.cursor}function w(){var e,r;if(P.ket=P.cursor,e=P.find_among_b(W,43)){switch(P.bra=P.cursor,e){case 1:if(!l())return!1;P.slice_del();break;case 2:if(!l())return!1;P.slice_del(),P.ket=P.cursor,P.eq_s_b(2,"ic")&&(P.bra=P.cursor,l()?P.slice_del():P.slice_from("iqU"));break;case 3:if(!l())return!1;P.slice_from("log");break;case 4:if(!l())return!1;P.slice_from("u");break;case 5:if(!l())return!1;P.slice_from("ent");break;case 6:if(!c())return!1;if(P.slice_del(),P.ket=P.cursor,e=P.find_among_b(h,6))switch(P.bra=P.cursor,e){case 1:l()&&(P.slice_del(),P.ket=P.cursor,P.eq_s_b(2,"at")&&(P.bra=P.cursor,l()&&P.slice_del()));break;case 2:l()?P.slice_del():a()&&P.slice_from("eux");break;case 3:l()&&P.slice_del();break;case 4:c()&&P.slice_from("i")}break;case 7:if(!l())return!1;if(P.slice_del(),P.ket=P.cursor,e=P.find_among_b(y,3))switch(P.bra=P.cursor,e){case 1:l()?P.slice_del():P.slice_from("abl");break;case 2:l()?P.slice_del():P.slice_from("iqU");break;case 3:l()&&P.slice_del()}break;case 8:if(!l())return!1;if(P.slice_del(),P.ket=P.cursor,P.eq_s_b(2,"at")&&(P.bra=P.cursor,l()&&(P.slice_del(),P.ket=P.cursor,P.eq_s_b(2,"ic")))){P.bra=P.cursor,l()?P.slice_del():P.slice_from("iqU");break}break;case 9:P.slice_from("eau");break;case 10:if(!a())return!1;P.slice_from("al");break;case 11:if(l())P.slice_del();else{if(!a())return!1;P.slice_from("eux")}break;case 12:if(!a()||!P.out_grouping_b(C,97,251))return!1;P.slice_del();break;case 13:return c()&&P.slice_from("ant"),!1;case 14:return c()&&P.slice_from("ent"),!1;case 15:return r=P.limit-P.cursor,P.in_grouping_b(C,97,251)&&c()&&(P.cursor=P.limit-r,P.slice_del()),!1}return!0}return!1}function f(){var e,r;if(P.cursor<q)return!1;if(r=P.limit_backward,P.limit_backward=q,P.ket=P.cursor,e=P.find_among_b(F,35),!e)return P.limit_backward=r,!1;if(P.bra=P.cursor,1==e){if(!P.out_grouping_b(C,97,251))return P.limit_backward=r,!1;P.slice_del()}return P.limit_backward=r,!0}function m(){var e,r,s;if(P.cursor<q)return!1;if(r=P.limit_backward,P.limit_backward=q,P.ket=P.cursor,e=P.find_among_b(x,38),!e)return P.limit_backward=r,!1;switch(P.bra=P.cursor,e){case 1:if(!l())return P.limit_backward=r,!1;P.slice_del();break;case 2:P.slice_del();break;case 3:P.slice_del(),s=P.limit-P.cursor,P.ket=P.cursor,P.eq_s_b(1,"e")?(P.bra=P.cursor,P.slice_del()):P.cursor=P.limit-s}return P.limit_backward=r,!0}function _(){var e,r,s,i,n=P.limit-P.cursor;if(P.ket=P.cursor,P.eq_s_b(1,"s")?(P.bra=P.cursor,r=P.limit-P.cursor,P.out_grouping_b(S,97,232)?(P.cursor=P.limit-r,P.slice_del()):P.cursor=P.limit-n):P.cursor=P.limit-n,P.cursor>=q){if(s=P.limit_backward,P.limit_backward=q,P.ket=P.cursor,e=P.find_among_b(I,7))switch(P.bra=P.cursor,e){case 1:if(l()){if(i=P.limit-P.cursor,!P.eq_s_b(1,"s")&&(P.cursor=P.limit-i,!P.eq_s_b(1,"t")))break;P.slice_del()}break;case 2:P.slice_from("i");break;case 3:P.slice_del();break;case 4:P.eq_s_b(2,"gu")&&P.slice_del()}P.limit_backward=s}}function b(){var e=P.limit-P.cursor;P.find_among_b(U,5)&&(P.cursor=P.limit-e,P.ket=P.cursor,P.cursor>P.limit_backward&&(P.cursor--,P.bra=P.cursor,P.slice_del()))}function d(){for(var e,r=1;P.out_grouping_b(C,97,251);)r--;if(0>=r){if(P.ket=P.cursor,e=P.limit-P.cursor,!P.eq_s_b(1,"é")&&(P.cursor=P.limit-e,!P.eq_s_b(1,"è")))return;P.bra=P.cursor,P.slice_from("e")}}function k(){return w()||(P.cursor=P.limit,f()||(P.cursor=P.limit,m()))?(P.cursor=P.limit,P.ket=P.cursor,void(P.eq_s_b(1,"Y")?(P.bra=P.cursor,P.slice_from("i")):(P.cursor=P.limit,P.eq_s_b(1,"ç")&&(P.bra=P.cursor,P.slice_from("c"))))):(P.cursor=P.limit,void _())}var p,g,q,v=[new r("col",-1,-1),new r("par",-1,-1),new r("tap",-1,-1)],z=[new r("",-1,4),new r("I",0,1),new r("U",0,2),new r("Y",0,3)],h=[new r("iqU",-1,3),new r("abl",-1,3),new r("Ièr",-1,4),new r("ièr",-1,4),new r("eus",-1,2),new r("iv",-1,1)],y=[new r("ic",-1,2),new r("abil",-1,1),new r("iv",-1,3)],W=[new r("iqUe",-1,1),new r("atrice",-1,2),new r("ance",-1,1),new r("ence",-1,5),new r("logie",-1,3),new r("able",-1,1),new r("isme",-1,1),new r("euse",-1,11),new r("iste",-1,1),new r("ive",-1,8),new r("if",-1,8),new r("usion",-1,4),new r("ation",-1,2),new r("ution",-1,4),new r("ateur",-1,2),new r("iqUes",-1,1),new r("atrices",-1,2),new r("ances",-1,1),new r("ences",-1,5),new r("logies",-1,3),new r("ables",-1,1),new r("ismes",-1,1),new r("euses",-1,11),new r("istes",-1,1),new r("ives",-1,8),new r("ifs",-1,8),new r("usions",-1,4),new r("ations",-1,2),new r("utions",-1,4),new r("ateurs",-1,2),new r("ments",-1,15),new r("ements",30,6),new r("issements",31,12),new r("ités",-1,7),new r("ment",-1,15),new r("ement",34,6),new r("issement",35,12),new r("amment",34,13),new r("emment",34,14),new r("aux",-1,10),new r("eaux",39,9),new r("eux",-1,1),new r("ité",-1,7)],F=[new r("ira",-1,1),new r("ie",-1,1),new r("isse",-1,1),new r("issante",-1,1),new r("i",-1,1),new r("irai",4,1),new r("ir",-1,1),new r("iras",-1,1),new r("ies",-1,1),new r("îmes",-1,1),new r("isses",-1,1),new r("issantes",-1,1),new r("îtes",-1,1),new r("is",-1,1),new r("irais",13,1),new r("issais",13,1),new r("irions",-1,1),new r("issions",-1,1),new r("irons",-1,1),new r("issons",-1,1),new r("issants",-1,1),new r("it",-1,1),new r("irait",21,1),new r("issait",21,1),new r("issant",-1,1),new r("iraIent",-1,1),new r("issaIent",-1,1),new r("irent",-1,1),new r("issent",-1,1),new r("iront",-1,1),new r("ît",-1,1),new r("iriez",-1,1),new r("issiez",-1,1),new r("irez",-1,1),new r("issez",-1,1)],x=[new r("a",-1,3),new r("era",0,2),new r("asse",-1,3),new r("ante",-1,3),new r("ée",-1,2),new r("ai",-1,3),new r("erai",5,2),new r("er",-1,2),new r("as",-1,3),new r("eras",8,2),new r("âmes",-1,3),new r("asses",-1,3),new r("antes",-1,3),new r("âtes",-1,3),new r("ées",-1,2),new r("ais",-1,3),new r("erais",15,2),new r("ions",-1,1),new r("erions",17,2),new r("assions",17,3),new r("erons",-1,2),new r("ants",-1,3),new r("és",-1,2),new r("ait",-1,3),new r("erait",23,2),new r("ant",-1,3),new r("aIent",-1,3),new r("eraIent",26,2),new r("èrent",-1,2),new r("assent",-1,3),new r("eront",-1,2),new r("ât",-1,3),new r("ez",-1,2),new r("iez",32,2),new r("eriez",33,2),new r("assiez",33,3),new r("erez",32,2),new r("é",-1,2)],I=[new r("e",-1,3),new r("Ière",0,2),new r("ière",0,2),new r("ion",-1,1),new r("Ier",-1,2),new r("ier",-1,2),new r("ë",-1,4)],U=[new r("ell",-1,-1),new r("eill",-1,-1),new r("enn",-1,-1),new r("onn",-1,-1),new r("ett",-1,-1)],C=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],S=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],P=new s;this.setCurrent=function(e){P.setCurrent(e)},this.getCurrent=function(){return P.getCurrent()},this.stem=function(){var e=P.cursor;return n(),P.cursor=e,o(),P.limit_backward=e,P.cursor=P.limit,k(),P.cursor=P.limit,b(),P.cursor=P.limit,d(),P.cursor=P.limit_backward,u(),!0}};return function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}}(),e.Pipeline.registerFunction(e.fr.stemmer,"stemmer-fr"),e.fr.stopWordFilter=function(r){return-1===e.fr.stopWordFilter.stopWords.indexOf(r)?r:void 0},e.fr.stopWordFilter.stopWords=new e.SortedSet,e.fr.stopWordFilter.stopWords.length=164,e.fr.stopWordFilter.stopWords.elements=" ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" "),e.Pipeline.registerFunction(e.fr.stopWordFilter,"stopWordFilter-fr")}});
\ No newline at end of file
/*!
* Lunr languages, `Hungarian` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if("undefined"==typeof e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if("undefined"==typeof e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hu=function(){this.pipeline.reset(),this.pipeline.add(e.hu.trimmer,e.hu.stopWordFilter,e.hu.stemmer)},e.hu.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.hu.trimmer=e.trimmerSupport.generateTrimmer(e.hu.wordCharacters),e.Pipeline.registerFunction(e.hu.trimmer,"trimmer-hu"),e.hu.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,n=L.cursor;if(b=L.limit,L.in_grouping(P,97,252))for(;;){if(e=L.cursor,L.out_grouping(P,97,252))return L.cursor=e,L.find_among(g,8)||(L.cursor=e,e<L.limit&&L.cursor++),void(b=L.cursor);if(L.cursor=e,e>=L.limit)return void(b=e);L.cursor++}if(L.cursor=n,L.out_grouping(P,97,252)){for(;!L.in_grouping(P,97,252);){if(L.cursor>=L.limit)return;L.cursor++}b=L.cursor}}function i(){return b<=L.cursor}function t(){var e;if(L.ket=L.cursor,e=L.find_among_b(h,2),e&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e")}}function s(){var e=L.limit-L.cursor;return L.find_among_b(p,23)?(L.cursor=L.limit-e,!0):!1}function a(){if(L.cursor>L.limit_backward){L.cursor--,L.ket=L.cursor;var e=L.cursor-1;L.limit_backward<=e&&e<=L.limit&&(L.cursor=e,L.bra=e,L.slice_del())}}function o(){var e;if(L.ket=L.cursor,e=L.find_among_b(_,2),e&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!s())return;L.slice_del(),a()}}function c(){L.ket=L.cursor,L.find_among_b(v,44)&&(L.bra=L.cursor,i()&&(L.slice_del(),t()))}function w(){var e;if(L.ket=L.cursor,e=L.find_among_b(y,3),e&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("e");break;case 2:case 3:L.slice_from("a")}}function l(){var e;if(L.ket=L.cursor,e=L.find_among_b(z,6),e&&(L.bra=L.cursor,i()))switch(e){case 1:case 2:L.slice_del();break;case 3:L.slice_from("a");break;case 4:L.slice_from("e")}}function u(){var e;if(L.ket=L.cursor,e=L.find_among_b(j,2),e&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!s())return;L.slice_del(),a()}}function m(){var e;if(L.ket=L.cursor,e=L.find_among_b(W,7),e&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e");break;case 3:case 4:case 5:case 6:case 7:L.slice_del()}}function k(){var e;if(L.ket=L.cursor,e=L.find_among_b(F,12),e&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 9:L.slice_del();break;case 2:case 5:case 8:L.slice_from("e");break;case 3:case 6:L.slice_from("a")}}function f(){var e;if(L.ket=L.cursor,e=L.find_among_b(C,31),e&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 8:case 9:case 12:case 13:case 16:case 17:case 18:L.slice_del();break;case 2:case 5:case 10:case 14:case 19:L.slice_from("a");break;case 3:case 6:case 11:case 15:case 20:L.slice_from("e")}}function d(){var e;if(L.ket=L.cursor,e=L.find_among_b(S,42),e&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 20:case 21:case 24:case 25:case 26:case 29:L.slice_del();break;case 2:case 7:case 12:case 18:case 22:case 27:L.slice_from("a");break;case 3:case 8:case 13:case 19:case 23:case 28:L.slice_from("e")}}var b,g=[new n("cs",-1,-1),new n("dzs",-1,-1),new n("gy",-1,-1),new n("ly",-1,-1),new n("ny",-1,-1),new n("sz",-1,-1),new n("ty",-1,-1),new n("zs",-1,-1)],h=[new n("á",-1,1),new n("é",-1,2)],p=[new n("bb",-1,-1),new n("cc",-1,-1),new n("dd",-1,-1),new n("ff",-1,-1),new n("gg",-1,-1),new n("jj",-1,-1),new n("kk",-1,-1),new n("ll",-1,-1),new n("mm",-1,-1),new n("nn",-1,-1),new n("pp",-1,-1),new n("rr",-1,-1),new n("ccs",-1,-1),new n("ss",-1,-1),new n("zzs",-1,-1),new n("tt",-1,-1),new n("vv",-1,-1),new n("ggy",-1,-1),new n("lly",-1,-1),new n("nny",-1,-1),new n("tty",-1,-1),new n("ssz",-1,-1),new n("zz",-1,-1)],_=[new n("al",-1,1),new n("el",-1,2)],v=[new n("ba",-1,-1),new n("ra",-1,-1),new n("be",-1,-1),new n("re",-1,-1),new n("ig",-1,-1),new n("nak",-1,-1),new n("nek",-1,-1),new n("val",-1,-1),new n("vel",-1,-1),new n("ul",-1,-1),new n("nál",-1,-1),new n("nél",-1,-1),new n("ból",-1,-1),new n("ról",-1,-1),new n("tól",-1,-1),new n("bõl",-1,-1),new n("rõl",-1,-1),new n("tõl",-1,-1),new n("ül",-1,-1),new n("n",-1,-1),new n("an",19,-1),new n("ban",20,-1),new n("en",19,-1),new n("ben",22,-1),new n("képpen",22,-1),new n("on",19,-1),new n("ön",19,-1),new n("képp",-1,-1),new n("kor",-1,-1),new n("t",-1,-1),new n("at",29,-1),new n("et",29,-1),new n("ként",29,-1),new n("anként",32,-1),new n("enként",32,-1),new n("onként",32,-1),new n("ot",29,-1),new n("ért",29,-1),new n("öt",29,-1),new n("hez",-1,-1),new n("hoz",-1,-1),new n("höz",-1,-1),new n("",-1,-1),new n("",-1,-1)],y=[new n("án",-1,2),new n("én",-1,1),new n("ánként",-1,3)],z=[new n("stul",-1,2),new n("astul",0,1),new n("ástul",0,3),new n("stül",-1,2),new n("estül",3,1),new n("éstül",3,4)],j=[new n("á",-1,1),new n("é",-1,2)],W=[new n("k",-1,7),new n("ak",0,4),new n("ek",0,6),new n("ok",0,5),new n("ák",0,1),new n("ék",0,2),new n("ök",0,3)],F=[new n("éi",-1,7),new n("áéi",0,6),new n("ééi",0,5),new n("é",-1,9),new n("",3,4),new n("aké",4,1),new n("eké",4,1),new n("oké",4,1),new n("áké",4,3),new n("éké",4,2),new n("öké",4,1),new n("éé",3,8)],C=[new n("a",-1,18),new n("ja",0,17),new n("d",-1,16),new n("ad",2,13),new n("ed",2,13),new n("od",2,13),new n("ád",2,14),new n("éd",2,15),new n("öd",2,13),new n("e",-1,18),new n("je",9,17),new n("nk",-1,4),new n("unk",11,1),new n("ánk",11,2),new n("énk",11,3),new n("ünk",11,1),new n("uk",-1,8),new n("juk",16,7),new n("ájuk",17,5),new n("ük",-1,8),new n("jük",19,7),new n("éjük",20,6),new n("m",-1,12),new n("am",22,9),new n("em",22,9),new n("om",22,9),new n("ám",22,10),new n("ém",22,11),new n("o",-1,18),new n("á",-1,19),new n("é",-1,20)],S=[new n("id",-1,10),new n("aid",0,9),new n("jaid",1,6),new n("eid",0,9),new n("jeid",3,6),new n("áid",0,7),new n("éid",0,8),new n("i",-1,15),new n("ai",7,14),new n("jai",8,11),new n("ei",7,14),new n("jei",10,11),new n("ái",7,12),new n("éi",7,13),new n("itek",-1,24),new n("eitek",14,21),new n("jeitek",15,20),new n("éitek",14,23),new n("ik",-1,29),new n("aik",18,26),new n("jaik",19,25),new n("eik",18,26),new n("jeik",21,25),new n("áik",18,27),new n("éik",18,28),new n("ink",-1,20),new n("aink",25,17),new n("jaink",26,16),new n("eink",25,17),new n("jeink",28,16),new n("áink",25,18),new n("éink",25,19),new n("aitok",-1,21),new n("jaitok",32,20),new n("áitok",-1,22),new n("im",-1,5),new n("aim",35,4),new n("jaim",36,1),new n("eim",35,4),new n("jeim",38,1),new n("áim",35,2),new n("éim",35,3)],P=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,52,14],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var n=L.cursor;return e(),L.limit_backward=n,L.cursor=L.limit,o(),L.cursor=L.limit,c(),L.cursor=L.limit,w(),L.cursor=L.limit,l(),L.cursor=L.limit,u(),L.cursor=L.limit,k(),L.cursor=L.limit,f(),L.cursor=L.limit,d(),L.cursor=L.limit,m(),!0}};return function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}}(),e.Pipeline.registerFunction(e.hu.stemmer,"stemmer-hu"),e.hu.stopWordFilter=function(n){return-1===e.hu.stopWordFilter.stopWords.indexOf(n)?n:void 0},e.hu.stopWordFilter.stopWords=new e.SortedSet,e.hu.stopWordFilter.stopWords.length=200,e.hu.stopWordFilter.stopWords.elements=" a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra".split(" "),e.Pipeline.registerFunction(e.hu.stopWordFilter,"stopWordFilter-hu")}});
\ No newline at end of file
/*!
* Lunr languages, `Italian` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if("undefined"==typeof e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if("undefined"==typeof e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.it=function(){this.pipeline.reset(),this.pipeline.add(e.it.trimmer,e.it.stopWordFilter,e.it.stemmer)},e.it.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.it.trimmer=e.trimmerSupport.generateTrimmer(e.it.wordCharacters),e.Pipeline.registerFunction(e.it.trimmer,"trimmer-it"),e.it.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return U.eq_s(1,e)&&(U.ket=U.cursor,U.in_grouping(y,97,249))?(U.slice_from(r),U.cursor=n,!0):!1}function i(){for(var r,n,i,o,t=U.cursor;;){if(U.bra=U.cursor,r=U.find_among(h,7))switch(U.ket=U.cursor,r){case 1:U.slice_from("à");continue;case 2:U.slice_from("è");continue;case 3:U.slice_from("ì");continue;case 4:U.slice_from("ò");continue;case 5:U.slice_from("ù");continue;case 6:U.slice_from("qU");continue;case 7:if(U.cursor>=U.limit)break;U.cursor++;continue}break}for(U.cursor=t;;)for(n=U.cursor;;){if(i=U.cursor,U.in_grouping(y,97,249)){if(U.bra=U.cursor,o=U.cursor,e("u","U",i))break;if(U.cursor=o,e("i","I",i))break}if(U.cursor=i,U.cursor>=U.limit)return void(U.cursor=n);U.cursor++}}function o(e){if(U.cursor=e,!U.in_grouping(y,97,249))return!1;for(;!U.out_grouping(y,97,249);){if(U.cursor>=U.limit)return!1;U.cursor++}return!0}function t(){if(U.in_grouping(y,97,249)){var e=U.cursor;if(U.out_grouping(y,97,249)){for(;!U.in_grouping(y,97,249);){if(U.cursor>=U.limit)return o(e);U.cursor++}return!0}return o(e)}return!1}function s(){var e,r=U.cursor;if(!t()){if(U.cursor=r,!U.out_grouping(y,97,249))return;if(e=U.cursor,U.out_grouping(y,97,249)){for(;!U.in_grouping(y,97,249);){if(U.cursor>=U.limit)return U.cursor=e,void(U.in_grouping(y,97,249)&&U.cursor<U.limit&&U.cursor++);U.cursor++}return void(k=U.cursor)}if(U.cursor=e,!U.in_grouping(y,97,249)||U.cursor>=U.limit)return;U.cursor++}k=U.cursor}function a(){for(;!U.in_grouping(y,97,249);){if(U.cursor>=U.limit)return!1;U.cursor++}for(;!U.out_grouping(y,97,249);){if(U.cursor>=U.limit)return!1;U.cursor++}return!0}function u(){var e=U.cursor;k=U.limit,p=k,g=k,s(),U.cursor=e,a()&&(p=U.cursor,a()&&(g=U.cursor))}function c(){for(var e;;){if(U.bra=U.cursor,e=U.find_among(q,3),!e)break;switch(U.ket=U.cursor,e){case 1:U.slice_from("i");break;case 2:U.slice_from("u");break;case 3:if(U.cursor>=U.limit)return;U.cursor++}}}function w(){return k<=U.cursor}function l(){return p<=U.cursor}function m(){return g<=U.cursor}function f(){var e;if(U.ket=U.cursor,U.find_among_b(W,37)&&(U.bra=U.cursor,e=U.find_among_b(F,5),e&&w()))switch(e){case 1:U.slice_del();break;case 2:U.slice_from("e")}}function v(){var e;if(U.ket=U.cursor,e=U.find_among_b(S,51),!e)return!1;switch(U.bra=U.cursor,e){case 1:if(!m())return!1;U.slice_del();break;case 2:if(!m())return!1;U.slice_del(),U.ket=U.cursor,U.eq_s_b(2,"ic")&&(U.bra=U.cursor,m()&&U.slice_del());break;case 3:if(!m())return!1;U.slice_from("log");break;case 4:if(!m())return!1;U.slice_from("u");break;case 5:if(!m())return!1;U.slice_from("ente");break;case 6:if(!w())return!1;U.slice_del();break;case 7:if(!l())return!1;U.slice_del(),U.ket=U.cursor,e=U.find_among_b(z,4),e&&(U.bra=U.cursor,m()&&(U.slice_del(),1==e&&(U.ket=U.cursor,U.eq_s_b(2,"at")&&(U.bra=U.cursor,m()&&U.slice_del()))));break;case 8:if(!m())return!1;U.slice_del(),U.ket=U.cursor,e=U.find_among_b(C,3),e&&(U.bra=U.cursor,1==e&&m()&&U.slice_del());break;case 9:if(!m())return!1;U.slice_del(),U.ket=U.cursor,U.eq_s_b(2,"at")&&(U.bra=U.cursor,m()&&(U.slice_del(),U.ket=U.cursor,U.eq_s_b(2,"ic")&&(U.bra=U.cursor,m()&&U.slice_del())))}return!0}function b(){var e,r;U.cursor>=k&&(r=U.limit_backward,U.limit_backward=k,U.ket=U.cursor,e=U.find_among_b(P,87),e&&(U.bra=U.cursor,1==e&&U.slice_del()),U.limit_backward=r)}function d(){var e=U.limit-U.cursor;return U.ket=U.cursor,U.in_grouping_b(L,97,242)&&(U.bra=U.cursor,w()&&(U.slice_del(),U.ket=U.cursor,U.eq_s_b(1,"i")&&(U.bra=U.cursor,w())))?void U.slice_del():void(U.cursor=U.limit-e)}function _(){d(),U.ket=U.cursor,U.eq_s_b(1,"h")&&(U.bra=U.cursor,U.in_grouping_b(x,99,103)&&w()&&U.slice_del())}var g,p,k,h=[new r("",-1,7),new r("qu",0,6),new r("á",0,1),new r("é",0,2),new r("í",0,3),new r("ó",0,4),new r("ú",0,5)],q=[new r("",-1,3),new r("I",0,1),new r("U",0,2)],W=[new r("la",-1,-1),new r("cela",0,-1),new r("gliela",0,-1),new r("mela",0,-1),new r("tela",0,-1),new r("vela",0,-1),new r("le",-1,-1),new r("cele",6,-1),new r("gliele",6,-1),new r("mele",6,-1),new r("tele",6,-1),new r("vele",6,-1),new r("ne",-1,-1),new r("cene",12,-1),new r("gliene",12,-1),new r("mene",12,-1),new r("sene",12,-1),new r("tene",12,-1),new r("vene",12,-1),new r("ci",-1,-1),new r("li",-1,-1),new r("celi",20,-1),new r("glieli",20,-1),new r("meli",20,-1),new r("teli",20,-1),new r("veli",20,-1),new r("gli",20,-1),new r("mi",-1,-1),new r("si",-1,-1),new r("ti",-1,-1),new r("vi",-1,-1),new r("lo",-1,-1),new r("celo",31,-1),new r("glielo",31,-1),new r("melo",31,-1),new r("telo",31,-1),new r("velo",31,-1)],F=[new r("ando",-1,1),new r("endo",-1,1),new r("ar",-1,2),new r("er",-1,2),new r("ir",-1,2)],z=[new r("ic",-1,-1),new r("abil",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],C=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],S=[new r("ica",-1,1),new r("logia",-1,3),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,9),new r("anza",-1,1),new r("enza",-1,5),new r("ice",-1,1),new r("atrice",7,1),new r("iche",-1,1),new r("logie",-1,3),new r("abile",-1,1),new r("ibile",-1,1),new r("usione",-1,4),new r("azione",-1,2),new r("uzione",-1,4),new r("atore",-1,2),new r("ose",-1,1),new r("ante",-1,1),new r("mente",-1,1),new r("amente",19,7),new r("iste",-1,1),new r("ive",-1,9),new r("anze",-1,1),new r("enze",-1,5),new r("ici",-1,1),new r("atrici",25,1),new r("ichi",-1,1),new r("abili",-1,1),new r("ibili",-1,1),new r("ismi",-1,1),new r("usioni",-1,4),new r("azioni",-1,2),new r("uzioni",-1,4),new r("atori",-1,2),new r("osi",-1,1),new r("anti",-1,1),new r("amenti",-1,6),new r("imenti",-1,6),new r("isti",-1,1),new r("ivi",-1,9),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,6),new r("imento",-1,6),new r("ivo",-1,9),new r("ità",-1,8),new r("istà",-1,1),new r("istè",-1,1),new r("istì",-1,1)],P=[new r("isca",-1,1),new r("enda",-1,1),new r("ata",-1,1),new r("ita",-1,1),new r("uta",-1,1),new r("ava",-1,1),new r("eva",-1,1),new r("iva",-1,1),new r("erebbe",-1,1),new r("irebbe",-1,1),new r("isce",-1,1),new r("ende",-1,1),new r("are",-1,1),new r("ere",-1,1),new r("ire",-1,1),new r("asse",-1,1),new r("ate",-1,1),new r("avate",16,1),new r("evate",16,1),new r("ivate",16,1),new r("ete",-1,1),new r("erete",20,1),new r("irete",20,1),new r("ite",-1,1),new r("ereste",-1,1),new r("ireste",-1,1),new r("ute",-1,1),new r("erai",-1,1),new r("irai",-1,1),new r("isci",-1,1),new r("endi",-1,1),new r("erei",-1,1),new r("irei",-1,1),new r("assi",-1,1),new r("ati",-1,1),new r("iti",-1,1),new r("eresti",-1,1),new r("iresti",-1,1),new r("uti",-1,1),new r("avi",-1,1),new r("evi",-1,1),new r("ivi",-1,1),new r("isco",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("Yamo",-1,1),new r("iamo",-1,1),new r("avamo",-1,1),new r("evamo",-1,1),new r("ivamo",-1,1),new r("eremo",-1,1),new r("iremo",-1,1),new r("assimo",-1,1),new r("ammo",-1,1),new r("emmo",-1,1),new r("eremmo",54,1),new r("iremmo",54,1),new r("immo",-1,1),new r("ano",-1,1),new r("iscano",58,1),new r("avano",58,1),new r("evano",58,1),new r("ivano",58,1),new r("eranno",-1,1),new r("iranno",-1,1),new r("ono",-1,1),new r("iscono",65,1),new r("arono",65,1),new r("erono",65,1),new r("irono",65,1),new r("erebbero",-1,1),new r("irebbero",-1,1),new r("assero",-1,1),new r("essero",-1,1),new r("issero",-1,1),new r("ato",-1,1),new r("ito",-1,1),new r("uto",-1,1),new r("avo",-1,1),new r("evo",-1,1),new r("ivo",-1,1),new r("ar",-1,1),new r("ir",-1,1),new r("erà",-1,1),new r("irà",-1,1),new r("erò",-1,1),new r("irò",-1,1)],y=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2,1],L=[17,65,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2],x=[17],U=new n;this.setCurrent=function(e){U.setCurrent(e)},this.getCurrent=function(){return U.getCurrent()},this.stem=function(){var e=U.cursor;return i(),U.cursor=e,u(),U.limit_backward=e,U.cursor=U.limit,f(),U.cursor=U.limit,v()||(U.cursor=U.limit,b()),U.cursor=U.limit,_(),U.cursor=U.limit_backward,c(),!0}};return function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}}(),e.Pipeline.registerFunction(e.it.stemmer,"stemmer-it"),e.it.stopWordFilter=function(r){return-1===e.it.stopWordFilter.stopWords.indexOf(r)?r:void 0},e.it.stopWordFilter.stopWords=new e.SortedSet,e.it.stopWordFilter.stopWords.length=280,e.it.stopWordFilter.stopWords.elements=" a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è".split(" "),e.Pipeline.registerFunction(e.it.stopWordFilter,"stopWordFilter-it")}});
\ No newline at end of file
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){e.multiLanguage=function(){for(var t=Array.prototype.slice.call(arguments),i=t.join("-"),r="",n=[],o=0;o<t.length;++o)"en"==t[o]?(r+="\\w",n.unshift(e.stopWordFilter),n.push(e.stemmer)):(r+=e[t[o]].wordCharacters,n.unshift(e[t[o]].stopWordFilter),n.push(e[t[o]].stemmer));var u=e.trimmerSupport.generateTrimmer(r);return e.Pipeline.registerFunction(u,"lunr-multi-trimmer-"+i),n.unshift(u),function(){this.pipeline.reset(),this.pipeline.add.apply(this.pipeline,n)}}}});
\ No newline at end of file
/*!
* Lunr languages, `Norwegian` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if("undefined"==typeof e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if("undefined"==typeof e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer)},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,r>=0||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,s>a&&(a=s)}}function i(){var e,r,n;if(w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(m,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(u,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,l=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],m=[new r("dt",-1,-1),new r("vt",-1,-1)],u=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=function(r){return-1===e.no.stopWordFilter.stopWords.indexOf(r)?r:void 0},e.no.stopWordFilter.stopWords=new e.SortedSet,e.no.stopWordFilter.stopWords.length=177,e.no.stopWordFilter.stopWords.elements=" alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" "),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}});
\ No newline at end of file
/*!
* Lunr languages, `Portuguese` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if("undefined"==typeof e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if("undefined"==typeof e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWordFilter,e.pt.stemmer)},e.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.pt.trimmer=e.trimmerSupport.generateTrimmer(e.pt.wordCharacters),e.Pipeline.registerFunction(e.pt.trimmer,"trimmer-pt"),e.pt.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e;;){if(x.bra=x.cursor,e=x.find_among(k,3))switch(x.ket=x.cursor,e){case 1:x.slice_from("a~");continue;case 2:x.slice_from("o~");continue;case 3:if(x.cursor>=x.limit)break;x.cursor++;continue}break}}function n(){if(x.out_grouping(L,97,250)){for(;!x.in_grouping(L,97,250);){if(x.cursor>=x.limit)return!0;x.cursor++}return!1}return!0}function o(){if(x.in_grouping(L,97,250))for(;!x.out_grouping(L,97,250);){if(x.cursor>=x.limit)return!1;x.cursor++}return g=x.cursor,!0}function i(){var e,r,s=x.cursor;if(x.in_grouping(L,97,250))if(e=x.cursor,n()){if(x.cursor=e,o())return}else g=x.cursor;if(x.cursor=s,x.out_grouping(L,97,250)){if(r=x.cursor,n()){if(x.cursor=r,!x.in_grouping(L,97,250)||x.cursor>=x.limit)return;x.cursor++}g=x.cursor}}function t(){for(;!x.in_grouping(L,97,250);){if(x.cursor>=x.limit)return!1;x.cursor++}for(;!x.out_grouping(L,97,250);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function a(){var e=x.cursor;g=x.limit,b=g,h=g,i(),x.cursor=e,t()&&(b=x.cursor,t()&&(h=x.cursor))}function u(){for(var e;;){if(x.bra=x.cursor,e=x.find_among(q,3))switch(x.ket=x.cursor,e){case 1:x.slice_from("ã");continue;case 2:x.slice_from("õ");continue;case 3:if(x.cursor>=x.limit)break;x.cursor++;continue}break}}function w(){return g<=x.cursor}function m(){return b<=x.cursor}function c(){return h<=x.cursor}function l(){var e;if(x.ket=x.cursor,e=x.find_among_b(C,45),!e)return!1;switch(x.bra=x.cursor,e){case 1:if(!c())return!1;x.slice_del();break;case 2:if(!c())return!1;x.slice_from("log");break;case 3:if(!c())return!1;x.slice_from("u");break;case 4:if(!c())return!1;x.slice_from("ente");break;case 5:if(!m())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(W,4),e&&(x.bra=x.cursor,c()&&(x.slice_del(),1==e&&(x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,c()&&x.slice_del()))));break;case 6:if(!c())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(j,3),e&&(x.bra=x.cursor,1==e&&c()&&x.slice_del());break;case 7:if(!c())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(F,3),e&&(x.bra=x.cursor,1==e&&c()&&x.slice_del());break;case 8:if(!c())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,c()&&x.slice_del());break;case 9:if(!w()||!x.eq_s_b(1,"e"))return!1;x.slice_from("ir")}return!0}function f(){var e,r;if(x.cursor>=g){if(r=x.limit_backward,x.limit_backward=g,x.ket=x.cursor,e=x.find_among_b(S,120))return x.bra=x.cursor,1==e&&x.slice_del(),x.limit_backward=r,!0;x.limit_backward=r}return!1}function d(){var e;x.ket=x.cursor,e=x.find_among_b(P,7),e&&(x.bra=x.cursor,1==e&&w()&&x.slice_del())}function v(e,r){if(x.eq_s_b(1,e)){x.bra=x.cursor;var s=x.limit-x.cursor;if(x.eq_s_b(1,r))return x.cursor=x.limit-s,w()&&x.slice_del(),!1}return!0}function p(){var e,r;if(x.ket=x.cursor,e=x.find_among_b(y,4))switch(x.bra=x.cursor,e){case 1:w()&&(x.slice_del(),x.ket=x.cursor,r=x.limit-x.cursor,v("u","g")&&v("i","c"));break;case 2:x.slice_from("c")}}function _(){return l()||(x.cursor=x.limit,f())?(x.cursor=x.limit,x.ket=x.cursor,void(x.eq_s_b(1,"i")&&(x.bra=x.cursor,x.eq_s_b(1,"c")&&(x.cursor=x.limit,w()&&x.slice_del())))):(x.cursor=x.limit,void d())}var h,b,g,k=[new r("",-1,3),new r("ã",0,1),new r("õ",0,2)],q=[new r("",-1,3),new r("a~",0,1),new r("o~",0,2)],W=[new r("ic",-1,-1),new r("ad",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],j=[new r("ante",-1,1),new r("avel",-1,1),new r("ível",-1,1)],F=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],C=[new r("ica",-1,1),new r("ância",-1,1),new r("ência",-1,4),new r("ira",-1,9),new r("adora",-1,1),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,8),new r("eza",-1,1),new r("logía",-1,2),new r("idade",-1,7),new r("ante",-1,1),new r("mente",-1,6),new r("amente",12,5),new r("ável",-1,1),new r("ível",-1,1),new r("ución",-1,3),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,1),new r("imento",-1,1),new r("ivo",-1,8),new r("aça~o",-1,1),new r("ador",-1,1),new r("icas",-1,1),new r("ências",-1,4),new r("iras",-1,9),new r("adoras",-1,1),new r("osas",-1,1),new r("istas",-1,1),new r("ivas",-1,8),new r("ezas",-1,1),new r("logías",-1,2),new r("idades",-1,7),new r("uciones",-1,3),new r("adores",-1,1),new r("antes",-1,1),new r("aço~es",-1,1),new r("icos",-1,1),new r("ismos",-1,1),new r("osos",-1,1),new r("amentos",-1,1),new r("imentos",-1,1),new r("ivos",-1,8)],S=[new r("ada",-1,1),new r("ida",-1,1),new r("ia",-1,1),new r("aria",2,1),new r("eria",2,1),new r("iria",2,1),new r("ara",-1,1),new r("era",-1,1),new r("ira",-1,1),new r("ava",-1,1),new r("asse",-1,1),new r("esse",-1,1),new r("isse",-1,1),new r("aste",-1,1),new r("este",-1,1),new r("iste",-1,1),new r("ei",-1,1),new r("arei",16,1),new r("erei",16,1),new r("irei",16,1),new r("am",-1,1),new r("iam",20,1),new r("ariam",21,1),new r("eriam",21,1),new r("iriam",21,1),new r("aram",20,1),new r("eram",20,1),new r("iram",20,1),new r("avam",20,1),new r("em",-1,1),new r("arem",29,1),new r("erem",29,1),new r("irem",29,1),new r("assem",29,1),new r("essem",29,1),new r("issem",29,1),new r("ado",-1,1),new r("ido",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("indo",-1,1),new r("ara~o",-1,1),new r("era~o",-1,1),new r("ira~o",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("ir",-1,1),new r("as",-1,1),new r("adas",47,1),new r("idas",47,1),new r("ias",47,1),new r("arias",50,1),new r("erias",50,1),new r("irias",50,1),new r("aras",47,1),new r("eras",47,1),new r("iras",47,1),new r("avas",47,1),new r("es",-1,1),new r("ardes",58,1),new r("erdes",58,1),new r("irdes",58,1),new r("ares",58,1),new r("eres",58,1),new r("ires",58,1),new r("asses",58,1),new r("esses",58,1),new r("isses",58,1),new r("astes",58,1),new r("estes",58,1),new r("istes",58,1),new r("is",-1,1),new r("ais",71,1),new r("eis",71,1),new r("areis",73,1),new r("ereis",73,1),new r("ireis",73,1),new r("áreis",73,1),new r("éreis",73,1),new r("íreis",73,1),new r("ásseis",73,1),new r("ésseis",73,1),new r("ísseis",73,1),new r("áveis",73,1),new r("íeis",73,1),new r("aríeis",84,1),new r("eríeis",84,1),new r("iríeis",84,1),new r("ados",-1,1),new r("idos",-1,1),new r("amos",-1,1),new r("áramos",90,1),new r("éramos",90,1),new r("íramos",90,1),new r("ávamos",90,1),new r("íamos",90,1),new r("aríamos",95,1),new r("eríamos",95,1),new r("iríamos",95,1),new r("emos",-1,1),new r("aremos",99,1),new r("eremos",99,1),new r("iremos",99,1),new r("ássemos",99,1),new r("êssemos",99,1),new r("íssemos",99,1),new r("imos",-1,1),new r("armos",-1,1),new r("ermos",-1,1),new r("irmos",-1,1),new r("ámos",-1,1),new r("arás",-1,1),new r("erás",-1,1),new r("irás",-1,1),new r("eu",-1,1),new r("iu",-1,1),new r("ou",-1,1),new r("ará",-1,1),new r("erá",-1,1),new r("irá",-1,1)],P=[new r("a",-1,1),new r("i",-1,1),new r("o",-1,1),new r("os",-1,1),new r("á",-1,1),new r("í",-1,1),new r("ó",-1,1)],y=[new r("e",-1,1),new r("ç",-1,2),new r("é",-1,1),new r("ê",-1,1)],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],x=new s;this.setCurrent=function(e){x.setCurrent(e)},this.getCurrent=function(){return x.getCurrent()},this.stem=function(){var r=x.cursor;return e(),x.cursor=r,a(),x.limit_backward=r,x.cursor=x.limit,_(),x.cursor=x.limit,p(),x.cursor=x.limit_backward,u(),!0}};return function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}}(),e.Pipeline.registerFunction(e.pt.stemmer,"stemmer-pt"),e.pt.stopWordFilter=function(r){return-1===e.pt.stopWordFilter.stopWords.indexOf(r)?r:void 0},e.pt.stopWordFilter.stopWords=new e.SortedSet,e.pt.stopWordFilter.stopWords.length=204,e.pt.stopWordFilter.stopWords.elements=" a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" "),e.Pipeline.registerFunction(e.pt.stopWordFilter,"stopWordFilter-pt")}});
\ No newline at end of file
/*!
* Lunr languages, `Romanian` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if("undefined"==typeof e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if("undefined"==typeof e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWordFilter,e.ro.stemmer)},e.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.ro.trimmer=e.trimmerSupport.generateTrimmer(e.ro.wordCharacters),e.Pipeline.registerFunction(e.ro.trimmer,"trimmer-ro"),e.ro.stemmer=function(){var i=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(e,i){y.eq_s(1,e)&&(y.ket=y.cursor,y.in_grouping(P,97,259)&&y.slice_from(i))}function n(){for(var i,r;;){if(i=y.cursor,y.in_grouping(P,97,259)&&(r=y.cursor,y.bra=r,e("u","U"),y.cursor=r,e("i","I")),y.cursor=i,y.cursor>=y.limit)break;y.cursor++}}function t(){if(y.out_grouping(P,97,259)){for(;!y.in_grouping(P,97,259);){if(y.cursor>=y.limit)return!0;y.cursor++}return!1}return!0}function a(){if(y.in_grouping(P,97,259))for(;!y.out_grouping(P,97,259);){if(y.cursor>=y.limit)return!0;y.cursor++}return!1}function o(){var e,i,r=y.cursor;if(y.in_grouping(P,97,259)){if(e=y.cursor,!t())return void(h=y.cursor);if(y.cursor=e,!a())return void(h=y.cursor)}y.cursor=r,y.out_grouping(P,97,259)&&(i=y.cursor,t()&&(y.cursor=i,y.in_grouping(P,97,259)&&y.cursor<y.limit&&y.cursor++),h=y.cursor)}function s(){for(;!y.in_grouping(P,97,259);){if(y.cursor>=y.limit)return!1;y.cursor++}for(;!y.out_grouping(P,97,259);){if(y.cursor>=y.limit)return!1;y.cursor++}return!0}function u(){var e=y.cursor;h=y.limit,k=h,g=h,o(),y.cursor=e,s()&&(k=y.cursor,s()&&(g=y.cursor))}function c(){for(var e;;){if(y.bra=y.cursor,e=y.find_among(W,3))switch(y.ket=y.cursor,e){case 1:y.slice_from("i");continue;case 2:y.slice_from("u");continue;case 3:if(y.cursor>=y.limit)break;y.cursor++;continue}break}}function w(){return h<=y.cursor}function m(){return k<=y.cursor}function l(){return g<=y.cursor}function f(){var e,i;if(y.ket=y.cursor,e=y.find_among_b(z,16),e&&(y.bra=y.cursor,m()))switch(e){case 1:y.slice_del();break;case 2:y.slice_from("a");break;case 3:y.slice_from("e");break;case 4:y.slice_from("i");break;case 5:i=y.limit-y.cursor,y.eq_s_b(2,"ab")||(y.cursor=y.limit-i,y.slice_from("i"));break;case 6:y.slice_from("at");break;case 7:y.slice_from("aţi")}}function d(){var e,i=y.limit-y.cursor;if(y.ket=y.cursor,e=y.find_among_b(F,46),e&&(y.bra=y.cursor,m())){switch(e){case 1:y.slice_from("abil");break;case 2:y.slice_from("ibil");break;case 3:y.slice_from("iv");break;case 4:y.slice_from("ic");break;case 5:y.slice_from("at");break;case 6:y.slice_from("it")}return _=!0,y.cursor=y.limit-i,!0}return!1}function p(){var e,i;for(_=!1;;)if(i=y.limit-y.cursor,!d()){y.cursor=y.limit-i;break}if(y.ket=y.cursor,e=y.find_among_b(C,62),e&&(y.bra=y.cursor,l())){switch(e){case 1:y.slice_del();break;case 2:y.eq_s_b(1,"ţ")&&(y.bra=y.cursor,y.slice_from("t"));break;case 3:y.slice_from("ist")}_=!0}}function b(){var e,i,r;if(y.cursor>=h){if(i=y.limit_backward,y.limit_backward=h,y.ket=y.cursor,e=y.find_among_b(S,94))switch(y.bra=y.cursor,e){case 1:if(r=y.limit-y.cursor,!y.out_grouping_b(P,97,259)&&(y.cursor=y.limit-r,!y.eq_s_b(1,"u")))break;case 2:y.slice_del()}y.limit_backward=i}}function v(){var e;y.ket=y.cursor,e=y.find_among_b(q,5),e&&(y.bra=y.cursor,w()&&1==e&&y.slice_del())}var _,g,k,h,W=[new i("",-1,3),new i("I",0,1),new i("U",0,2)],z=[new i("ea",-1,3),new i("aţia",-1,7),new i("aua",-1,2),new i("iua",-1,4),new i("aţie",-1,7),new i("ele",-1,3),new i("ile",-1,5),new i("iile",6,4),new i("iei",-1,4),new i("atei",-1,6),new i("ii",-1,4),new i("ului",-1,1),new i("ul",-1,1),new i("elor",-1,3),new i("ilor",-1,4),new i("iilor",14,4)],F=[new i("icala",-1,4),new i("iciva",-1,4),new i("ativa",-1,5),new i("itiva",-1,6),new i("icale",-1,4),new i("aţiune",-1,5),new i("iţiune",-1,6),new i("atoare",-1,5),new i("itoare",-1,6),new i("ătoare",-1,5),new i("icitate",-1,4),new i("abilitate",-1,1),new i("ibilitate",-1,2),new i("ivitate",-1,3),new i("icive",-1,4),new i("ative",-1,5),new i("itive",-1,6),new i("icali",-1,4),new i("atori",-1,5),new i("icatori",18,4),new i("itori",-1,6),new i("ători",-1,5),new i("icitati",-1,4),new i("abilitati",-1,1),new i("ivitati",-1,3),new i("icivi",-1,4),new i("ativi",-1,5),new i("itivi",-1,6),new i("icităi",-1,4),new i("abilităi",-1,1),new i("ivităi",-1,3),new i("icităţi",-1,4),new i("abilităţi",-1,1),new i("ivităţi",-1,3),new i("ical",-1,4),new i("ator",-1,5),new i("icator",35,4),new i("itor",-1,6),new i("ător",-1,5),new i("iciv",-1,4),new i("ativ",-1,5),new i("itiv",-1,6),new i("icală",-1,4),new i("icivă",-1,4),new i("ativă",-1,5),new i("itivă",-1,6)],C=[new i("ica",-1,1),new i("abila",-1,1),new i("ibila",-1,1),new i("oasa",-1,1),new i("ata",-1,1),new i("ita",-1,1),new i("anta",-1,1),new i("ista",-1,3),new i("uta",-1,1),new i("iva",-1,1),new i("ic",-1,1),new i("ice",-1,1),new i("abile",-1,1),new i("ibile",-1,1),new i("isme",-1,3),new i("iune",-1,2),new i("oase",-1,1),new i("ate",-1,1),new i("itate",17,1),new i("ite",-1,1),new i("ante",-1,1),new i("iste",-1,3),new i("ute",-1,1),new i("ive",-1,1),new i("ici",-1,1),new i("abili",-1,1),new i("ibili",-1,1),new i("iuni",-1,2),new i("atori",-1,1),new i("osi",-1,1),new i("ati",-1,1),new i("itati",30,1),new i("iti",-1,1),new i("anti",-1,1),new i("isti",-1,3),new i("uti",-1,1),new i("işti",-1,3),new i("ivi",-1,1),new i("ităi",-1,1),new i("oşi",-1,1),new i("ităţi",-1,1),new i("abil",-1,1),new i("ibil",-1,1),new i("ism",-1,3),new i("ator",-1,1),new i("os",-1,1),new i("at",-1,1),new i("it",-1,1),new i("ant",-1,1),new i("ist",-1,3),new i("ut",-1,1),new i("iv",-1,1),new i("ică",-1,1),new i("abilă",-1,1),new i("ibilă",-1,1),new i("oasă",-1,1),new i("ată",-1,1),new i("ită",-1,1),new i("antă",-1,1),new i("istă",-1,3),new i("ută",-1,1),new i("ivă",-1,1)],S=[new i("ea",-1,1),new i("ia",-1,1),new i("esc",-1,1),new i("ăsc",-1,1),new i("ind",-1,1),new i("ând",-1,1),new i("are",-1,1),new i("ere",-1,1),new i("ire",-1,1),new i("âre",-1,1),new i("se",-1,2),new i("ase",10,1),new i("sese",10,2),new i("ise",10,1),new i("use",10,1),new i("âse",10,1),new i("eşte",-1,1),new i("ăşte",-1,1),new i("eze",-1,1),new i("ai",-1,1),new i("eai",19,1),new i("iai",19,1),new i("sei",-1,2),new i("eşti",-1,1),new i("ăşti",-1,1),new i("ui",-1,1),new i("ezi",-1,1),new i("âi",-1,1),new i("aşi",-1,1),new i("seşi",-1,2),new i("aseşi",29,1),new i("seseşi",29,2),new i("iseşi",29,1),new i("useşi",29,1),new i("âseşi",29,1),new i("işi",-1,1),new i("uşi",-1,1),new i("âşi",-1,1),new i("aţi",-1,2),new i("eaţi",38,1),new i("iaţi",38,1),new i("eţi",-1,2),new i("iţi",-1,2),new i("âţi",-1,2),new i("arăţi",-1,1),new i("serăţi",-1,2),new i("aserăţi",45,1),new i("seserăţi",45,2),new i("iserăţi",45,1),new i("userăţi",45,1),new i("âserăţi",45,1),new i("irăţi",-1,1),new i("urăţi",-1,1),new i("ârăţi",-1,1),new i("am",-1,1),new i("eam",54,1),new i("iam",54,1),new i("em",-1,2),new i("asem",57,1),new i("sesem",57,2),new i("isem",57,1),new i("usem",57,1),new i("âsem",57,1),new i("im",-1,2),new i("âm",-1,2),new i("ăm",-1,2),new i("arăm",65,1),new i("serăm",65,2),new i("aserăm",67,1),new i("seserăm",67,2),new i("iserăm",67,1),new i("userăm",67,1),new i("âserăm",67,1),new i("irăm",65,1),new i("urăm",65,1),new i("ârăm",65,1),new i("au",-1,1),new i("eau",76,1),new i("iau",76,1),new i("indu",-1,1),new i("ându",-1,1),new i("ez",-1,1),new i("ească",-1,1),new i("ară",-1,1),new i("seră",-1,2),new i("aseră",84,1),new i("seseră",84,2),new i("iseră",84,1),new i("useră",84,1),new i("âseră",84,1),new i("iră",-1,1),new i("ură",-1,1),new i("âră",-1,1),new i("ează",-1,1)],q=[new i("a",-1,1),new i("e",-1,1),new i("ie",1,1),new i("i",-1,1),new i("ă",-1,1)],P=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],y=new r;this.setCurrent=function(e){y.setCurrent(e)},this.getCurrent=function(){return y.getCurrent()},this.stem=function(){var e=y.cursor;return n(),y.cursor=e,u(),y.limit_backward=e,y.cursor=y.limit,f(),y.cursor=y.limit,p(),y.cursor=y.limit,_||(y.cursor=y.limit,b(),y.cursor=y.limit),v(),y.cursor=y.limit_backward,c(),!0}};return function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}}(),e.Pipeline.registerFunction(e.ro.stemmer,"stemmer-ro"),e.ro.stopWordFilter=function(i){return-1===e.ro.stopWordFilter.stopWords.indexOf(i)?i:void 0},e.ro.stopWordFilter.stopWords=new e.SortedSet,e.ro.stopWordFilter.stopWords.length=282,e.ro.stopWordFilter.stopWords.elements=" acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie".split(" "),e.Pipeline.registerFunction(e.ro.stopWordFilter,"stopWordFilter-ro")}});
\ No newline at end of file
/*!
* Lunr languages, `Russian` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if("undefined"==typeof e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if("undefined"==typeof e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ru=function(){this.pipeline.reset(),this.pipeline.add(e.ru.trimmer,e.ru.stopWordFilter,e.ru.stemmer)},e.ru.wordCharacters="Ѐ-҄҇-ԯᴫᵸⷠ-ⷿꙀ-ꚟ︮︯",e.ru.trimmer=e.trimmerSupport.generateTrimmer(e.ru.wordCharacters),e.Pipeline.registerFunction(e.ru.trimmer,"trimmer-ru"),e.ru.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,t=new function(){function e(){for(;!P.in_grouping(S,1072,1103);){if(P.cursor>=P.limit)return!1;P.cursor++}return!0}function t(){for(;!P.out_grouping(S,1072,1103);){if(P.cursor>=P.limit)return!1;P.cursor++}return!0}function w(){b=P.limit,_=b,e()&&(b=P.cursor,t()&&e()&&t()&&(_=P.cursor))}function i(){return _<=P.cursor}function u(e,n){var r,t;if(P.ket=P.cursor,r=P.find_among_b(e,n)){switch(P.bra=P.cursor,r){case 1:if(t=P.limit-P.cursor,!P.eq_s_b(1,"а")&&(P.cursor=P.limit-t,!P.eq_s_b(1,"я")))return!1;case 2:P.slice_del()}return!0}return!1}function o(){return u(g,9)}function s(e,n){var r;return P.ket=P.cursor,r=P.find_among_b(e,n),r?(P.bra=P.cursor,1==r&&P.slice_del(),!0):!1}function c(){return s(h,26)}function f(){return c()?(u(W,8),!0):!1}function m(){return s(F,2)}function l(){return u(k,46)}function p(){s(C,36)}function d(){var e;P.ket=P.cursor,e=P.find_among_b(q,2),e&&(P.bra=P.cursor,i()&&1==e&&P.slice_del())}function a(){var e;if(P.ket=P.cursor,e=P.find_among_b(v,4))switch(P.bra=P.cursor,e){case 1:if(P.slice_del(),P.ket=P.cursor,!P.eq_s_b(1,"н"))break;P.bra=P.cursor;case 2:if(!P.eq_s_b(1,"н"))break;case 3:P.slice_del()}}var _,b,g=[new n("в",-1,1),new n("ив",0,2),new n("ыв",0,2),new n("вши",-1,1),new n("ивши",3,2),new n("ывши",3,2),new n("вшись",-1,1),new n("ившись",6,2),new n("ывшись",6,2)],h=[new n("ее",-1,1),new n("ие",-1,1),new n("ое",-1,1),new n("ые",-1,1),new n("ими",-1,1),new n("ыми",-1,1),new n("ей",-1,1),new n("ий",-1,1),new n("ой",-1,1),new n("ый",-1,1),new n("ем",-1,1),new n("им",-1,1),new n("ом",-1,1),new n("ым",-1,1),new n("его",-1,1),new n("ого",-1,1),new n("ему",-1,1),new n("ому",-1,1),new n("их",-1,1),new n("ых",-1,1),new n("ею",-1,1),new n("ою",-1,1),new n("ую",-1,1),new n("юю",-1,1),new n("ая",-1,1),new n("яя",-1,1)],W=[new n("ем",-1,1),new n("нн",-1,1),new n("вш",-1,1),new n("ивш",2,2),new n("ывш",2,2),new n("щ",-1,1),new n("ющ",5,1),new n("ующ",6,2)],F=[new n("сь",-1,1),new n("ся",-1,1)],k=[new n("ла",-1,1),new n("ила",0,2),new n("ыла",0,2),new n("на",-1,1),new n("ена",3,2),new n("ете",-1,1),new n("ите",-1,2),new n("йте",-1,1),new n("ейте",7,2),new n("уйте",7,2),new n("ли",-1,1),new n("или",10,2),new n("ыли",10,2),new n("й",-1,1),new n("ей",13,2),new n("уй",13,2),new n("л",-1,1),new n("ил",16,2),new n("ыл",16,2),new n("ем",-1,1),new n("им",-1,2),new n("ым",-1,2),new n("н",-1,1),new n("ен",22,2),new n("ло",-1,1),new n("ило",24,2),new n("ыло",24,2),new n("но",-1,1),new n("ено",27,2),new n("нно",27,1),new n("ет",-1,1),new n("ует",30,2),new n("ит",-1,2),new n("ыт",-1,2),new n("ют",-1,1),new n("уют",34,2),new n("ят",-1,2),new n("ны",-1,1),new n("ены",37,2),new n("ть",-1,1),new n("ить",39,2),new n("ыть",39,2),new n("ешь",-1,1),new n("ишь",-1,2),new n("ю",-1,2),new n("ую",44,2)],C=[new n("а",-1,1),new n("ев",-1,1),new n("ов",-1,1),new n("е",-1,1),new n("ие",3,1),new n("ье",3,1),new n("и",-1,1),new n("еи",6,1),new n("ии",6,1),new n("ами",6,1),new n("ями",6,1),new n("иями",10,1),new n("й",-1,1),new n("ей",12,1),new n("ией",13,1),new n("ий",12,1),new n("ой",12,1),new n("ам",-1,1),new n("ем",-1,1),new n("ием",18,1),new n("ом",-1,1),new n("ям",-1,1),new n("иям",21,1),new n("о",-1,1),new n("у",-1,1),new n("ах",-1,1),new n("ях",-1,1),new n("иях",26,1),new n("ы",-1,1),new n("ь",-1,1),new n("ю",-1,1),new n("ию",30,1),new n("ью",30,1),new n("я",-1,1),new n("ия",33,1),new n("ья",33,1)],q=[new n("ост",-1,1),new n("ость",-1,1)],v=[new n("ейше",-1,1),new n("н",-1,2),new n("ейш",-1,1),new n("ь",-1,3)],S=[33,65,8,232],P=new r;this.setCurrent=function(e){P.setCurrent(e)},this.getCurrent=function(){return P.getCurrent()},this.stem=function(){return w(),P.cursor=P.limit,P.cursor<b?!1:(P.limit_backward=b,o()||(P.cursor=P.limit,m()||(P.cursor=P.limit),f()||(P.cursor=P.limit,l()||(P.cursor=P.limit,p()))),P.cursor=P.limit,P.ket=P.cursor,P.eq_s_b(1,"и")?(P.bra=P.cursor,P.slice_del()):P.cursor=P.limit,d(),P.cursor=P.limit,a(),!0)}};return function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}}(),e.Pipeline.registerFunction(e.ru.stemmer,"stemmer-ru"),e.ru.stopWordFilter=function(n){return-1===e.ru.stopWordFilter.stopWords.indexOf(n)?n:void 0},e.ru.stopWordFilter.stopWords=new e.SortedSet,e.ru.stopWordFilter.stopWords.length=422,e.ru.stopWordFilter.stopWords.elements=" алло без близко более больше будем будет будете будешь будто буду будут будь бы бывает бывь был была были было быть в важная важное важные важный вам вами вас ваш ваша ваше ваши вверх вдали вдруг ведь везде весь вниз внизу во вокруг вон восемнадцатый восемнадцать восемь восьмой вот впрочем времени время все всегда всего всем всеми всему всех всею всю всюду вся всё второй вы г где говорил говорит год года году да давно даже далеко дальше даром два двадцатый двадцать две двенадцатый двенадцать двух девятнадцатый девятнадцать девятый девять действительно дел день десятый десять для до довольно долго должно другая другие других друго другое другой е его ее ей ему если есть еще ещё ею её ж же жизнь за занят занята занято заняты затем зато зачем здесь значит и из или им именно иметь ими имя иногда их к каждая каждое каждые каждый кажется как какая какой кем когда кого ком кому конечно которая которого которой которые который которых кроме кругом кто куда лет ли лишь лучше люди м мало между меля менее меньше меня миллионов мимо мира мне много многочисленная многочисленное многочисленные многочисленный мной мною мог могут мож может можно можхо мои мой мор мочь моя моё мы на наверху над надо назад наиболее наконец нам нами нас начала наш наша наше наши не него недавно недалеко нее ней нельзя нем немного нему непрерывно нередко несколько нет нею неё ни нибудь ниже низко никогда никуда ними них ничего но ну нужно нх о об оба обычно один одиннадцатый одиннадцать однажды однако одного одной около он она они оно опять особенно от отовсюду отсюда очень первый перед по под пожалуйста позже пока пор пора после посреди потом потому почему почти прекрасно при про просто против процентов пятнадцатый пятнадцать пятый пять раз разве рано раньше рядом с сам сама сами самим самими самих само самого самой самом самому саму свое своего своей свои своих свою сеаой себе себя сегодня седьмой сейчас семнадцатый семнадцать семь сих сказал сказала сказать сколько слишком сначала снова со собой собою совсем спасибо стал суть т та так такая также такие такое такой там твой твоя твоё те тебе тебя тем теми теперь тех то тобой тобою тогда того тоже только том тому тот тою третий три тринадцатый тринадцать ту туда тут ты тысяч у уж уже уметь хорошо хотеть хоть хотя хочешь часто чаще чего человек чем чему через четвертый четыре четырнадцатый четырнадцать что чтоб чтобы чуть шестнадцатый шестнадцать шестой шесть эта эти этим этими этих это этого этой этом этому этот эту я \ufeffа".split(" "),e.Pipeline.registerFunction(e.ru.stopWordFilter,"stopWordFilter-ru")}});
\ No newline at end of file
!function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;t>s;s++)i[s]=r.charCodeAt(s);return i},!r&&""!=r||!t&&0!=t||!i)throw"Bad Among initialisation: s:"+r+", substring_i: "+t+", result: "+i;this.s_size=r.length,this.s=this.toCharArray(r),this.substring_i=t,this.result=i,this.method=s},SnowballProgram:function(){var r;return{bra:0,ket:0,limit:0,cursor:0,limit_backward:0,setCurrent:function(t){r=t,this.cursor=0,this.limit=t.length,this.limit_backward=0,this.bra=this.cursor,this.ket=this.limit},getCurrent:function(){var t=r;return r=null,t},in_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(s>=e&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(s>=e&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e>s||i>e)return this.cursor++,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||i>e)return this.cursor--,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor<t)return!1;for(var s=0;t>s;s++)if(r.charCodeAt(this.cursor+s)!=i.charCodeAt(s))return!1;return this.cursor+=t,!0},eq_s_b:function(t,i){if(this.cursor-this.limit_backward<t)return!1;for(var s=0;t>s;s++)if(r.charCodeAt(this.cursor-t+s)!=i.charCodeAt(s))return!1;return this.cursor-=t,!0},find_among:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=h>o?o:h,_=t[a],m=l;m<_.s_size;m++){if(n+l==u){f=-1;break}if(f=r.charCodeAt(n+l)-_.s[m])break;l++}if(0>f?(e=a,h=l):(s=a,o=l),1>=e-s){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if(s=_.substring_i,0>s)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=h>o?o:h,_=t[a],m=_.s_size-1-l;m>=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(0>f?(e=a,h=l):(s=a,o=l),1>=e-s){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if(s=_.substring_i,0>s)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return r.replace(t,"").replace(i,"")}}}}});
\ No newline at end of file
/*!
* Lunr languages, `Swedish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if("undefined"==typeof e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if("undefined"==typeof e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer)},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,r>=0||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(m,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(m,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,a>o&&(o=a)}}function t(){var e,r=w.limit_backward;if(w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(c,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(d,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(l,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],d=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],l=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],m=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],c=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=function(r){return-1===e.sv.stopWordFilter.stopWords.indexOf(r)?r:void 0},e.sv.stopWordFilter.stopWords=new e.SortedSet,e.sv.stopWordFilter.stopWords.length=115,e.sv.stopWordFilter.stopWords.elements=" alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" "),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}});
\ No newline at end of file
/*!
* Lunr languages, `Turkish` language
* https://github.com/MihaiValentin/lunr-languages
*
* Copyright 2014, Mihai Valentin
* http://www.mozilla.org/MPL/
*/
/*!
* based on
* Snowball JavaScript Library v0.3
* http://code.google.com/p/urim/
* http://snowball.tartarus.org/
*
* Copyright 2010, Oleg Mazko
* http://www.mozilla.org/MPL/
*/
!function(r,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(r.lunr)}(this,function(){return function(r){if("undefined"==typeof r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if("undefined"==typeof r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");r.tr=function(){this.pipeline.reset(),this.pipeline.add(r.tr.trimmer,r.tr.stopWordFilter,r.tr.stemmer)},r.tr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.tr.trimmer=r.trimmerSupport.generateTrimmer(r.tr.wordCharacters),r.Pipeline.registerFunction(r.tr.trimmer,"trimmer-tr"),r.tr.stemmer=function(){var i=r.stemmerSupport.Among,e=r.stemmerSupport.SnowballProgram,n=new function(){function r(r,i,e){for(;;){var n=Br.limit-Br.cursor;if(Br.in_grouping_b(r,i,e)){Br.cursor=Br.limit-n;break}if(Br.cursor=Br.limit-n,Br.cursor<=Br.limit_backward)return!1;Br.cursor--}return!0}function n(){var i,e;i=Br.limit-Br.cursor,r(Pr,97,305);for(var n=0;n<Zr.length;n++){e=Br.limit-Br.cursor;var t=Zr[n];if(Br.eq_s_b(1,t[0])&&r(t[1],t[2],t[3]))return Br.cursor=Br.limit-i,!0;Br.cursor=Br.limit-e}return Br.cursor=Br.limit-e,Br.eq_s_b(1,"ü")&&r(Tr,246,252)?(Br.cursor=Br.limit-i,!0):!1}function t(r,i){var e,n=Br.limit-Br.cursor;return r()&&(Br.cursor=Br.limit-n,Br.cursor>Br.limit_backward&&(Br.cursor--,e=Br.limit-Br.cursor,i()))?(Br.cursor=Br.limit-e,!0):(Br.cursor=Br.limit-n,r()?(Br.cursor=Br.limit-n,!1):(Br.cursor=Br.limit-n,Br.cursor<=Br.limit_backward?!1:(Br.cursor--,i()?(Br.cursor=Br.limit-n,!0):!1)))}function u(r){return t(r,function(){return Br.in_grouping_b(Pr,97,305)})}function o(){return u(function(){return Br.eq_s_b(1,"n")})}function s(){return u(function(){return Br.eq_s_b(1,"s")})}function c(){return u(function(){return Br.eq_s_b(1,"y")})}function l(){return t(function(){return Br.in_grouping_b(Lr,105,305)},function(){return Br.out_grouping_b(Pr,97,305)})}function a(){return Br.find_among_b(ur,10)&&l()}function m(){return n()&&Br.in_grouping_b(Lr,105,305)&&s()}function d(){return Br.find_among_b(or,2)}function f(){return n()&&Br.in_grouping_b(Lr,105,305)&&c()}function b(){return n()&&Br.find_among_b(sr,4)}function w(){return n()&&Br.find_among_b(cr,4)&&o()}function _(){return n()&&Br.find_among_b(lr,2)&&c()}function k(){return n()&&Br.find_among_b(ar,2)}function p(){return n()&&Br.find_among_b(mr,4)}function g(){return n()&&Br.find_among_b(dr,2)}function y(){return n()&&Br.find_among_b(fr,4)}function z(){return n()&&Br.find_among_b(br,2)}function v(){return n()&&Br.find_among_b(wr,2)&&c()}function h(){return Br.eq_s_b(2,"ki")}function q(){return n()&&Br.find_among_b(_r,2)&&o()}function W(){return n()&&Br.find_among_b(kr,4)&&c()}function F(){return n()&&Br.find_among_b(pr,4)}function C(){return n()&&Br.find_among_b(gr,4)&&c()}function S(){return Br.find_among_b(yr,4)}function P(){return n()&&Br.find_among_b(zr,2)}function L(){return n()&&Br.find_among_b(vr,4)}function x(){return n()&&Br.find_among_b(hr,8)}function A(){return Br.find_among_b(qr,2)}function E(){return n()&&Br.find_among_b(Wr,32)&&c()}function j(){return Br.find_among_b(Fr,8)&&c()}function O(){return n()&&Br.find_among_b(Cr,4)&&c()}function T(){return Br.eq_s_b(3,"ken")&&c()}function Z(){var r=Br.limit-Br.cursor;return O()||(Br.cursor=Br.limit-r,E()||(Br.cursor=Br.limit-r,j()||(Br.cursor=Br.limit-r,T())))?!1:!0}function B(){if(A()){var r=Br.limit-Br.cursor;if(S()||(Br.cursor=Br.limit-r,P()||(Br.cursor=Br.limit-r,W()||(Br.cursor=Br.limit-r,F()||(Br.cursor=Br.limit-r,C()||(Br.cursor=Br.limit-r))))),O())return!1}return!0}function D(){if(P()){Br.bra=Br.cursor,Br.slice_del();var r=Br.limit-Br.cursor;return Br.ket=Br.cursor,x()||(Br.cursor=Br.limit-r,E()||(Br.cursor=Br.limit-r,j()||(Br.cursor=Br.limit-r,O()||(Br.cursor=Br.limit-r)))),nr=!1,!1}return!0}function G(){if(!L())return!0;var r=Br.limit-Br.cursor;return E()||(Br.cursor=Br.limit-r,j())?!1:!0}function H(){var r,i=Br.limit-Br.cursor;return S()||(Br.cursor=Br.limit-i,C()||(Br.cursor=Br.limit-i,F()||(Br.cursor=Br.limit-i,W())))?(Br.bra=Br.cursor,Br.slice_del(),r=Br.limit-Br.cursor,Br.ket=Br.cursor,O()||(Br.cursor=Br.limit-r),!1):!0}function I(){var r,i=Br.limit-Br.cursor;if(Br.ket=Br.cursor,nr=!0,Z()&&(Br.cursor=Br.limit-i,B()&&(Br.cursor=Br.limit-i,D()&&(Br.cursor=Br.limit-i,G()&&(Br.cursor=Br.limit-i,H()))))){if(Br.cursor=Br.limit-i,!x())return;Br.bra=Br.cursor,Br.slice_del(),Br.ket=Br.cursor,r=Br.limit-Br.cursor,S()||(Br.cursor=Br.limit-r,P()||(Br.cursor=Br.limit-r,W()||(Br.cursor=Br.limit-r,F()||(Br.cursor=Br.limit-r,C()||(Br.cursor=Br.limit-r))))),O()||(Br.cursor=Br.limit-r)}Br.bra=Br.cursor,Br.slice_del()}function J(){var r,i,e,n;if(Br.ket=Br.cursor,h()){if(r=Br.limit-Br.cursor,p())return Br.bra=Br.cursor,Br.slice_del(),i=Br.limit-Br.cursor,Br.ket=Br.cursor,P()?(Br.bra=Br.cursor,Br.slice_del(),J()):(Br.cursor=Br.limit-i,a()&&(Br.bra=Br.cursor,Br.slice_del(),Br.ket=Br.cursor,P()&&(Br.bra=Br.cursor,Br.slice_del(),J()))),!0;if(Br.cursor=Br.limit-r,w()){if(Br.bra=Br.cursor,Br.slice_del(),Br.ket=Br.cursor,e=Br.limit-Br.cursor,d())Br.bra=Br.cursor,Br.slice_del();else{if(Br.cursor=Br.limit-e,Br.ket=Br.cursor,!a()&&(Br.cursor=Br.limit-e,!m()&&(Br.cursor=Br.limit-e,!J())))return!0;Br.bra=Br.cursor,Br.slice_del(),Br.ket=Br.cursor,P()&&(Br.bra=Br.cursor,Br.slice_del(),J())}return!0}if(Br.cursor=Br.limit-r,g()){if(n=Br.limit-Br.cursor,d())Br.bra=Br.cursor,Br.slice_del();else if(Br.cursor=Br.limit-n,m())Br.bra=Br.cursor,Br.slice_del(),Br.ket=Br.cursor,P()&&(Br.bra=Br.cursor,Br.slice_del(),J());else if(Br.cursor=Br.limit-n,!J())return!1;return!0}}return!1}function K(r){if(Br.ket=Br.cursor,!g()&&(Br.cursor=Br.limit-r,!k()))return!1;var i=Br.limit-Br.cursor;if(d())Br.bra=Br.cursor,Br.slice_del();else if(Br.cursor=Br.limit-i,m())Br.bra=Br.cursor,Br.slice_del(),Br.ket=Br.cursor,P()&&(Br.bra=Br.cursor,Br.slice_del(),J());else if(Br.cursor=Br.limit-i,!J())return!1;return!0}function M(r){if(Br.ket=Br.cursor,!z()&&(Br.cursor=Br.limit-r,!b()))return!1;var i=Br.limit-Br.cursor;return m()||(Br.cursor=Br.limit-i,d())?(Br.bra=Br.cursor,Br.slice_del(),Br.ket=Br.cursor,P()&&(Br.bra=Br.cursor,Br.slice_del(),J()),!0):!1}function N(){var r,i=Br.limit-Br.cursor;return Br.ket=Br.cursor,w()||(Br.cursor=Br.limit-i,v())?(Br.bra=Br.cursor,Br.slice_del(),r=Br.limit-Br.cursor,Br.ket=Br.cursor,P()&&(Br.bra=Br.cursor,Br.slice_del(),J())?!0:(Br.cursor=Br.limit-r,Br.ket=Br.cursor,a()||(Br.cursor=Br.limit-r,m()||(Br.cursor=Br.limit-r,J()))?(Br.bra=Br.cursor,Br.slice_del(),Br.ket=Br.cursor,P()&&(Br.bra=Br.cursor,Br.slice_del(),J()),!0):!0)):!1}function Q(){var r,i,e=Br.limit-Br.cursor;if(Br.ket=Br.cursor,!p()&&(Br.cursor=Br.limit-e,!f()&&(Br.cursor=Br.limit-e,!_())))return!1;if(Br.bra=Br.cursor,Br.slice_del(),Br.ket=Br.cursor,r=Br.limit-Br.cursor,a())Br.bra=Br.cursor,Br.slice_del(),i=Br.limit-Br.cursor,Br.ket=Br.cursor,P()||(Br.cursor=Br.limit-i);else if(Br.cursor=Br.limit-r,!P())return!0;return Br.bra=Br.cursor,Br.slice_del(),Br.ket=Br.cursor,J(),!0}function R(){var r,i,e=Br.limit-Br.cursor;if(Br.ket=Br.cursor,P())return Br.bra=Br.cursor,Br.slice_del(),void J();if(Br.cursor=Br.limit-e,Br.ket=Br.cursor,q())if(Br.bra=Br.cursor,Br.slice_del(),r=Br.limit-Br.cursor,Br.ket=Br.cursor,d())Br.bra=Br.cursor,Br.slice_del();else{if(Br.cursor=Br.limit-r,Br.ket=Br.cursor,!a()&&(Br.cursor=Br.limit-r,!m())){if(Br.cursor=Br.limit-r,Br.ket=Br.cursor,!P())return;if(Br.bra=Br.cursor,Br.slice_del(),!J())return}Br.bra=Br.cursor,Br.slice_del(),Br.ket=Br.cursor,P()&&(Br.bra=Br.cursor,Br.slice_del(),J())}else if(Br.cursor=Br.limit-e,!K(e)&&(Br.cursor=Br.limit-e,!M(e))){if(Br.cursor=Br.limit-e,Br.ket=Br.cursor,y())return Br.bra=Br.cursor,Br.slice_del(),Br.ket=Br.cursor,i=Br.limit-Br.cursor,void(a()?(Br.bra=Br.cursor,Br.slice_del(),Br.ket=Br.cursor,P()&&(Br.bra=Br.cursor,Br.slice_del(),J())):(Br.cursor=Br.limit-i,P()?(Br.bra=Br.cursor,Br.slice_del(),J()):(Br.cursor=Br.limit-i,J())));if(Br.cursor=Br.limit-e,!N()){if(Br.cursor=Br.limit-e,d())return Br.bra=Br.cursor,void Br.slice_del();Br.cursor=Br.limit-e,J()||(Br.cursor=Br.limit-e,Q()||(Br.cursor=Br.limit-e,Br.ket=Br.cursor,(a()||(Br.cursor=Br.limit-e,m()))&&(Br.bra=Br.cursor,Br.slice_del(),Br.ket=Br.cursor,P()&&(Br.bra=Br.cursor,Br.slice_del(),J()))))}}}function U(){var r;if(Br.ket=Br.cursor,r=Br.find_among_b(Sr,4))switch(Br.bra=Br.cursor,r){case 1:Br.slice_from("p");break;case 2:Br.slice_from("ç");break;case 3:Br.slice_from("t");break;case 4:Br.slice_from("k")}}function V(){for(;;){var r=Br.limit-Br.cursor;if(Br.in_grouping_b(Pr,97,305)){Br.cursor=Br.limit-r;break}if(Br.cursor=Br.limit-r,Br.cursor<=Br.limit_backward)return!1;Br.cursor--}return!0}function X(r,i,e){if(Br.cursor=Br.limit-r,V()){var n=Br.limit-Br.cursor;if(!Br.eq_s_b(1,i)&&(Br.cursor=Br.limit-n,!Br.eq_s_b(1,e)))return!0;Br.cursor=Br.limit-r;var t=Br.cursor;return Br.insert(Br.cursor,Br.cursor,e),Br.cursor=t,!1}return!0}function Y(){var r=Br.limit-Br.cursor;(Br.eq_s_b(1,"d")||(Br.cursor=Br.limit-r,Br.eq_s_b(1,"g")))&&X(r,"a","ı")&&X(r,"e","i")&&X(r,"o","u")&&X(r,"ö","ü")}function $(){for(var r,i=Br.cursor,e=2;;){for(r=Br.cursor;!Br.in_grouping(Pr,97,305);){if(Br.cursor>=Br.limit)return Br.cursor=r,e>0?!1:(Br.cursor=i,!0);Br.cursor++}e--}}function rr(r,i,e){for(;!Br.eq_s(i,e);){if(Br.cursor>=Br.limit)return!0;Br.cursor++}return tr=i,tr!=Br.limit?!0:(Br.cursor=r,!1)}function ir(){var r=Br.cursor;return rr(r,2,"ad")&&(Br.cursor=r,rr(r,5,"soyad"))?!1:!0}function er(){var r=Br.cursor;return ir()?!1:(Br.limit_backward=r,Br.cursor=Br.limit,Y(),Br.cursor=Br.limit,U(),!0)}var nr,tr,ur=[new i("m",-1,-1),new i("n",-1,-1),new i("miz",-1,-1),new i("niz",-1,-1),new i("muz",-1,-1),new i("nuz",-1,-1),new i("müz",-1,-1),new i("nüz",-1,-1),new i("mız",-1,-1),new i("nız",-1,-1)],or=[new i("leri",-1,-1),new i("ları",-1,-1)],sr=[new i("ni",-1,-1),new i("nu",-1,-1),new i("",-1,-1),new i("",-1,-1)],cr=[new i("in",-1,-1),new i("un",-1,-1),new i("ün",-1,-1),new i("ın",-1,-1)],lr=[new i("a",-1,-1),new i("e",-1,-1)],ar=[new i("na",-1,-1),new i("ne",-1,-1)],mr=[new i("da",-1,-1),new i("ta",-1,-1),new i("de",-1,-1),new i("te",-1,-1)],dr=[new i("nda",-1,-1),new i("nde",-1,-1)],fr=[new i("dan",-1,-1),new i("tan",-1,-1),new i("den",-1,-1),new i("ten",-1,-1)],br=[new i("ndan",-1,-1),new i("nden",-1,-1)],wr=[new i("la",-1,-1),new i("le",-1,-1)],_r=[new i("ca",-1,-1),new i("ce",-1,-1)],kr=[new i("im",-1,-1),new i("um",-1,-1),new i("üm",-1,-1),new i("ım",-1,-1)],pr=[new i("sin",-1,-1),new i("sun",-1,-1),new i("sün",-1,-1),new i("sın",-1,-1)],gr=[new i("iz",-1,-1),new i("uz",-1,-1),new i("üz",-1,-1),new i("ız",-1,-1)],yr=[new i("siniz",-1,-1),new i("sunuz",-1,-1),new i("sünüz",-1,-1),new i("sınız",-1,-1)],zr=[new i("lar",-1,-1),new i("ler",-1,-1)],vr=[new i("niz",-1,-1),new i("nuz",-1,-1),new i("nüz",-1,-1),new i("nız",-1,-1)],hr=[new i("dir",-1,-1),new i("tir",-1,-1),new i("dur",-1,-1),new i("tur",-1,-1),new i("dür",-1,-1),new i("tür",-1,-1),new i("dır",-1,-1),new i("tır",-1,-1)],qr=[new i("casına",-1,-1),new i("cesine",-1,-1)],Wr=[new i("di",-1,-1),new i("ti",-1,-1),new i("dik",-1,-1),new i("tik",-1,-1),new i("duk",-1,-1),new i("tuk",-1,-1),new i("dük",-1,-1),new i("tük",-1,-1),new i("dık",-1,-1),new i("tık",-1,-1),new i("dim",-1,-1),new i("tim",-1,-1),new i("dum",-1,-1),new i("tum",-1,-1),new i("düm",-1,-1),new i("tüm",-1,-1),new i("dım",-1,-1),new i("tım",-1,-1),new i("din",-1,-1),new i("tin",-1,-1),new i("dun",-1,-1),new i("tun",-1,-1),new i("dün",-1,-1),new i("tün",-1,-1),new i("dın",-1,-1),new i("tın",-1,-1),new i("du",-1,-1),new i("tu",-1,-1),new i("",-1,-1),new i("",-1,-1),new i("",-1,-1),new i("",-1,-1)],Fr=[new i("sa",-1,-1),new i("se",-1,-1),new i("sak",-1,-1),new i("sek",-1,-1),new i("sam",-1,-1),new i("sem",-1,-1),new i("san",-1,-1),new i("sen",-1,-1)],Cr=[new i("miş",-1,-1),new i("muş",-1,-1),new i("müş",-1,-1),new i("mış",-1,-1)],Sr=[new i("b",-1,1),new i("c",-1,2),new i("d",-1,3),new i("ğ",-1,4)],Pr=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,0,0,0,0,0,0,1],Lr=[1,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,1],xr=[1,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],Ar=[17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130],Er=[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],jr=[17],Or=[65],Tr=[65],Zr=[["a",xr,97,305],["e",Ar,101,252],["ı",Er,97,305],["i",jr,101,105],["o",Or,111,117],["ö",Tr,246,252],["u",Or,111,117]],Br=new e;this.setCurrent=function(r){Br.setCurrent(r)},this.getCurrent=function(){return Br.getCurrent()},this.stem=function(){return $()&&(Br.limit_backward=Br.cursor,Br.cursor=Br.limit,I(),Br.cursor=Br.limit,nr&&(R(),Br.cursor=Br.limit_backward,er()))?!0:!1}};return function(r){return n.setCurrent(r),n.stem(),n.getCurrent()}}(),r.Pipeline.registerFunction(r.tr.stemmer,"stemmer-tr"),r.tr.stopWordFilter=function(i){return-1===r.tr.stopWordFilter.stopWords.indexOf(i)?i:void 0},r.tr.stopWordFilter.stopWords=new r.SortedSet,r.tr.stopWordFilter.stopWords.length=210,r.tr.stopWordFilter.stopWords.elements=" acaba altmış altı ama ancak arada aslında ayrıca bana bazı belki ben benden beni benim beri beş bile bin bir biri birkaç birkez birçok birşey birşeyi biz bizden bize bizi bizim bu buna bunda bundan bunlar bunları bunların bunu bunun burada böyle böylece da daha dahi de defa değil diye diğer doksan dokuz dolayı dolayısıyla dört edecek eden ederek edilecek ediliyor edilmesi ediyor elli en etmesi etti ettiği ettiğini eğer gibi göre halen hangi hatta hem henüz hep hepsi her herhangi herkesin hiç hiçbir iki ile ilgili ise itibaren itibariyle için işte kadar karşın katrilyon kendi kendilerine kendini kendisi kendisine kendisini kez ki kim kimden kime kimi kimse kırk milyar milyon mu mü mı nasıl ne neden nedenle nerde nerede nereye niye niçin o olan olarak oldu olduklarını olduğu olduğunu olmadı olmadığı olmak olması olmayan olmaz olsa olsun olup olur olursa oluyor on ona ondan onlar onlardan onları onların onu onun otuz oysa pek rağmen sadece sanki sekiz seksen sen senden seni senin siz sizden sizi sizin tarafından trilyon tüm var vardı ve veya ya yani yapacak yapmak yaptı yaptıkları yaptığı yaptığını yapılan yapılması yapıyor yedi yerine yetmiş yine yirmi yoksa yüz zaten çok çünkü öyle üzere üç şey şeyden şeyi şeyler şu şuna şunda şundan şunları şunu şöyle".split(" "),r.Pipeline.registerFunction(r.tr.stopWordFilter,"stopWordFilter-tr")}});
\ No newline at end of file
{
"name": "lunr-languages",
"description": "A a collection of languages stemmers and stopwords for Lunr Javascript library",
"author": "Mihai Valentin (http://www.mihaivalentin.com)",
"version": "0.0.4",
"license": "MPL-1.1",
"engine": "node 0.10.1",
"devDependencies": {
"js-beautify": "^1.5.1",
"uglify-js": "^2.4.15",
"unicode-8.0.0": "^0.1.5"
}
}
// TinySegmenter 0.1 -- Super compact Japanese tokenizer in Javascript
// (c) 2008 Taku Kudo <taku@chasen.org>
// TinySegmenter is freely distributable under the terms of a new BSD licence.
// For details, see http://chasen.org/~taku/software/TinySegmenter/LICENCE.txt
function TinySegmenter() {
var patterns = {
"[一二三四五六七八九十百千万億兆]":"M",
"[一-龠々〆ヵヶ]":"H",
"[ぁ-ん]":"I",
"[ァ-ヴーア-ン゙ー]":"K",
"[a-zA-Za-zA-Z]":"A",
"[0-90-9]":"N"
}
this.chartype_ = [];
for (var i in patterns) {
var regexp = new RegExp;
regexp.compile(i)
this.chartype_.push([regexp, patterns[i]]);
}
this.BIAS__ = -332
this.BC1__ = {"HH":6,"II":2461,"KH":406,"OH":-1378};
this.BC2__ = {"AA":-3267,"AI":2744,"AN":-878,"HH":-4070,"HM":-1711,"HN":4012,"HO":3761,"IA":1327,"IH":-1184,"II":-1332,"IK":1721,"IO":5492,"KI":3831,"KK":-8741,"MH":-3132,"MK":3334,"OO":-2920};
this.BC3__ = {"HH":996,"HI":626,"HK":-721,"HN":-1307,"HO":-836,"IH":-301,"KK":2762,"MK":1079,"MM":4034,"OA":-1652,"OH":266};
this.BP1__ = {"BB":295,"OB":304,"OO":-125,"UB":352};
this.BP2__ = {"BO":60,"OO":-1762};
this.BQ1__ = {"BHH":1150,"BHM":1521,"BII":-1158,"BIM":886,"BMH":1208,"BNH":449,"BOH":-91,"BOO":-2597,"OHI":451,"OIH":-296,"OKA":1851,"OKH":-1020,"OKK":904,"OOO":2965};
this.BQ2__ = {"BHH":118,"BHI":-1159,"BHM":466,"BIH":-919,"BKK":-1720,"BKO":864,"OHH":-1139,"OHM":-181,"OIH":153,"UHI":-1146};
this.BQ3__ = {"BHH":-792,"BHI":2664,"BII":-299,"BKI":419,"BMH":937,"BMM":8335,"BNN":998,"BOH":775,"OHH":2174,"OHM":439,"OII":280,"OKH":1798,"OKI":-793,"OKO":-2242,"OMH":-2402,"OOO":11699};
this.BQ4__ = {"BHH":-3895,"BIH":3761,"BII":-4654,"BIK":1348,"BKK":-1806,"BMI":-3385,"BOO":-12396,"OAH":926,"OHH":266,"OHK":-2036,"ONN":-973};
this.BW1__ = {",と":660,",同":727,"B1あ":1404,"B1同":542,"、と":660,"、同":727,"」と":1682,"あっ":1505,"いう":1743,"いっ":-2055,"いる":672,"うし":-4817,"うん":665,"から":3472,"がら":600,"こう":-790,"こと":2083,"こん":-1262,"さら":-4143,"さん":4573,"した":2641,"して":1104,"すで":-3399,"そこ":1977,"それ":-871,"たち":1122,"ため":601,"った":3463,"つい":-802,"てい":805,"てき":1249,"でき":1127,"です":3445,"では":844,"とい":-4915,"とみ":1922,"どこ":3887,"ない":5713,"なっ":3015,"など":7379,"なん":-1113,"にし":2468,"には":1498,"にも":1671,"に対":-912,"の一":-501,"の中":741,"ませ":2448,"まで":1711,"まま":2600,"まる":-2155,"やむ":-1947,"よっ":-2565,"れた":2369,"れで":-913,"をし":1860,"を見":731,"亡く":-1886,"京都":2558,"取り":-2784,"大き":-2604,"大阪":1497,"平方":-2314,"引き":-1336,"日本":-195,"本当":-2423,"毎日":-2113,"目指":-724,"B1あ":1404,"B1同":542,"」と":1682};
this.BW2__ = {"..":-11822,"11":-669,"――":-5730,"−−":-13175,"いう":-1609,"うか":2490,"かし":-1350,"かも":-602,"から":-7194,"かれ":4612,"がい":853,"がら":-3198,"きた":1941,"くな":-1597,"こと":-8392,"この":-4193,"させ":4533,"され":13168,"さん":-3977,"しい":-1819,"しか":-545,"した":5078,"して":972,"しな":939,"その":-3744,"たい":-1253,"たた":-662,"ただ":-3857,"たち":-786,"たと":1224,"たは":-939,"った":4589,"って":1647,"っと":-2094,"てい":6144,"てき":3640,"てく":2551,"ては":-3110,"ても":-3065,"でい":2666,"でき":-1528,"でし":-3828,"です":-4761,"でも":-4203,"とい":1890,"とこ":-1746,"とと":-2279,"との":720,"とみ":5168,"とも":-3941,"ない":-2488,"なが":-1313,"など":-6509,"なの":2614,"なん":3099,"にお":-1615,"にし":2748,"にな":2454,"によ":-7236,"に対":-14943,"に従":-4688,"に関":-11388,"のか":2093,"ので":-7059,"のに":-6041,"のの":-6125,"はい":1073,"はが":-1033,"はず":-2532,"ばれ":1813,"まし":-1316,"まで":-6621,"まれ":5409,"めて":-3153,"もい":2230,"もの":-10713,"らか":-944,"らし":-1611,"らに":-1897,"りし":651,"りま":1620,"れた":4270,"れて":849,"れば":4114,"ろう":6067,"われ":7901,"を通":-11877,"んだ":728,"んな":-4115,"一人":602,"一方":-1375,"一日":970,"一部":-1051,"上が":-4479,"会社":-1116,"出て":2163,"分の":-7758,"同党":970,"同日":-913,"大阪":-2471,"委員":-1250,"少な":-1050,"年度":-8669,"年間":-1626,"府県":-2363,"手権":-1982,"新聞":-4066,"日新":-722,"日本":-7068,"日米":3372,"曜日":-601,"朝鮮":-2355,"本人":-2697,"東京":-1543,"然と":-1384,"社会":-1276,"立て":-990,"第に":-1612,"米国":-4268,"11":-669};
this.BW3__ = {"あた":-2194,"あり":719,"ある":3846,"い.":-1185,"い。":-1185,"いい":5308,"いえ":2079,"いく":3029,"いた":2056,"いっ":1883,"いる":5600,"いわ":1527,"うち":1117,"うと":4798,"えと":1454,"か.":2857,"か。":2857,"かけ":-743,"かっ":-4098,"かに":-669,"から":6520,"かり":-2670,"が,":1816,"が、":1816,"がき":-4855,"がけ":-1127,"がっ":-913,"がら":-4977,"がり":-2064,"きた":1645,"けど":1374,"こと":7397,"この":1542,"ころ":-2757,"さい":-714,"さを":976,"し,":1557,"し、":1557,"しい":-3714,"した":3562,"して":1449,"しな":2608,"しま":1200,"す.":-1310,"す。":-1310,"する":6521,"ず,":3426,"ず、":3426,"ずに":841,"そう":428,"た.":8875,"た。":8875,"たい":-594,"たの":812,"たり":-1183,"たる":-853,"だ.":4098,"だ。":4098,"だっ":1004,"った":-4748,"って":300,"てい":6240,"てお":855,"ても":302,"です":1437,"でに":-1482,"では":2295,"とう":-1387,"とし":2266,"との":541,"とも":-3543,"どう":4664,"ない":1796,"なく":-903,"など":2135,"に,":-1021,"に、":-1021,"にし":1771,"にな":1906,"には":2644,"の,":-724,"の、":-724,"の子":-1000,"は,":1337,"は、":1337,"べき":2181,"まし":1113,"ます":6943,"まっ":-1549,"まで":6154,"まれ":-793,"らし":1479,"られ":6820,"るる":3818,"れ,":854,"れ、":854,"れた":1850,"れて":1375,"れば":-3246,"れる":1091,"われ":-605,"んだ":606,"んで":798,"カ月":990,"会議":860,"入り":1232,"大会":2217,"始め":1681,"":965,"新聞":-5055,"日,":974,"日、":974,"社会":2024,"カ月":990};
this.TC1__ = {"AAA":1093,"HHH":1029,"HHM":580,"HII":998,"HOH":-390,"HOM":-331,"IHI":1169,"IOH":-142,"IOI":-1015,"IOM":467,"MMH":187,"OOI":-1832};
this.TC2__ = {"HHO":2088,"HII":-1023,"HMM":-1154,"IHI":-1965,"KKH":703,"OII":-2649};
this.TC3__ = {"AAA":-294,"HHH":346,"HHI":-341,"HII":-1088,"HIK":731,"HOH":-1486,"IHH":128,"IHI":-3041,"IHO":-1935,"IIH":-825,"IIM":-1035,"IOI":-542,"KHH":-1216,"KKA":491,"KKH":-1217,"KOK":-1009,"MHH":-2694,"MHM":-457,"MHO":123,"MMH":-471,"NNH":-1689,"NNO":662,"OHO":-3393};
this.TC4__ = {"HHH":-203,"HHI":1344,"HHK":365,"HHM":-122,"HHN":182,"HHO":669,"HIH":804,"HII":679,"HOH":446,"IHH":695,"IHO":-2324,"IIH":321,"III":1497,"IIO":656,"IOO":54,"KAK":4845,"KKA":3386,"KKK":3065,"MHH":-405,"MHI":201,"MMH":-241,"MMM":661,"MOM":841};
this.TQ1__ = {"BHHH":-227,"BHHI":316,"BHIH":-132,"BIHH":60,"BIII":1595,"BNHH":-744,"BOHH":225,"BOOO":-908,"OAKK":482,"OHHH":281,"OHIH":249,"OIHI":200,"OIIH":-68};
this.TQ2__ = {"BIHH":-1401,"BIII":-1033,"BKAK":-543,"BOOO":-5591};
this.TQ3__ = {"BHHH":478,"BHHM":-1073,"BHIH":222,"BHII":-504,"BIIH":-116,"BIII":-105,"BMHI":-863,"BMHM":-464,"BOMH":620,"OHHH":346,"OHHI":1729,"OHII":997,"OHMH":481,"OIHH":623,"OIIH":1344,"OKAK":2792,"OKHH":587,"OKKA":679,"OOHH":110,"OOII":-685};
this.TQ4__ = {"BHHH":-721,"BHHM":-3604,"BHII":-966,"BIIH":-607,"BIII":-2181,"OAAA":-2763,"OAKK":180,"OHHH":-294,"OHHI":2446,"OHHO":480,"OHIH":-1573,"OIHH":1935,"OIHI":-493,"OIIH":626,"OIII":-4007,"OKAK":-8156};
this.TW1__ = {"につい":-4681,"東京都":2026};
this.TW2__ = {"ある程":-2049,"いった":-1256,"ころが":-2434,"しょう":3873,"その後":-4430,"だって":-1049,"ていた":1833,"として":-4657,"ともに":-4517,"もので":1882,"一気に":-792,"初めて":-1512,"同時に":-8097,"大きな":-1255,"対して":-2721,"社会党":-3216};
this.TW3__ = {"いただ":-1734,"してい":1314,"として":-4314,"につい":-5483,"にとっ":-5989,"に当た":-6247,"ので,":-727,"ので、":-727,"のもの":-600,"れから":-3752,"十二月":-2287};
this.TW4__ = {"いう.":8576,"いう。":8576,"からな":-2348,"してい":2958,"たが,":1516,"たが、":1516,"ている":1538,"という":1349,"ました":5543,"ません":1097,"ようと":-4258,"よると":5865};
this.UC1__ = {"A":484,"K":93,"M":645,"O":-505};
this.UC2__ = {"A":819,"H":1059,"I":409,"M":3987,"N":5775,"O":646};
this.UC3__ = {"A":-1370,"I":2311};
this.UC4__ = {"A":-2643,"H":1809,"I":-1032,"K":-3450,"M":3565,"N":3876,"O":6646};
this.UC5__ = {"H":313,"I":-1238,"K":-799,"M":539,"O":-831};
this.UC6__ = {"H":-506,"I":-253,"K":87,"M":247,"O":-387};
this.UP1__ = {"O":-214};
this.UP2__ = {"B":69,"O":935};
this.UP3__ = {"B":189};
this.UQ1__ = {"BH":21,"BI":-12,"BK":-99,"BN":142,"BO":-56,"OH":-95,"OI":477,"OK":410,"OO":-2422};
this.UQ2__ = {"BH":216,"BI":113,"OK":1759};
this.UQ3__ = {"BA":-479,"BH":42,"BI":1913,"BK":-7198,"BM":3160,"BN":6427,"BO":14761,"OI":-827,"ON":-3212};
this.UW1__ = {",":156,"":156,"":-463,"":-941,"":-127,"":-553,"":121,"":505,"":-201,"":-547,"":-123,"":-789,"":-185,"":-847,"":-466,"":-470,"":182,"":-292,"":208,"":169,"":-446,"":-137,"":-135,"":-402,"":-268,"":-912,"":871,"":-460,"":561,"":729,"":-411,"":-141,"":361,"":-408,"":-386,"":-718,"":-463,"":-135};
this.UW2__ = {",":-829,"":-829,"":892,"":-645,"":3145,"":-538,"":505,"":134,"":-502,"":1454,"":-856,"":-412,"":1141,"":878,"":540,"":1529,"":-675,"":300,"":-1011,"":188,"":1837,"":-949,"":-291,"":-268,"":-981,"":1273,"":1063,"":-1764,"":130,"":-409,"":-1273,"":1261,"":600,"":-1263,"":-402,"":1639,"":-579,"":-694,"":571,"":-2516,"":2095,"":-587,"":306,"":568,"":831,"":-758,"":-2150,"":-302,"":-968,"":-861,"":492,"":-123,"":978,"":362,"":548,"":-3025,"":-1566,"":-3414,"":-422,"":-1769,"":-865,"":-483,"":-1519,"":760,"":1023,"":-2009,"":-813,"":-1060,"":1067,"":-1519,"":-1033,"":1522,"":-1355,"":-1682,"":-1815,"":-1462,"":-630,"":-1843,"":-1650,"":-931,"":-665,"":-2378,"":-180,"":-1740,"":752,"":529,"":-1584,"":-242,"":-1165,"":-763,"":810,"":509,"":-1353,"":838,"西":-744,"":-3874,"調":1010,"":1198,"":3041,"":1758,"":-1257,"":-645,"":3145,"":831,"":-587,"":306,"":568};
this.UW3__ = {",":4889,"1":-800,"":-1723,"":4889,"":-2311,"":5827,"":2670,"":-3573,"":-2696,"":1006,"":2342,"":1983,"":-4864,"":-1163,"":3271,"":1004,"":388,"":401,"":-3552,"":-3116,"":-1058,"":-395,"":584,"":3685,"":-5228,"":842,"":-521,"":-1444,"":-1081,"":6167,"":2318,"":1691,"":-899,"":-2788,"":2745,"":4056,"":4555,"":-2171,"":-1798,"":1199,"":-5516,"":-4384,"":-120,"":1205,"":2323,"":-788,"":-202,"":727,"":649,"":5905,"":2773,"":-1207,"":6620,"":-518,"":551,"":1319,"":874,"":-1350,"":521,"":1109,"":1591,"":2201,"":278,"":-3794,"":-1619,"":-1759,"":-2087,"":3815,"":653,"":-758,"":-1193,"":974,"":2742,"":792,"":1889,"":-1368,"":811,"":4265,"":-361,"":-2439,"":4858,"":3593,"":1574,"":-3030,"":755,"":-1880,"":5807,"":3095,"":457,"":2475,"":1129,"":2286,"":4437,"":365,"":-949,"":-1872,"":1327,"":-1038,"":4646,"":-2309,"":-783,"":-1006,"":483,"":1233,"":3588,"":-241,"":3906,"":-837,"":4513,"":642,"":1389,"":1219,"":-241,"":2016,"":-1356,"":-423,"":-1008,"":1078,"":-513,"":-3102,"":1155,"":3197,"":-1804,"":2416,"":-1030,"":1605,"":1452,"":-2352,"":-3885,"":1905,"":-1291,"":1822,"":-488,"":-3973,"":-2013,"":-1479,"":3222,"":-1489,"":1764,"":2099,"":5792,"":-661,"":-1248,"":-951,"":-937,"":4125,"":360,"":3094,"":364,"":-805,"":5156,"":2438,"":484,"":2613,"":-1694,"":-1073,"":1868,"":-495,"":979,"":461,"":-3850,"":-273,"":914,"":1215,"":7313,"":-1835,"":792,"":6293,"":-1528,"":4231,"":401,"":-960,"":1201,"":7767,"":3066,"":3663,"":1384,"":-4229,"":1163,"":1255,"":6457,"":725,"":-2869,"":785,"":1044,"調":-562,"":-733,"":1777,"":1835,"":1375,"":-1504,"":-1136,"":-681,"":1026,"":4404,"":1200,"":2163,"":421,"":-1432,"":1302,"":-1282,"":2009,"":-1045,"":2066,"":1620,"":-800,"":2670,"":-3794,"":-1350,"":551,"グ":1319,"":874,"":521,"":1109,"":1591,"":2201,"":278};
this.UW4__ = {",":3930,".":3508,"":-4841,"":3930,"":3508,"":4999,"":1895,"":3798,"":-5156,"":4752,"":-3435,"":-640,"":-2514,"":2405,"":530,"":6006,"":-4482,"":-3821,"":-3788,"":-4376,"":-4734,"":2255,"":1979,"":2864,"":-843,"":-2506,"":-731,"":1251,"":181,"":4091,"":5034,"":5408,"":-3654,"":-5882,"":-1659,"":3994,"":7410,"":4547,"":5433,"":6499,"":1853,"":1413,"":7396,"":8578,"":1940,"":4249,"":-4134,"":1345,"":6665,"":-744,"":1464,"":1051,"":-2082,"":-882,"":-5046,"":4169,"":-2666,"":2795,"":-1544,"":3351,"":-2922,"":-9726,"":-14896,"":-2613,"":-4570,"":-1783,"":13150,"":-2352,"":2145,"":1789,"":1287,"":-724,"":-403,"":-1635,"":-881,"":-541,"":-856,"":-3637,"":-4371,"":-11870,"":-2069,"":2210,"":782,"":-190,"":-1768,"":1036,"":544,"":950,"":-1286,"":530,"":4292,"":601,"":-2006,"":-1212,"":584,"":788,"":1347,"":1623,"":3879,"":-302,"":-740,"":-2715,"":776,"":4517,"":1013,"":1555,"":-1834,"":-681,"":-910,"":-851,"":1500,"":-619,"":-1200,"":866,"":-1410,"":-2094,"":-1413,"":1067,"":571,"":-4802,"":-1397,"":-1057,"":-809,"":1910,"":-1328,"":-1500,"":-2056,"":-2667,"":2771,"":374,"":-4556,"":456,"":553,"":916,"":-1566,"":856,"":787,"":2182,"":704,"":522,"":-856,"":1798,"":1829,"":845,"":-9066,"":-485,"":-442,"":-360,"":-1043,"":5388,"":-2716,"":-910,"":-939,"":-543,"":-735,"":672,"":-1267,"":-1286,"":-1101,"":-2900,"":1826,"":2586,"":922,"":-3485,"":2997,"":-867,"":-2112,"":788,"":2937,"":786,"":2171,"":1146,"":-1169,"":940,"":-994,"":749,"":2145,"":-730,"":-852,"":-792,"":792,"":-1184,"":-244,"":-1000,"":730,"":-1481,"":1158,"":-1433,"":-3370,"":929,"":-1291,"":2596,"":-4866,"":1192,"":-1100,"":-2213,"":357,"":-2344,"":-2297,"":-2604,"":-878,"":-1659,"":-792,"":-1984,"":1749,"":2120,"":1895,"":3798,"":-4371,"":-724,"":-11870,"":2145,"":1789,"":1287,"":-403,"":-1635,"":-881,"":-541,"":-856,"":-3637};
this.UW5__ = {",":465,".":-299,"1":-514,"E2":-32768,"]":-2762,"":465,"":-299,"":363,"":1655,"":331,"":-503,"":1199,"":527,"":647,"":-421,"":1624,"":1971,"":312,"":-983,"":-1537,"":-1371,"":-852,"":-1186,"":1093,"":52,"":921,"":-18,"":-850,"":-127,"":1682,"":-787,"":-1224,"":-635,"":-578,"":1001,"":502,"":865,"":3350,"":854,"":-208,"":429,"":504,"":419,"":-1264,"":327,"":241,"":451,"":-343,"":-871,"":722,"":-1153,"":-654,"":3519,"":-901,"":848,"":2104,"":-1296,"":-548,"":1785,"":-1304,"":-2991,"":921,"":1763,"":872,"":-814,"":1618,"":-1682,"":218,"":-4353,"":932,"":1356,"":-1508,"":-1347,"":240,"":-3912,"":-3149,"":1319,"":-1052,"":-4003,"":-997,"":-278,"":-813,"":1955,"":-2233,"":663,"":-1073,"":1219,"":-1018,"":-368,"":786,"":1191,"":2368,"":-689,"":-514,"E2":-32768,"":363,"":241,"":451,"":-343};
this.UW6__ = {",":227,".":808,"1":-270,"E1":306,"":227,"":808,"":-307,"":189,"":241,"":-73,"":-121,"":-200,"":1782,"":383,"":-428,"":573,"":-1014,"":101,"":-105,"":-253,"":-149,"":-417,"":-236,"":-206,"":187,"":-135,"":195,"":-673,"":-496,"":-277,"":201,"":-800,"":624,"":302,"":1792,"":-1212,"":798,"":-960,"":887,"":-695,"":535,"":-697,"":753,"":-507,"":974,"":-822,"":1811,"":463,"":1082,"":-270,"E1":306,"":-673,"":-496};
return this;
}
TinySegmenter.prototype.ctype_ = function(str) {
for (var i in this.chartype_) {
if (str.match(this.chartype_[i][0])) {
return this.chartype_[i][1];
}
}
return "O";
}
TinySegmenter.prototype.ts_ = function(v) {
if (v) { return v; }
return 0;
}
TinySegmenter.prototype.segment = function(input) {
if (input == null || input == undefined || input == "") {
return [];
}
var result = [];
var seg = ["B3","B2","B1"];
var ctype = ["O","O","O"];
var o = input.split("");
for (i = 0; i < o.length; ++i) {
seg.push(o[i]);
ctype.push(this.ctype_(o[i]))
}
seg.push("E1");
seg.push("E2");
seg.push("E3");
ctype.push("O");
ctype.push("O");
ctype.push("O");
var word = seg[3];
var p1 = "U";
var p2 = "U";
var p3 = "U";
for (var i = 4; i < seg.length - 3; ++i) {
var score = this.BIAS__;
var w1 = seg[i-3];
var w2 = seg[i-2];
var w3 = seg[i-1];
var w4 = seg[i];
var w5 = seg[i+1];
var w6 = seg[i+2];
var c1 = ctype[i-3];
var c2 = ctype[i-2];
var c3 = ctype[i-1];
var c4 = ctype[i];
var c5 = ctype[i+1];
var c6 = ctype[i+2];
score += this.ts_(this.UP1__[p1]);
score += this.ts_(this.UP2__[p2]);
score += this.ts_(this.UP3__[p3]);
score += this.ts_(this.BP1__[p1 + p2]);
score += this.ts_(this.BP2__[p2 + p3]);
score += this.ts_(this.UW1__[w1]);
score += this.ts_(this.UW2__[w2]);
score += this.ts_(this.UW3__[w3]);
score += this.ts_(this.UW4__[w4]);
score += this.ts_(this.UW5__[w5]);
score += this.ts_(this.UW6__[w6]);
score += this.ts_(this.BW1__[w2 + w3]);
score += this.ts_(this.BW2__[w3 + w4]);
score += this.ts_(this.BW3__[w4 + w5]);
score += this.ts_(this.TW1__[w1 + w2 + w3]);
score += this.ts_(this.TW2__[w2 + w3 + w4]);
score += this.ts_(this.TW3__[w3 + w4 + w5]);
score += this.ts_(this.TW4__[w4 + w5 + w6]);
score += this.ts_(this.UC1__[c1]);
score += this.ts_(this.UC2__[c2]);
score += this.ts_(this.UC3__[c3]);
score += this.ts_(this.UC4__[c4]);
score += this.ts_(this.UC5__[c5]);
score += this.ts_(this.UC6__[c6]);
score += this.ts_(this.BC1__[c2 + c3]);
score += this.ts_(this.BC2__[c3 + c4]);
score += this.ts_(this.BC3__[c4 + c5]);
score += this.ts_(this.TC1__[c1 + c2 + c3]);
score += this.ts_(this.TC2__[c2 + c3 + c4]);
score += this.ts_(this.TC3__[c3 + c4 + c5]);
score += this.ts_(this.TC4__[c4 + c5 + c6]);
// score += this.ts_(this.TC5__[c4 + c5 + c6]);
score += this.ts_(this.UQ1__[p1 + c1]);
score += this.ts_(this.UQ2__[p2 + c2]);
score += this.ts_(this.UQ3__[p3 + c3]);
score += this.ts_(this.BQ1__[p2 + c2 + c3]);
score += this.ts_(this.BQ2__[p2 + c3 + c4]);
score += this.ts_(this.BQ3__[p3 + c2 + c3]);
score += this.ts_(this.BQ4__[p3 + c3 + c4]);
score += this.ts_(this.TQ1__[p2 + c1 + c2 + c3]);
score += this.ts_(this.TQ2__[p2 + c2 + c3 + c4]);
score += this.ts_(this.TQ3__[p3 + c1 + c2 + c3]);
score += this.ts_(this.TQ4__[p3 + c2 + c3 + c4]);
var p = "O";
if (score > 0) {
result.push(word);
word = "";
p = "B";
}
p1 = p2;
p2 = p3;
p3 = p;
word += seg[i];
}
result.push(word);
return result;
}
<!doctype html>
<html>
<head>
<title>Result Gadget</title>
<script src="../../external/jio/external/rsvp-2.0.4.js"></script>
<script src="../../external/jio/dist/jio-latest.js"></script>
<script src="../../external/renderjs/dist/renderjs-latest.js"></script>
<script src="../js/gadget_loader.js"></script>
</head>
<body>
<div data-gadget-url="gadget_parser.html"
data-gadget-scope="parser"
data-gadget-sandbox="public">
</body>
</html>
\ No newline at end of file
<!doctype html>
<html>
<head>
<title>Model Gadget</title>
<script src="../../external/jio/external/rsvp-2.0.4.js"></script>
<script src="../../external/jio/dist/jio-latest.js"></script>
<script src="../../external/renderjs/dist/renderjs-latest.js"></script>
<script src="../../external/flexsearch/flexsearch.js"></script>
<script src="../../external/msgpack-lite/dist/msgpack.min.js"></script>
<script src="../js/gadget_model.js"></script>
</head>
<body>
</body>
</html>
\ No newline at end of file
<!doctype html>
<html>
<head>
<title>Parser Gadget</title>
<script src="../../external/jio/external/rsvp-2.0.4.js"></script>
<script src="../../external/jio/dist/jio-latest.js"></script>
<script src="../../external/renderjs/dist/renderjs-latest.js"></script>
<script src="../js/gadget_parser.js"></script>
</head>
<body>
</body>
</html>
\ No newline at end of file
<!doctype html>
<html>
<head>
<title>Result Gadget</title>
<script src="../../external/jio/external/rsvp-2.0.4.js"></script>
<script src="../../external/jio/dist/jio-latest.js"></script>
<script src="../../external/renderjs/dist/renderjs-latest.js"></script>
<script src="../js/gadget_result.js"></script>
<link rel="stylesheet" type="text/css" href="../../css/result.css">
</head>
<body>
<div id ="mynij"><img src="../../css/logo.png"></div>
<ul id="mynij-results">
</ul>
<div id ="google"><img src="../../css/logo_google.png"></div>
<ul id="searx-results">
</ul>
</body>
</html>
\ No newline at end of file
......@@ -2,33 +2,29 @@
<html>
<head>
<title>Mynij</title>
<script src="../jio/external/rsvp-2.0.4.js"></script>
<script src="../jio/dist/jio-latest.js"></script>
<script src="jio.my_parser_storage.js"></script>
<script src="../renderjs/dist/renderjs-latest.js"></script>
<script src="./elasticlunr/elasticlunr.js"></script>
<script src="./lunr-languages/lunr.stemmer.support.js"></script>
<script src="./lunr-languages/lunr.fr.js"></script>
<script src="search.js"></script>
<link rel="stylesheet" type="text/css" href="mynij.css">
<script src="../../external/jio/external/rsvp-2.0.4.js"></script>
<script src="../../external/jio/dist/jio-latest.js"></script>
<script src="../../external/renderjs/dist/renderjs-latest.js"></script>
<script src="../js/search.js"></script>
<link rel="stylesheet" type="text/css" href="../../css/mynij.css">
</head>
<body>
<form id = "search_bar">
<input type="search" required>
</form>
<input id = "import" type = "file" value = "import" style="display: none;">
<input type="button" value="import" onclick="document.getElementById('import').click();" />
<input id = "export" type = "button" value = "export">
<div id = "gadget_result"
data-gadget-url="gadget_result.html"
data-gadget-scope="result"
data-gadget-sandbox="public">
<div data-gadget-url="gadget_parser.html"
data-gadget-scope="parser"
<div data-gadget-url="gadget_model.html"
data-gadget-scope="model"
data-gadget-sandbox="public">
<div data-gadget-url="gadget_server_model.html"
data-gadget-scope="server_model"
<div data-gadget-url="gadget_loader.html"
data-gadget-scope="loader"
data-gadget-sandbox="public">
<div data-gadget-url="gadget_client_model.html"
data-gadget-scope="client_model"
data-gadget-sandbox="public">
</div>
</body>
</html>
/*jslint nomen: true, indent: 2, maxerr: 3, maxlen: 80*/
/*global window, RSVP, rJS, jIO*/
(function(window, RSVP, rJS, jIO) {
"use strict";
rJS(window)
.declareAcquiredMethod("add_to_index", "add_to_index")
.declareAcquiredMethod("is_db_empty", "is_db_empty")
.allowPublicAcquisition("add", function (page) {
return this.add_to_index(page[0]);
})
.setState({
to_load: [
// "44_svt.xml", //136 urls
// "allemandfacile.xml", //650 urls
// "anglaisfacile.xml", //567 urls
// "bescherelle.xml", //65 urls
// "codeacademy.xml", //27 urls
// "francaisfacile.xml", //1119 urls
// "hgeo_college.xml", //226 urls
// "histoirencours.xml", //1415 urls
// "italienfacile.xml", //1477 urls
// "jerevise.xml", //918 urls
// "junior_science_et_vie.xml", //532 urls
// "kmusic.xml", //106 urls ---
"larousse.xml", //4563 urls
// //"letudiant.xml", //41649 urls
// "lewebpedagogique.xml", //298 urls
// //"livrespourtous.xml", //12061 urls
// "mathovore.xml", //2221 urls
// "monanneeaucollege.xml", //120 urls
// "nosdevoirs.xml", //462 urls
// "physagreg.xml", //150 urls
// "physique_chimie_college.xml", //282 urls
// "reviser_brevet.xml", //229 urls
// "soutien67.xml", //1604 urls
// //"superprof.xml", //12296 urls
// "technologieaucollege27.xml", //128 urls
// "espagnolfacile.xml", //3352 urls
// "vivelessvt.xml" //1257 urls
]
})
.ready(function(){
var gadget = this;
return gadget.getDeclaredGadget("parser")
.push(function(parser_gadget){
return gadget.changeState({
parser_gadget : parser_gadget
});
});
})
.declareMethod("init", function(){
var gadget = this,
promise_list = [];
return gadget.is_db_empty()
.push(function(empty){
if (empty) {
for (var i=0; i<gadget.state.to_load.length; i+=1){
promise_list.push(gadget.load_file("../../../crawler_test/" + gadget.state.to_load[i]));
}
return RSVP.all(promise_list);
}
});
})
.declareMethod("load_file", function(file_link){ //OK
var gadget = this;
console.log("loading " + file_link);
return new RSVP.Queue()
.push(function(){
return jIO.util.ajax({url : file_link});
})
.push(function(file){
return gadget.state.parser_gadget.concurrent_parse(file.currentTarget.responseText);
})
.push(undefined, function (my_error) {console.log(my_error)});
});
}(window, RSVP, rJS, jIO));
\ No newline at end of file
/*jslint nomen: true, indent: 2, maxerr: 3, maxlen: 80*/
/*global window, RSVP, rJS, jIO*/
(function (window, document, RSVP, rJS, jIO) {
"use strict";
rJS(window)
.ready(function(){
var index, db;
var index = FlexSearch.create("memory");
db = jIO.createJIO(
{
type : "query",
sub_storage : {
type : "uuid",
sub_storage : {
type : "indexeddb",
database : "mynij"
}
}
}
);
/*db = jIO.createJIO(
{
type : "zip",
sub_storage : {
type : "query",
sub_storage : {
type : "uuid",
sub_storage : {
type : "indexeddb",
database : "mynij"
}
}
}
}
);*/
this.changeState({
index : index,
db : db,
msgpack : msgpack
});
return this._load_index();
})
.declareMethod("add_page", function(page_info){ //page_info = {link, title, description, item}
var gadget = this,
tmp;
tmp = page_info;
tmp.portal_type = "page";
return gadget.state.db.post(tmp)
.push(function(){
return gadget.state.db.post(tmp);
})
.push(function(){
for (var i = 0; i < 5; i += 1){
gadget.state.index.add("title_"+page_info.link+"_"+i, page_info.title);
gadget.state.index.add("body_"+page_info.link+"_"+i, page_info.item);
}
})
/* .push(function(){
return gadget._save_index();
})*/;
})
.declareMethod("_save_index", function(){ //OK
//console.log("saving index");
var gadget = this;
var stringified = this.state.index.export(this.state.msgpack);
if (this.state.index_id){
return gadget.state.db.put(gadget.state.db.index_id, {"portal_type" : "index", "index" : stringified});
} else {
return gadget.state.db.post({"portal_type" : "index", "index" : stringified})
.push(function(created_id){
return gadget.changeState({
index_id : created_id
});
});
}
})
.declareMethod("search", function(query){
return this.state.index.search(query);
})
.declareMethod("_load_index", function(msgpack){ //OK
var gadget = this,
query = 'portal_type:"index"',
id;
return this.state.db.allDocs({"query" : query})
.push(function(result){
if (result.data.total_rows !== 0){
console.log("index found");
id = result.data.rows[0].id;
return gadget.state.db.get(result.data.rows[0].id)
.push(function(result){
console.log("started index import");
var tmp_index = FlexSearch.create("memory");
tmp_index.import(result.index, gadget.state.msgpack);
console.log("index import done");
gadget.changeState({
index : tmp_index
});
})
.push(function(){
return gadget.changeState({
index_id : id
});
});
}
});
})
.declareMethod("is_empty", function(){
return this.state.db.allDocs()
.push(function(all_docs){
return all_docs.data.total_rows === 0;
});
})
.declareMethod("get_index", function(){
console.log(this.state.index.info());
console.log(this.state.msgpack);
return this.state.index.export(this.state.msgpack);
//return this.state.index.export({serialize: false});
})
.declareMethod("add_index", function(serialized_index){
console.log("adding index");
this.state.index.import(serialized_index, this.state.msgpack);
//this.state.index.import(serialized_index, {serialize: false});
console.log(this.state.index.info());
});
}(window, document, RSVP, rJS, jIO));
\ No newline at end of file
/*jslint nomen: true, indent: 2, maxerr: 3, maxlen: 80*/
/*global window, RSVP, rJS, jIO*/
(function(window, RSVP, rJS, jIO) {
"use strict";
function dispatchQueue(context, function_used, argument_list, number_queue, callback) {
var result_promise_list = [],
i,
defer;
function pushAndExecute(global_defer) {
if ((global_defer.promise.isFulfilled) ||
(global_defer.promise.isRejected)) {
return;
}
if (argument_list.length > 0) {
function_used.apply(context, argument_list.shift())
.then(function(result) {
callback(result);
pushAndExecute(global_defer);
})
.fail(function(error) {
console.log(error);
global_defer.reject(error);
});
return;
}
global_defer.resolve();
}
for (i = 0; i < number_queue; i += 1) {
defer = RSVP.defer();
result_promise_list.push(defer.promise);
pushAndExecute(defer);
}
if (number_queue > 1) {
return RSVP.all(result_promise_list);
}
return result_promise_list[0];
}
rJS(window)
.declareAcquiredMethod("add", "add")
.declareMethod("concurrent_parse", function(links_file){
var gadget = this,
links = new DOMParser().parseFromString(links_file, "text/xml").getElementsByTagName("url"),
links_modified = [],
i;
var callback_method = function(page){
var item,
result;
if (page !== undefined){
item = new DOMParser().parseFromString(page.currentTarget.response, "text/html");
result = {
link : page.currentTarget.responseURL.slice("https://softinst116265.host.vifib.net/erp5/ERP5Site_getHTTPResource?url=".length),
title : item.title,
//description : item.querySelector('meta[name="description"]').getAttribute('content'),
description : "",
item : item.getElementsByTagName("body")[0].innerText
};
return gadget.add(result);
}
};
for (i=0; i<links.length; i+=1){
links_modified[i] = [links[i].getElementsByTagName('loc')[0].textContent];
}
return new RSVP.Queue().push(function() {
return dispatchQueue(this, gadget._get, links_modified, 2, callback_method);
});
})
.declareMethod("_get", function(link){
return new RSVP.Queue()
.push(function(){
var rng = Math.floor(Math.random() * Math.floor(10));
if (rng % 2 === 0 ) return jIO.util.ajax({url : "https://softinst116265.host.vifib.net/erp5/ERP5Site_getHTTPResource?url=" + link});
else return jIO.util.ajax({url : "https://softinst116446.host.vifib.net/erp5/ERP5Site_getHTTPResource?url=" + link});
})
.push(undefined, function (my_error) {console.log(my_error)});
});
}(window, RSVP, rJS, jIO));
......@@ -40,7 +40,7 @@
body.innerHTML = "";
list.appendChild(list_item);
} else {
return gadget.cut_description(item.body, key)
return gadget.cut_description(item.body, key) //return gadget.cut_description(item.body, item.description, key)
.push(function (result){
var array = [...result.matchAll(key)],
i;
......@@ -102,10 +102,10 @@
}
})
.declareMethod("cut_description", function(body, key){
.declareMethod("cut_description", function(body, key){ //function(body, description, key)
var result = new RegExp('[^.?!]*' + ' ' + key + ' ' + '[^.?!]*[.?!]', 'gm').exec(body);
if (result === null) {
result = new RegExp('[^.?!]*[.?!]').exec(body);
result = new RegExp('[^.?!]*[.?!]').exec(body); //if (description !== "") return description; else....
if (result === null) return "";
else return result[0];
}
......
......@@ -2,48 +2,33 @@
var gadget;
rJS(window)
.allowPublicAcquisition("get_server_model", function(){
return this.state.server_model_gadget;
})
.setState({
server_model_gadget : null,
client_model_gadget : null,
parser_gadget : null,
model_gadget : null,
result_gadget : null,
to_load: [
"allemandfacile.rss",
"anglaisfacile.rss",
"espagnolfacile.rss",
"francaisfacile.rss",
"hgeo_college.rss",
"histoirencours.rss",
"italienfacile.rss",
"lewebpedagogique-lapasserelle.rss",
"mathematiquesfacile.rss",
"physique_chimie_college.rss",
"technologieaucollege27.rss",
"vivelessvt.rss",
"bnf.rss",
"letudiant.rss"
]
loader_gadget : null,
})
.allowPublicAcquisition("add_to_index", function(page){
return this.state.model_gadget.add_page(page[0]);
})
.allowPublicAcquisition("is_db_empty", function(){
return this.state.model_gadget.is_empty();
})
.ready(function(){
var server_model_gadget,
client_model_gadget,
var model_gadget,
result_gadget,
loader_gadget,
gadget = this;
return gadget.getDeclaredGadget("server_model")
.push(function(server_model){
server_model_gadget = server_model;
})
return gadget.init_buttons()
.push(function(){
return gadget.getDeclaredGadget("client_model");
return gadget.getDeclaredGadget("model");
})
.push(function(client_model){
client_model_gadget = client_model;
.push(function(model){
model_gadget = model;
})
.push(function(){
return gadget.getDeclaredGadget("result");
......@@ -52,67 +37,66 @@
result_gadget = result;
})
.push(function(){
return gadget.getDeclaredGadget("parser");
return gadget.getDeclaredGadget("loader");
})
.push(function(result){
return gadget.changeState({
server_model_gadget : server_model_gadget,
client_model_gadget : client_model_gadget,
parser_gadget : result,
result_gadget : result_gadget
model_gadget : model_gadget,
result_gadget : result_gadget,
loader_gadget : result
});
});
})
.onStateChange(function (modification_dict){
var gadget = this;
return gadget.state.server_model_gadget.loaded()
.push(function(loaded){
if (!loaded){
return gadget.state.server_model_gadget.add_doc("scolaire")
.push(function(){
return gadget.state.server_model_gadget.add_index("scolaire");
return this.state.loader_gadget.init();
})
.push(function(){
var promise_list = [],
i;
for (i = 0; i < gadget.state.to_load.length; i++){
promise_list.push(gadget.state.parser_gadget.parse("./test-files/" + gadget.state.to_load[i]));
}
return RSVP.all(promise_list);
})
.push(function(parsed_file_items){
var i,
promise_list = [],
queue = new RSVP.Queue(),
add_to_feed;
add_to_feed = function(doc_name, feed){
queue.push(function(){
return gadget.state.server_model_gadget.add_feed_to_doc(doc_name, feed);
.declareMethod("init_buttons", function(){
var event_handler,
upload_handler,
i,
gadget = this;
event_handler = function(event){
if (event.target.value === "export"){
return gadget.state.model_gadget.get_index()
.push(function(serialized_index){
console.log("stringified");
var a = document.createElement('a');
a.href = URL.createObjectURL(new Blob([serialized_index]));
a.download = 'index.bin';
a.click();
});
};
for (i=0; i<parsed_file_items.length; i+=1){
add_to_feed("scolaire", {title : parsed_file_items[i].title, content : parsed_file_items[i].content});
}
return queue;
})
.push(function(){
return gadget.state.server_model_gadget.add_doc_to_index("scolaire", "scolaire");
})
.push(function(){
return gadget.state.client_model_gadget.download_new_index("scolaire");
});
};
upload_handler = function(){
var file_list = this.files,
reader = new FileReader();
reader.onload = function (evt) {
var view = new Uint8Array(evt.target.result);
gadget.state.model_gadget.add_index(view);
};
for (i = 0; i < file_list.length; i += 1){
reader.readAsArrayBuffer(file_list[i], "Uint8Array");
}
});
};
document.getElementById("export").addEventListener("click", event_handler);
document.getElementById("import").addEventListener("change", upload_handler);
})
.declareMethod("search", function (key){
var gadget = this;
return gadget.state.result_gadget.clear()
.push(function(){
return gadget.state.client_model_gadget.search_in_index("scolaire", key);
console.log("starting search");
return gadget.state.model_gadget.search(key);
})
.push(function(result){
console.log("search done");
console.log(result);
if (result.length === 0) {
return gadget.state.result_gadget.addItem({
title : "No results found",
......
<rss version="0.91">
<channel>
<title>AllemandFacile.com</title>
<description>Nouveautés du site AllemandFacile.com</description>
<link>https://www.allemandfacile.com</link>
<copyright>AllemandFacile.com</copyright>
<lastBuildDate>Mon, 20 May 2019 05:45:01 +0200</lastBuildDate>
<item>
<title>
Nouveau test de valdyeuse : Prépositions et datif (*)
</title>
<link>
https://www.allemandfacile.com/cgi2/myexam/voir2.php?id=121526
</link>
<description>
Consigne : Compléter par l'une des prépositions suivies du datif.Choisir parmi les propositions suivantes : | Nach | aus | bei | mit | seit | von | vor | zu
</description>
<pubDate>Fri, 10 May 2019 20:00:55 +0200</pubDate>
</item>
<item>
<title>Nouveau test de cool2233 : Heure (*)</title>
<link>
https://www.allemandfacile.com/cgi2/myexam/voir2.php?id=121456
</link>
<description>
1:00 : Es ist ______. 3:30 : Es ist ______. 4:45 : Es ist ______. 7:15 : Es ist ______. 6:00 : Es ist ______. 4:50 : Es ist ______. 8:03 : Es ist ______. 9:40 : Es ist ______. 6:55 : Es ist ______. 10:56 : Es ist ______.
</description>
<pubDate>Fri, 26 Apr 2019 09:22:47 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (TOP) de jng : AN +accusatif OU +datif? (régimes verbaux prépositionnels) (**)
</title>
<link>
https://www.allemandfacile.com/cgi2/myexam/voir2.php?id=121402
</link>
<description>
Choix du marquage du groupe nominal avec la préposition AN dans les régimes verbaux prépositionnels. Outre le fait qu'il faille les mémoriser un à un (*), les verbes à régime prépositionnel présentent une difficulté suppleacut...
</description>
<pubDate>Sat, 13 Apr 2019 20:09:36 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (TOP) de calceusnivalis : L'orchestre symphonique (**)
</title>
<link>
https://www.allemandfacile.com/cgi2/myexam/voir2.php?id=121372
</link>
<description>
Das Sinfoniekonzert Der Zuschauerraum füllt sich langsam, auf der Bühne spielen sich die Musiker ein. Ganz hinten, in der Mitte der Bühne thront der Pauker, um ihn herum stehen die im Bühnenlicht glänzenden Pauken, vor ihm sitzen die Blechbläser, die Trompeter, die P...
</description>
<pubDate>Thu, 04 Apr 2019 20:56:08 +0200</pubDate>
</item>
<item>
<title>
Nouveau test de valdyeuse : Verbes à régime prépositionnel (**)
</title>
<link>
https://www.allemandfacile.com/cgi2/myexam/voir2.php?id=121253
</link>
<description>
Certains verbes sont suivis systématiquement d'une préposition et d'un cas précis. L'exercice qui suit vous en propose quelques-uns. Consigne : Compléter les phrases par la préposition qui convient1)Der Reiseführer wartet ___ die Touristen.2)Die...
</description>
<pubDate>Sat, 16 Mar 2019 20:13:21 +0200</pubDate>
</item>
<item>
<title>Nouveau test de jng : Examen médical (Arzt) (**)</title>
<link>
https://www.allemandfacile.com/cgi2/myexam/voir2.php?id=121185
</link>
<description>
Mise en bouche orthographique Le mot « Arzt » comporte 4 lettres ; c'est peu mais permet de constater d'emblée ici la suprématie des consonnes, comme majoritairement en allemand... Lorsque l'on commence l'apprentissage de la langue, le fait d'ajouter à la voyelle ...
</description>
<pubDate>Tue, 12 Mar 2019 21:03:06 +0200</pubDate>
</item>
<item>
<title>
Nouveau test de valdyeuse : Groupe prépositionnel introduit par für ou ohne (**)
</title>
<link>
https://www.allemandfacile.com/cgi2/myexam/voir2.php?id=120985
</link>
<description>
Les prépositions für (pour) et ohne (sans) sont suivies de l'accusatif. Consigne : Compléter avec les désinences qui conviennent Ich habe für mein neu______ Motorrad viel Geld ausgegeben. Für d______ alt______ Wagen gebe ich keinen Euro mehr au...
</description>
<pubDate>Wed, 20 Feb 2019 10:14:24 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (mini top) de jng : Où a-t-on mis l'anatomie ? (***)
</title>
<link>
https://www.allemandfacile.com/cgi2/myexam/voir2.php?id=120982
</link>
<description>
Dans les mots composés, les parties du corps, les organes, déterminent habituellement ce qui les concerne directement : quand on souffre de la tête Kopf donnera Kopfschmerzen , des dents Zahn donnera Zahnschmerzen, de l'estomac Magen > Magenschmerzen. Pour garder le choix i...
</description>
<pubDate>Mon, 18 Feb 2019 09:39:49 +0200</pubDate>
</item>
<item>
<title>
Nouveau test de valdyeuse : Prétérit (verbes forts) (*)
</title>
<link>
https://www.allemandfacile.com/cgi2/myexam/voir2.php?id=120896
</link>
<description>
Consigne : Compléter par le verbe proposé au prétérit. 1. Ein schönes rotes Auto ______ vor unserer Tür. (halten) 2. Im Herbst ______ die Blätter. (fallen) 3. Der alte Mann ______ nicht gut. (sehen) 4. Seit einer Woche ______ mein Fre...
</description>
<pubDate>Wed, 13 Feb 2019 10:41:16 +0200</pubDate>
</item>
<item>
<title>
Nouveau test de lepn202 : Déterminants et pronoms (**)
</title>
<link>
https://www.allemandfacile.com/cgi2/myexam/voir2.php?id=120855
</link>
<description>
Consigne : Complétez avec le déterminant proposé au cas concerné 1. Heute hatte ich Physik mit ______ (mein) Kumpel Khalif. 2. Der Floss Dance ist ______ (ein) der beliebtesten Tänze unserer Generation. 3. Durch ein Geschenk zeige ich ______ (ein) ...
</description>
<pubDate>Tue, 12 Feb 2019 12:47:42 +0200</pubDate>
</item>
</channel>
</rss>
\ No newline at end of file
<rss version="0.91">
<channel>
<title>AnglaisFacile.com</title>
<description>Nouveautés du site AnglaisFacile.com</description>
<link>https://www.anglaisfacile.com</link>
<copyright>AnglaisFacile.com</copyright>
<lastBuildDate>Mon, 20 May 2019 05:45:01 +0200</lastBuildDate>
<item>
<title>Lettre d'informations du lundi 20/05/19</title>
<link>https://www.anglaisfacile.com/news/200519f.php</link>
<description>
Les dernières nouvelles des sites et une leçon grand format. #anglais
</description>
<pubDate>Mon, 20 May 2019 01:10:30 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (TOP) de baboune16 : Mémoire ou souvenir (**)
</title>
<link>
https://www.anglaisfacile.com/cgi2/myexam/voir2.php?id=121586
</link>
<description>
Nous allons aborder ici l'essentiel du vocabulaire qui concerne la mémoire (ou son absence). Comme nous allons le voir les synonymes sont nombreux. 2 verbes sont fréquemment utilisés : To remember : se rappeler, se souvenir. To remind : rappeler,faire penser, c... #anglais
</description>
<pubDate>Sun, 19 May 2019 08:49:09 +0200</pubDate>
</item>
<item>
<title>Nouveau test de alexiszaza69 : Prépositions (*)</title>
<link>
https://www.anglaisfacile.com/cgi2/myexam/voir2.php?id=121701
</link>
<description>
Use the right prepositions in the sentences.Choisir parmi les propositions suivantes : | among | at | between | down | far | for | in | into | on | to #anglais
</description>
<pubDate>Sun, 19 May 2019 08:48:08 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (TOP) de here4u : Expressions idiomatiques : hands (*)
</title>
<link>
https://www.anglaisfacile.com/cgi2/myexam/voir2.php?id=121167
</link>
<description>
Nous avons déjà étudié les idiomes qui se rapportent à plusieurs parties du corps ... Les mains, tiennent, bien sûr, une place importante dans le langage imagé quotidien. Second hand= d'occasion To have clean hands Les mains propres (concret et a... #anglais
</description>
<pubDate>Sat, 18 May 2019 09:31:51 +0200</pubDate>
</item>
<item>
<title>Nouveau test de ayesha : Of ou Nothing (-) (*)</title>
<link>
https://www.anglaisfacile.com/cgi2/myexam/voir2.php?id=121615
</link>
<description>Put in #anglais</description>
<pubDate>Sat, 18 May 2019 08:36:45 +0200</pubDate>
</item>
<item>
<title>
Nouvel exercice forum de marit64 : The missing vowels /307
</title>
<link>
https://www.anglaisfacile.com/forum/lire.php?num=5&msg=107236&titre=The+missing+vowels+%2F307
</link>
<description>
:p4[bleu] everybody![/bleu] [bleu]Find the missing vowels and unscramble the consonants in order to get the right word[/bleu]. :etoile::etoile: [bleu]This time, the number of vowels is given in 8 out of 10 answers.[/bleu] :p9 1- A shelf or an object that sticks out like a shelf. ..... ([vert]d l ... #anglais
</description>
<pubDate>Fri, 17 May 2019 08:10:11 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (mini top) de adrien62 : Emotions (**)
</title>
<link>
https://www.anglaisfacile.com/cgi2/myexam/voir2.php?id=121575
</link>
<description>
Les différentes émotions (présentes dans l'exercice): Heureux(se): Cheerful Fier(e): Proud Fou (Folle): Crazy Nerveux(se): Nervous Surpris(e): Surprised Déprimé(e): Depressed Soucieux(se)/Anxieux(se): Anxious Grincheux(se): Grumpy Fatigué(e): Tired Confus... #anglais
</description>
<pubDate>Fri, 17 May 2019 07:56:38 +0200</pubDate>
</item>
<item>
<title>
Nouveau test de mouha98 : Présent simple ou en V-ing (*)
</title>
<link>
https://www.anglaisfacile.com/cgi2/myexam/voir2.php?id=121670
</link>
<description>
Compléter les phrases; n'employez pas de forme contractée. 1. Everyday she ______ (wake up) early. 2. The teacher ______ (explain) the lesson right now. 3. The thief will run away as soon as he ______ (see) the police. 4. Look ! He ______ (make) funny jokes. 5. The childre... #anglais
</description>
<pubDate>Thu, 16 May 2019 10:20:10 +0200</pubDate>
</item>
<item>
<title>Nouvel exercice forum de here4u : Our Story /56</title>
<link>
https://www.anglaisfacile.com/forum/lire.php?num=11&msg=107211&titre=Our+Story+%2F56
</link>
<description>
Hello dear Storytellers, ;;)! [bleu]Pour que notre histoire fonctionne bien, merci de lire ou relire les règles AVANT de poster, surtout si vous le faites pour la première fois ... [/bleu] ATTENTION ! (!)(!) Depuis quelque temps, vous pouvez gagner plus de points ! Toujours plus fort ...: [bleu]O... #anglais
</description>
<pubDate>Wed, 15 May 2019 08:35:19 +0200</pubDate>
</item>
<item>
<title>Nouveau test de adrien62 : Présent simple (*)</title>
<link>
https://www.anglaisfacile.com/cgi2/myexam/voir2.php?id=121566
</link>
<description>
Complétez les différentes phrases avec les verbes correspondants conjugués au présent simple. 1. We ______ (eat) an apple every day. 2. You ______ (drink) an excellent orange juice. 3. He ______ (read) a book by his favourite writer. 4. They ______ ... #anglais
</description>
<pubDate>Wed, 15 May 2019 08:29:27 +0200</pubDate>
</item>
</channel>
</rss>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:og="http://ogp.me/ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:schema="http://schema.org/" xmlns:sioc="http://rdfs.org/sioc/ns#" xmlns:sioct="http://rdfs.org/sioc/types#" xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" version="2.0" xml:base="https://www.bnf.fr/fr/actualites/rss/all">
<channel>
<title>BnF - Toute l'actualité</title>
<link>https://www.bnf.fr/fr/actualites/rss/all</link>
<description/>
<language>fr</language>
<item>
<title>Information : Perturbations des accès Wifi et Wifil</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-02/Lieu_Arsenal_header.jpg?itok=9V_GXm5Z" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Actualités Professionnelles, Brèves de la BnF&lt;/category&gt;&lt;br /&gt;&lt;soustitre&gt;ce Lundi 3 juin 2019 matin&lt;/soustitre&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;29 Mai. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/information-perturbations-des-acces-wifi-et-wifil%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Indisponibilité de certains documents du département de la Musique</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-02/%5BDon_Carlos___musique_de_%5B...%5DVerdi_Giuseppe_btv1b52509316p_1189.jpg?itok=2wTcjFeA" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Département de la Musique&lt;/category&gt;&lt;br /&gt;&lt;soustitre&gt;du 17/06/2019 au 26/07/2019&lt;/soustitre&gt;&lt;br /&gt;&lt;lieu&gt;Richelieu&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;24 Mai. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/indisponibilite-de-certains-documents-du-departement-de-la-musique%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Fermetures de printemps</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-04/Jardin_Printempsjpg.jpg?itok=Yta_2CV0" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Actualités Professionnelles, Brèves de la BnF&lt;/category&gt;&lt;br /&gt;&lt;soustitre&gt;Les 30 mai et 9 et 10 juin 2019&lt;/soustitre&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;23 Mai. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/fermetures-de-printemps%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Le Prix Niépce 2019 Gens d’images est attribué à Raphaël Dallaporta.</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-05/1_Antipersonnel_BLU3-US-LD.jpg?itok=rccYHajK" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Brèves de la BnF&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;23 Mai. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/le-prix-niepce-2019-gens-dimages-est-attribue-raphael-dallaporta%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>La Clinique juridique s'interrompt de début juin à l'automne 2019</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-02/clinique%20juridique.png?itok=jEDtYcwL" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Département Droit, Economie, Politique&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;François-Mitterrand&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;14 Mai. 2019&lt;/date&gt;&lt;br /&gt;</description>
</item>
<item>
<title>Mise en ligne de nouvelles vidéos de conférences</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-03/bnf-20180526-150_2.jpg?itok=0q6QDItJ" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Brèves de la BnF&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;13 Mai. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/mise-en-ligne-de-nouvelles-videos-de-conferences%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Préparer son bac à la BnF</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-04/etudiant_bib_recherche.jpg?itok=3t5x9vf7" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Brèves de la BnF&lt;/category&gt;&lt;br /&gt;&lt;soustitre&gt;jusqu'au 24 juin 2019&lt;/soustitre&gt;&lt;br /&gt;&lt;lieu&gt;François-Mitterrand&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;2 Mai. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/preparer-son-bac-la-bnf%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Hommage à Françoise Barrière</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-04/Fran%C3%A7oise%20Barri%C3%A8re-2014-portrait.jpg?itok=A_lLSKs0" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Actualités Professionnelles, Brèves de la BnF, Département Audiovisuel, Département de la Musique&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;30 avr. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/hommage-francoise-barriere%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Eco-pâturage : les chèvres reviennent dans le jardin-forêt de la BnF</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-04/chevres_jardin_20180528_25_site.jpg?itok=MMDZ_TO2" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Brèves de la BnF&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;François-Mitterrand&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;30 avr. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/eco-paturage-les-chevres-reviennent-dans-le-jardin-foret-de-la-bnf%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>La BnF et Bibliothèque et Archives Canada s'associent autour du projet « La France aux Amériques »</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-04/LAC_Library%20%282%20of%202%29.jpg?itok=32M2lJqn" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Actualités Professionnelles, Brèves de la BnF, International&lt;/category&gt;&lt;br /&gt;&lt;soustitre&gt;Patrimoines Partagés&lt;/soustitre&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;26 avr. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/la-bnf-et-bibliotheque-et-archives-canada-sassocient-autour-du-projet-la-france-aux%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Le Réseau Francophone Numérique se dote d'un blogue</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-04/Capture%20blog%20RFN_vignette.jpg?itok=OufSPNQW" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Actualités Professionnelles, International&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;26 avr. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/le-reseau-francophone-numerique-se-dote-dun-blogue%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Séverine (1855-1929)</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-04/pionnieres_severine.jpg?itok=72NQELCi" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Actualités Professionnelles, Brèves de la BnF&lt;/category&gt;&lt;br /&gt;&lt;soustitre&gt;Deuxième vidéo de la série « Pionnières ! » consacrée aux femmes&lt;/soustitre&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;24 avr. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/severine-1855-1929%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>data.bnf.fr fait peau neuve</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-04/data_bnf_fr_nouveau.png?itok=RVPJD8OK" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Actualités Professionnelles, Brèves de la BnF&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;18 avr. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/databnffr-fait-peau-neuve%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Comment donner pour reconstruire Notre-Dame de Paris ?</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-04/IFN-8011578-1-LD_vingette.jpg?itok=iZt_hCwm" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Brèves de la BnF&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;17 avr. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/comment-donner-pour-reconstruire-notre-dame-de-paris%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Nouvelle version du service SRU de récupération des données de la BnF </title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-01/Sous_home_reutilisation_donnees.jpg?itok=jum4rmd5" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Actualités Professionnelles&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;16 avr. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/nouvelle-version-du-service-sru-de-recuperation-des-donnees-de-la-bnf%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Les projets européens décryptés</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-04/Berlaymont_crop.jpeg?itok=AQlhzJlS" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Actualités Professionnelles, International&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;12 avr. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/les-projets-europeens-decryptes%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Virginie Despentes Lauréate du Prix de la BnF 2019</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-04/Virginie_despentes_Leemage_mol_breve.jpg?itok=kCe7DqDp" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Brèves de la BnF&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;3 avr. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/virginie-despentes-laureate-du-prix-de-la-bnf-2019%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>NumBA, la bibliothèque numérique en agronomie tropicale du Cirad</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-04/Kolatier_planche_botanique.jpg?itok=IksKQ5NW" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Actualités Professionnelles, Brèves de la BnF&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;4 avr. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/numba-la-bibliotheque-numerique-en-agronomie-tropicale-du-cirad%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Nouveau numéro de Chroniques, le magazine de la BnF</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-04/chroniques_85.jpg?itok=aDiNOqkg" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Brèves de la BnF&lt;/category&gt;&lt;br /&gt;&lt;soustitre&gt;n°85, avril - juillet 2019&lt;/soustitre&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;1 avr. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/nouveau-numero-de-chroniques-le-magazine-de-la-bnf%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Suspension temporaire de l'accès par téléphone au service SINDBAD</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-04/Banque_salle_X_20141014_25_site.jpg?itok=vu1uCFFC" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Brèves de la BnF&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;1 avr. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/suspension-temporaire-de-lacces-par-telephone-au-service-sindbad%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>La BnF rend hommage à Agnès Varda (1928-2019)</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-04/Agn%C3%A8s%20Varda%20lisant%20dans%20la%20salle%20Labrouste%20%28Toute%20la%20m%C3%A9moire%20du%20monde%2C%20d%E2%80%99Alain%20Resnais%2C%201956%29%20%E2%80%93%20cop.%20Les%20Films%20du%20jeudi_site.jpg?itok=xaZSKp_P" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Brèves de la BnF, Département Audiovisuel, Département des Arts du spectacle&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;---&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;29 mar. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/la-bnf-rend-hommage-agnes-varda-1928-2019%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Fermeture exceptionnelle de la salle Labrouste jeudi 6 juin </title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-03/Labrouste_JC%20Ballot_2016%20%285%29_breve.jpg?itok=dfBAc4I0" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Brèves de la BnF, Département des Estampes et de la photographie, Site Richelieu&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;Richelieu&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;29 Mai. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/fermeture-exceptionnelle-de-la-salle-labrouste-jeudi-6-juin%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Exposition La collection Jacques Chesnais (1907-1971)</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-03/OBJ-MAR-952%20-%20J.%20CHesnais%20-%20Mercure%2C%20marionnette%20%C3%A0%20fils_ns_0.jpg?itok=IVhi0Lvk" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Département des Arts du spectacle&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;Hors les murs&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;22 mar. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/exposition-la-collection-jacques-chesnais-1907-1971%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Nouvelle version de l’application Gallicadabra </title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-03/Splashscreen_site.jpg?itok=3s1aXwPp" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Brèves de la BnF&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;François-Mitterrand&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;13 mar. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/nouvelle-version-de-lapplication-gallicadabra%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>« Olympe de Gouges », première vidéo de la série « Pionnières ! » consacrée aux femmes</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-03/declaration%20des%20droits%20de%20la%20femme%20et%20des%20citoyennes_0.jpg?itok=UxF8y89O" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Brèves de la BnF&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;François-Mitterrand&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;8 mar. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/olympe-de-gouges-premiere-video-de-la-serie-pionnieres-consacree-aux-femmes%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Évolutions des données de la BnF</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-01/logo_TB_texte.png?itok=2c8DES60" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Actualités Professionnelles&lt;/category&gt;&lt;br /&gt;&lt;soustitre&gt;Transition bibliographique au 1er mai 2019 induites par la réforme RAMEAU&lt;/soustitre&gt;&lt;br /&gt;&lt;lieu&gt;François-Mitterrand&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;24 jan. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/evolutions-des-donnees-de-la-bnf%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Service de réservation en ligne pour les documents du département des Manuscrits</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2018-12/salle_manuscrits.jpg?itok=OOh_LQE3" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Département des Manuscrits&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;Richelieu&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;3 déc. 2018&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/service-de-reservation-en-ligne-pour-les-documents-du-departement-des-manuscrits%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Service de réservation en ligne pour les documents du département des Arts du spectacle</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-01/Image%202%20-%20salle%20lecture%20ASP%20%28c%29%20E.%20Nguyen%20Ngoc.jpg?itok=lF4pdFwn" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Département des Arts du spectacle&lt;/category&gt;&lt;br /&gt;&lt;lieu&gt;Richelieu&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;3 déc. 2018&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/service-de-reservation-en-ligne-pour-les-documents-du-departement-des-arts-du-spectacle%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
<item>
<title>Le manuscrit de Nadja d’André Breton, classé Trésor national, entre dans les collections de la BnF</title>
<description>
&lt;image&gt;&lt;img src="https://www.bnf.fr/sites/default/files/styles/thumbnail/public/2019-01/manuscrit%20nadja%20breton%20bnf_actu.jpg?itok=jmNsh19k" /&gt;&lt;/image&gt;&lt;br /&gt;&lt;category&gt;Département des Manuscrits&lt;/category&gt;&lt;br /&gt;&lt;soustitre&gt;Dons et acquisitions&lt;/soustitre&gt;&lt;br /&gt;&lt;lieu&gt;Richelieu&lt;/lieu&gt;&lt;br /&gt;&lt;date&gt;10 jan. 2019&lt;/date&gt;&lt;br /&gt;</description>
<link>https://www.bnf.fr/%3Ca%20href%3D%22/fr/actualites/le-manuscrit-de-nadja-dandre-breton-classe-tresor-national-entre-dans-les-collections-de%22%20hreflang%3D%22fr%22%3EVoir%3C/a%3E</link>
</item>
</channel>
</rss>
\ No newline at end of file
<rss version="0.91">
<channel>
<title>EspagnolFacile.com</title>
<description>EspagnolFacile.com</description>
<link>https://www.espagnolfacile.com</link>
<copyright>EspagnolFacile.com</copyright>
<lastBuildDate>Mon, 20 May 2019 05:45:01 +0200</lastBuildDate>
<item>
<title>
Nouveau test (TOP) (sur espagnolfacile.com) de hidalgo : Impératif (révision) (***)
</title>
<link>
https://www.espagnolfacile.com/cgi2/myexam/voir2.php?id=121545
</link>
<description>
_______________________________________________________________I/ Former une phrase à l'impératif affirmatif (ordre) à partir des verbes à l'infinitif ci-dessous, en les conjuguant à la personne indiquée entre parenthèses
</description>
<pubDate>Thu, 02 May 2019 19:00:02 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (sur espagnolfacile.com) de lavidaoo : Présent de l'indicatif (verbes à diphtongue) (**)
</title>
<link>
https://www.espagnolfacile.com/cgi2/myexam/voir2.php?id=121476
</link>
<description>
Conjuguer les verbes entre parenthèses au présent de l'indicatif ! 1. Todavía ella no ______ (poder) hablar español bien. 2. Sandra ______ (tener) una casa muy bonita en la ciudad de Orly. 3. A mi madre le ______ (doler) mucho las piernas. 4. Yo ___...
</description>
<pubDate>Thu, 18 Apr 2019 16:33:49 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (mini top) (sur espagnolfacile.com) de hidalgo : Prépositions (**)
</title>
<link>
https://www.espagnolfacile.com/cgi2/myexam/voir2.php?id=121401
</link>
<description>
Complétez les espaces vides à l'aide de la préposition appropriée ! Si l'espace doit rester vide, vous choisirez le tiret (-) présent dans le menu déroulant ! (il y a 6 propositions dans le menu déroulant = DE, EN, A, POR, PARA et le tiret).Ch...
</description>
<pubDate>Tue, 02 Apr 2019 23:19:34 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (TOP) (sur espagnolfacile.com) de lavidaoo : Passé simple ou passé composé (**)
</title>
<link>
https://www.espagnolfacile.com/cgi2/myexam/voir2.php?id=121319
</link>
<description>1/ - Avec le</description>
<pubDate>Sat, 23 Mar 2019 16:28:00 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (mini top) (sur espagnolfacile.com) de abdel159 : Présent de l'indicatif (*)
</title>
<link>
https://www.espagnolfacile.com/cgi2/myexam/voir2.php?id=121267
</link>
<description>
Le présent de l'indicatif en espagnol Le présent est formé sur le radical du verbe auquel on ajoute les terminaisons présentes dans le tableau ci-dessous : Verbes en -Ar Verbes -Er Verbes en -Ir O O O As Es Es A E E Amos Emos Imos Áis Éis Ís An...
</description>
<pubDate>Wed, 20 Mar 2019 08:45:29 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (mini top) (sur espagnolfacile.com) de milanex06 : Passé composé (*)
</title>
<link>
https://www.espagnolfacile.com/cgi2/myexam/voir2.php?id=121293
</link>
<description>
Passé composé En espagnol, le passé composé se forme avec l'auxiliaire avoir (haber) au présent de l'indicatif suivi du participe passé du verbe à conjuguer. Aucun autre auxiliaire que
</description>
<pubDate>Sun, 17 Mar 2019 19:25:12 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (mini top) (sur espagnolfacile.com) de hidalgo : Pronoms personnels (**)
</title>
<link>
https://www.espagnolfacile.com/cgi2/myexam/voir2.php?id=121222
</link>
<description>
Complétez les phrases ci-dessous en choisissant le pronom approprié dans le menu déroulant ! NB : explications détaillées dans le corrigé !1)1. ¿Qué tal Isabel? - ___ he llamado y está muy bien.2)2. ¿Has recibido mi tarjeta? - Sí, ___ ...
</description>
<pubDate>Wed, 13 Mar 2019 16:26:58 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (mini top) (sur espagnolfacile.com) de lavidaoo : Type du mot (**)
</title>
<link>
https://www.espagnolfacile.com/cgi2/myexam/voir2.php?id=121236
</link>
<description>
On peut classer les mots en trois catégories selon l'endroit où se situe la syllabe tonique dans ces mots : palabra aguda = mot dont l'accent tombe sur la dernière syllabe (el acento recae sobre la última sílaba de la palabra) exemples : Madrid, pantalón ...
</description>
<pubDate>Sun, 10 Mar 2019 15:14:30 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (sur espagnolfacile.com) de lavidaoo : Passé simple (*)
</title>
<link>
https://www.espagnolfacile.com/cgi2/myexam/voir2.php?id=121174
</link>
<description>
Conjuguez les verbes entre parenthèses au passé simple ! 1. Mi padre ______ (ser) médico. 2. Anteayer Amal y Buchra ______ (ir) juntas al cine a ver una película de Hassan Benjelloun. 3. La semana pasada Juan ______ (comprar) un gato de color blanco.
</description>
<pubDate>Thu, 28 Feb 2019 17:06:36 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (TOP) (sur espagnolfacile.com) de acebo : Apocope (*)
</title>
<link>
https://www.espagnolfacile.com/cgi2/myexam/voir2.php?id=121019
</link>
<description>
Bonjour, On appelle Apocope la chute de la dernière voyelle ou de la dernière syllabe d'un mot. Ainsi Devant un nom masculin singulier : - Uno se transforme en : un ex : un chico mais una chica (féminin singulier) - Alguno et ninguno font : algún et ningún ...
</description>
<pubDate>Sat, 23 Feb 2019 20:44:27 +0200</pubDate>
</item>
</channel>
</rss>
\ No newline at end of file
<rss version="0.91">
<channel>
<title>FrancaisFacile.com</title>
<description>Nouveautés du site FrancaisFacile.com</description>
<link>https://www.francaisfacile.com</link>
<copyright>FrancaisFacile.com</copyright>
<lastBuildDate>Mon, 20 May 2019 05:45:01 +0200</lastBuildDate>
<item>
<title>Lettre d'informations du lundi 20/05/19</title>
<link>https://www.francaisfacile.com/news/200519f.php</link>
<description>
Les dernières nouvelles des sites et une leçon grand format.
</description>
<pubDate>Mon, 20 May 2019 01:10:30 +0200</pubDate>
</item>
<item>
<title>
Nouveau test de hammou : Indicateurs de temps et temps verbaux (**)
</title>
<link>
https://www.francaisfacile.com/cgi2/myexam/voir2.php?id=121593
</link>
<description>
Choisissez le temps convenable pour chaque phrase en faisant attention aux indicateurs de temps, à la cohérence et au temps d'autres verbes présents dans les phrases du test.1)Il y a des milliards d'années, la Terre ___ d'un océan de magma en fusion....
</description>
<pubDate>Thu, 16 May 2019 20:20:00 +0200</pubDate>
</item>
<item>
<title>Lettre d'informations du lundi 13/05/19</title>
<link>https://www.francaisfacile.com/news/130519f.php</link>
<description>
Les dernières nouvelles des sites et une leçon grand format.
</description>
<pubDate>Mon, 13 May 2019 01:10:29 +0200</pubDate>
</item>
<item>
<title>Nouveau test de ag2007 : La phrase (1) (*)</title>
<link>
https://www.francaisfacile.com/cgi2/myexam/voir2.php?id=121578
</link>
<description>
Une phrase commence toujours par une majuscule, finit par un point et a du sens. On appelle phrase verbale une phrase qui contient un verbe conjugué. EX. : J'attends le silence. On appelle phrase non verbale (ou averbale) une phrase qui ne contient aucun verbe conjugué. EX.: Attenti...
</description>
<pubDate>Wed, 08 May 2019 20:53:20 +0200</pubDate>
</item>
<item>
<title>Lettre d'informations du lundi 06/05/19</title>
<link>https://www.francaisfacile.com/news/060519f.php</link>
<description>
Les dernières nouvelles des sites et une leçon grand format.
</description>
<pubDate>Mon, 06 May 2019 01:10:30 +0200</pubDate>
</item>
<item>
<title>
Nouveau test (mini top) de eos17 : Expressions populaires (**)
</title>
<link>
https://www.francaisfacile.com/cgi2/myexam/voir2.php?id=121446
</link>
<description>
Pour vous familiariser avec certaines expressions, voici une liste incluse dans un petit texte. - Attendre jusqu'à la Saint-Glinglin : à une date hypothétique, voire jamais - Entre chien et loup : à la tombée du jour quand on ne peut plus faire la différ...
</description>
<pubDate>Tue, 30 Apr 2019 09:32:08 +0200</pubDate>
</item>
<item>
<title>Lettre d'informations du lundi 29/04/19</title>
<link>https://www.francaisfacile.com/news/290419f.php</link>
<description>
Les dernières nouvelles des sites et une leçon grand format.
</description>
<pubDate>Mon, 29 Apr 2019 01:10:30 +0200</pubDate>
</item>
<item>
<title>Nouveau test de mylaw : Bonne orthographe (**)</title>
<link>
https://www.francaisfacile.com/cgi2/myexam/voir2.php?id=121443
</link>
<description>
Certains mots se ressemblent par leur forme et leur prononciation. Ne les confondons pas. Nous allons en rencontrer dans l'exercice ci-dessous. Vous aurez à choisir celui qui donnera tout son sens à la phrase.1)Après une longue enquête, les gendarmes ont deacut...
</description>
<pubDate>Fri, 26 Apr 2019 09:15:44 +0200</pubDate>
</item>
<item>
<title>
Nouveau test de valdyeuse : Terminaison S ou X (*)
</title>
<link>
https://www.francaisfacile.com/cgi2/myexam/voir2.php?id=121439
</link>
<description>
Consigne : Choisissez la terminaison correcte des mots proposés.1)Nous avons appris le décè___ de son grand-père.2)Maman et moi préparons un délicieux clafouti ___ aux cerises.3)Le lyn ___ est un félin, reconnaissable à ses o...
</description>
<pubDate>Mon, 22 Apr 2019 10:41:06 +0200</pubDate>
</item>
<item>
<title>Lettre d'informations du lundi 22/04/19</title>
<link>https://www.francaisfacile.com/news/220419f.php</link>
<description>
Les dernières nouvelles des sites et une leçon grand format.
</description>
<pubDate>Mon, 22 Apr 2019 01:10:30 +0200</pubDate>
</item>
</channel>
</rss>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
<channel>
<title>Histoire en cours</title>
<atom:link href="http://histoirencours.fr/blog/?feed=rss2" rel="self" type="application/rss+xml" />
<link>http://histoirencours.fr/blog</link>
<description>Le blog d&#039;Histoire, Géographie et Enseignement morale et civique de Jérôme Dorilleau</description>
<lastBuildDate>
Wed, 31 Oct 2018 10:54:32 +0000 </lastBuildDate>
<language>fr-FR</language>
<sy:updatePeriod>
hourly </sy:updatePeriod>
<sy:updateFrequency>
1 </sy:updateFrequency>
<generator>https://wordpress.org/?v=5.1.1</generator>
<image>
<url>http://histoirencours.fr/blog/wp-content/uploads/2011/11/p047-150x150.jpg</url>
<title>Histoire en cours</title>
<link>http://histoirencours.fr/blog</link>
<width>32</width>
<height>32</height>
</image>
<item>
<title>2G1 : Du développement au développement durable</title>
<link>http://histoirencours.fr/blog/?p=4243</link>
<comments>http://histoirencours.fr/blog/?p=4243#respond</comments>
<pubDate>Wed, 31 Oct 2018 10:51:32 +0000</pubDate>
<dc:creator><![CDATA[J. Dorilleau]]></dc:creator>
<category><![CDATA[Géographie]]></category>
<category><![CDATA[Seconde]]></category>
<category><![CDATA[2nde]]></category>
<category><![CDATA[développement]]></category>
<category><![CDATA[développement durable]]></category>
<category><![CDATA[IDH]]></category>
<category><![CDATA[lycée]]></category>
<category><![CDATA[PIB]]></category>
<guid isPermaLink="false">http://histoirencours.fr/blog/?p=4243</guid>
<description><![CDATA[Le premier chapitre de Géographie de Seconde s&#8217;intitule :&#160;Du développement au développement durable.&#160; La 1ère partie : Un développement inégal et déséquilibré à toutes les échelles   La 2ème partie : De nouveaux besoins pour plus de 9 milliards &#8230; <a href="http://histoirencours.fr/blog/?p=4243">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
<wfw:commentRss>http://histoirencours.fr/blog/?feed=rss2&#038;p=4243</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>TESG2 : L’Amérique : puissance du Nord, affirmation du Sud</title>
<link>http://histoirencours.fr/blog/?p=4236</link>
<comments>http://histoirencours.fr/blog/?p=4236#respond</comments>
<pubDate>Sun, 14 Oct 2018 20:05:59 +0000</pubDate>
<dc:creator><![CDATA[J. Dorilleau]]></dc:creator>
<category><![CDATA[Géographie]]></category>
<category><![CDATA[Terminale ES]]></category>
<category><![CDATA[Amérique]]></category>
<category><![CDATA[BAC]]></category>
<category><![CDATA[dynamiques territoriales]]></category>
<category><![CDATA[Géo]]></category>
<category><![CDATA[intégrations régionales]]></category>
<category><![CDATA[rôle mondial]]></category>
<category><![CDATA[tensions]]></category>
<category><![CDATA[Terminale L]]></category>
<guid isPermaLink="false">http://histoirencours.fr/blog/?p=4236</guid>
<description><![CDATA[Après le thème 1 introductif, nous traitons le thème 3 sur les dynamiques géographiques de grandes aires continentales, en commençant par l&#8217;Amérique,&#160;puissance du Nord, affirmation du Sud. La 1ère partie&#160; s&#8217;intitule le continent américain : entre tensions et intégrations régionales.&#160; &#8230; <a href="http://histoirencours.fr/blog/?p=4236">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
<wfw:commentRss>http://histoirencours.fr/blog/?feed=rss2&#038;p=4236</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>TSTMGH1 : Le jeu des puissances dans un espace mondialisé de 1945 à nos jours</title>
<link>http://histoirencours.fr/blog/?p=4224</link>
<comments>http://histoirencours.fr/blog/?p=4224#respond</comments>
<pubDate>Fri, 14 Sep 2018 13:45:38 +0000</pubDate>
<dc:creator><![CDATA[J. Dorilleau]]></dc:creator>
<category><![CDATA[Histoire]]></category>
<category><![CDATA[Terminale STMG]]></category>
<category><![CDATA[1945]]></category>
<category><![CDATA[espace mondialisé]]></category>
<category><![CDATA[puissances]]></category>
<category><![CDATA[relations internationales]]></category>
<category><![CDATA[STMG]]></category>
<category><![CDATA[Terminale]]></category>
<guid isPermaLink="false">http://histoirencours.fr/blog/?p=4224</guid>
<description><![CDATA[Le premier chapitre de l&#8217;année en Histoire s&#8217;intitule le jeu des puissances dans un espace mondialisé de 1945 à nos jours.&#160;C&#8217;est la question obligatoire au Bac du thème 1 sur les relations internationales.&#160; Ci-dessous, la 1ère partie du chapitre. ]]></description>
<wfw:commentRss>http://histoirencours.fr/blog/?feed=rss2&#038;p=4224</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>TESH1 : Les mémoires, lecture historique</title>
<link>http://histoirencours.fr/blog/?p=4218</link>
<comments>http://histoirencours.fr/blog/?p=4218#respond</comments>
<pubDate>Thu, 13 Sep 2018 19:38:09 +0000</pubDate>
<dc:creator><![CDATA[J. Dorilleau]]></dc:creator>
<category><![CDATA[Histoire]]></category>
<category><![CDATA[Terminale ES]]></category>
<category><![CDATA[ES]]></category>
<category><![CDATA[mémoires]]></category>
<category><![CDATA[seconde guerre mondiale]]></category>
<category><![CDATA[Terminale]]></category>
<guid isPermaLink="false">http://histoirencours.fr/blog/?p=4218</guid>
<description><![CDATA[Le chapitre introductif d&#8217;Histoire concerne les mémoires et leur lien avec l&#8217;Histoire. J&#8217;ai choisi de travailler sur les mémoires de la seconde guerre mondiale (le thème est au choix avec les mémoires de la guerre d&#8217;Algérie). Voici le diaporama du &#8230; <a href="http://histoirencours.fr/blog/?p=4218">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
<wfw:commentRss>http://histoirencours.fr/blog/?feed=rss2&#038;p=4218</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>2H1 : Les Européens dans le peuplement de la Terre</title>
<link>http://histoirencours.fr/blog/?p=4204</link>
<comments>http://histoirencours.fr/blog/?p=4204#respond</comments>
<pubDate>Tue, 11 Sep 2018 07:56:59 +0000</pubDate>
<dc:creator><![CDATA[J. Dorilleau]]></dc:creator>
<category><![CDATA[Histoire]]></category>
<category><![CDATA[Seconde]]></category>
<category><![CDATA[2nde]]></category>
<category><![CDATA[chapitre 1]]></category>
<category><![CDATA[émigration]]></category>
<category><![CDATA[Européens]]></category>
<category><![CDATA[italienne]]></category>
<category><![CDATA[peuplement]]></category>
<category><![CDATA[population]]></category>
<category><![CDATA[StoryMapJS]]></category>
<guid isPermaLink="false">http://histoirencours.fr/blog/?p=4204</guid>
<description><![CDATA[Le chapitre introductif de l&#8217;année en Histoire&#160;&#160;concerne les Européens dans le peuplement de la Terre. Comment la population européenne a-t-elle évoluée ? Comment les Européens ont-ils influencé le monde, notamment par les migrations ? Voici le diaporama du chapitre : &#8230; <a href="http://histoirencours.fr/blog/?p=4204">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
<wfw:commentRss>http://histoirencours.fr/blog/?feed=rss2&#038;p=4204</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>EMC Terminale</title>
<link>http://histoirencours.fr/blog/?p=4202</link>
<comments>http://histoirencours.fr/blog/?p=4202#respond</comments>
<pubDate>Fri, 07 Sep 2018 15:52:59 +0000</pubDate>
<dc:creator><![CDATA[J. Dorilleau]]></dc:creator>
<category><![CDATA[EMC]]></category>
<category><![CDATA[Terminale ES]]></category>
<category><![CDATA[bioéthique]]></category>
<category><![CDATA[homme augmenté]]></category>
<category><![CDATA[Terminale]]></category>
<guid isPermaLink="false">http://histoirencours.fr/blog/?p=4202</guid>
<description><![CDATA[Dans le cadre du programme d&#8217;EMC de Terminale, nous allons commencer par le thème 2 qui concerne la bioéthique. La question posée aux élèves est la suivante :&#160; « L’amélioration de l’espèce humaine représente-t-elle un progrès de l’humanité ? »&#160; &#8230; <a href="http://histoirencours.fr/blog/?p=4202">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
<wfw:commentRss>http://histoirencours.fr/blog/?feed=rss2&#038;p=4202</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>TESG1 : Des cartes pour comprendre le monde</title>
<link>http://histoirencours.fr/blog/?p=4191</link>
<comments>http://histoirencours.fr/blog/?p=4191#respond</comments>
<pubDate>Wed, 05 Sep 2018 19:17:22 +0000</pubDate>
<dc:creator><![CDATA[J. Dorilleau]]></dc:creator>
<category><![CDATA[Géographie]]></category>
<category><![CDATA[Terminale ES]]></category>
<category><![CDATA[cartes]]></category>
<category><![CDATA[Géo]]></category>
<category><![CDATA[monde]]></category>
<category><![CDATA[Terminale]]></category>
<category><![CDATA[thème introductif]]></category>
<guid isPermaLink="false">http://histoirencours.fr/blog/?p=4191</guid>
<description><![CDATA[Premier chapitre de Géographie de l&#8217;année en Terminale ES : Des cartes pour comprendre le monde. Après avoir observé ce qu&#8217;est une carte et analysé sa subjectivité, le chapitre nous amène à étudier le monde selon 4 grilles de lecture &#8230; <a href="http://histoirencours.fr/blog/?p=4191">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
<wfw:commentRss>http://histoirencours.fr/blog/?feed=rss2&#038;p=4191</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>Mutation au lycée</title>
<link>http://histoirencours.fr/blog/?p=4174</link>
<comments>http://histoirencours.fr/blog/?p=4174#respond</comments>
<pubDate>Tue, 07 Aug 2018 09:49:56 +0000</pubDate>
<dc:creator><![CDATA[J. Dorilleau]]></dc:creator>
<category><![CDATA[Uncategorized]]></category>
<guid isPermaLink="false">http://histoirencours.fr/blog/?p=4174</guid>
<description><![CDATA[En juin 2018, après 11 ans au collège de Signy-l&#8217;Abbaye, j&#8217;ai obtenu une mutation au lycée Verlaine de Rethel. En conséquence, à partir de maintenant, je ne mettrai plus à jour, ou presque, tout ce qui concerne le collège. Je &#8230; <a href="http://histoirencours.fr/blog/?p=4174">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
<wfw:commentRss>http://histoirencours.fr/blog/?feed=rss2&#038;p=4174</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>3H6 : Françaises et Français dans une République repensée</title>
<link>http://histoirencours.fr/blog/?p=4016</link>
<comments>http://histoirencours.fr/blog/?p=4016#comments</comments>
<pubDate>Tue, 19 Jun 2018 14:33:12 +0000</pubDate>
<dc:creator><![CDATA[J. Dorilleau]]></dc:creator>
<category><![CDATA[Brevet]]></category>
<category><![CDATA[Histoire]]></category>
<category><![CDATA[Troisième]]></category>
<category><![CDATA[1944]]></category>
<category><![CDATA[1945]]></category>
<category><![CDATA[3ème]]></category>
<category><![CDATA[collège]]></category>
<category><![CDATA[Français]]></category>
<category><![CDATA[Françaises]]></category>
<category><![CDATA[France]]></category>
<category><![CDATA[Vème République]]></category>
<guid isPermaLink="false">http://histoirencours.fr/blog/?p=4016</guid>
<description><![CDATA[Un dernier chapitre de l&#8217;année qui regroupe les 3 éléments du programme sur la France depuis 1944. Réalisé rapidement en classe, il s&#8217;appuie beaucoup sur les documents du manuel Hâtier. &#160;]]></description>
<wfw:commentRss>http://histoirencours.fr/blog/?feed=rss2&#038;p=4016</wfw:commentRss>
<slash:comments>2</slash:comments>
</item>
<item>
<title>3H5 : Le monde depuis 1945</title>
<link>http://histoirencours.fr/blog/?p=4000</link>
<comments>http://histoirencours.fr/blog/?p=4000#comments</comments>
<pubDate>Sun, 03 Jun 2018 13:10:00 +0000</pubDate>
<dc:creator><![CDATA[J. Dorilleau]]></dc:creator>
<category><![CDATA[Histoire]]></category>
<category><![CDATA[Troisième]]></category>
<category><![CDATA[3ème]]></category>
<category><![CDATA[Berlin]]></category>
<category><![CDATA[collège]]></category>
<category><![CDATA[guerre froide]]></category>
<category><![CDATA[monde 1945]]></category>
<category><![CDATA[programme 2016]]></category>
<guid isPermaLink="false">http://histoirencours.fr/blog/?p=4000</guid>
<description><![CDATA[J&#8217;ai fait le choix de regrouper la 2ème partie du programme en un seul gros chapitre sur le monde depuis 1945.&#160; &#160; &#160; &#160; La longue 1ère partie est consacrée au monde bipolaire au temps de la guerre froide. La&#160;2ème &#8230; <a href="http://histoirencours.fr/blog/?p=4000">Continuer la lecture <span class="meta-nav">&#8594;</span></a>]]></description>
<wfw:commentRss>http://histoirencours.fr/blog/?feed=rss2&#038;p=4000</wfw:commentRss>
<slash:comments>5</slash:comments>
</item>
</channel>
</rss>
\ No newline at end of file
<rss version="0.91">
<channel>
<title>Italien-Facile.com</title>
<description>Nouveautés du site Italien-Facile.com</description>
<link>https://www.italien-facile.com</link>
<copyright>Italien-Facile.com</copyright>
<lastBuildDate>Mon, 20 May 2019 05:45:01 +0200</lastBuildDate>
<item>
<title>Italien-Facile.com / lunedì 20 maggio 2019</title>
<link>https://www.italien-facile.com</link>
<description>
Chi semina vento, raccoglie tempesta. / Qui sème le vent, récolte la tempête.
</description>
<pubDate>Mon, 20 May 2019 05:45:01 AM +0200</pubDate>
</item>
<item>
<title>
Nouveau test (mini top) de chilla : Anche se (même si) (*)
</title>
<link>
https://www.italien-facile.com/cgi2/myexam/voir2.php?id=121507
</link>
<description>
ANCHE SE... Anche se + congiuntivo = azione non reale. Anche se volessi spiegarglielo, non sono certo che lui mi capirebbe. Même si je voulais le lui expliquer, je ne serais pas certain qu'il me comprendrait. Anche se + indicativo = azione reale, avvenuta o sicuri che avverrà. Sono a...
</description>
<pubDate>Sun, 28 Apr 2019 11:48:51 AM +0200</pubDate>
</item>
<item>
<title>
Nouveau test (TOP) de idioma123 : La paronomase - Une figure de style (***)
</title>
<link>
https://www.italien-facile.com/cgi2/myexam/voir2.php?id=121465
</link>
<description>
PARONOMASIA La paronomase est une figure rhétorique qui consiste à approcher deux mots de même son ou d'un son similaire, mais de signification différente. Souvent, le but recherché est de mettre en évidence l'opposition de sens. Par exemple : “dalle...
</description>
<pubDate>Sat, 20 Apr 2019 06:56:04 PM +0200</pubDate>
</item>
<item>
<title>Nouveau test de chilla : Un grand peintre (**)</title>
<link>
https://www.italien-facile.com/cgi2/myexam/voir2.php?id=121422
</link>
<description>
Petit test d'observation et de culture sur un tableau de Pierre-Auguste Renoir 1)A quale stile artistico apparteneva Pierre-Auguste Renoir? ___2)Un amico editore lo introdusse tra le ricche famiglie dell'alta borghesia, come si chiamava? ___3)Ciò gli permise di divent...
</description>
<pubDate>Mon, 15 Apr 2019 11:35:52 AM +0200</pubDate>
</item>
<item>
<title>
Nouveau test (TOP) de idioma123 : Conjugaison des verbes comme “PIACERE” (*)
</title>
<link>
https://www.italien-facile.com/cgi2/myexam/voir2.php?id=121364
</link>
<description>
Bonjour ! Conjugaison des verbes comme “PIACERE” En italien, le verbe « PIACERE » se conjugue avec un pronom indirect. Dans la phrase construite avec le verbe ‘piacere', le sujet est la personne (ou la chose) qui plaît. Voici un exemple : Mi piace la musica (J'...
</description>
<pubDate>Thu, 11 Apr 2019 02:36:42 PM +0200</pubDate>
</item>
<item>
<title>Nouveau test de chilla : Quel champion ! (***)</title>
<link>
https://www.italien-facile.com/cgi2/myexam/voir2.php?id=121377
</link>
<description>
Quel champion ! En 1896, aux Jeux Olympiques d'Athènes, le Grec Spyridon Louis fut le premier à franchir la ligne d'arrivée du marathon, après un peu moins de trois heures de course. À la suite de cette prestigieuse victoire, l'athlète reçut beauco...
</description>
<pubDate>Sat, 06 Apr 2019 04:53:45 PM +0200</pubDate>
</item>
<item>
<title>
Nouveau test (TOP) de idioma123 : Pluriel des noms composés (**)
</title>
<link>
https://www.italien-facile.com/cgi2/myexam/voir2.php?id=121361
</link>
<description>
Benvenuti !Le pluriel des noms composésUn nom composé est un nom commun formé à partir de 2 mots ou plus.Le mot cavalcavia (viaduc), par exemple, est composé de cavalca + via. C'est-à-dire du verbe CAVALCARE (chevaucher) + le nom via (voie). En ce qui con...
</description>
<pubDate>Wed, 03 Apr 2019 09:46:44 AM +0200</pubDate>
</item>
<item>
<title>
Nouveau test (TOP) de fiofio1 : Mise en évidence de certains mots (**)
</title>
<link>
https://www.italien-facile.com/cgi2/myexam/voir2.php?id=121304
</link>
<description>
1/ I propri progressi l'incorraggiano. --> Ses progrès l'encouragent. On peut aussi dire, si l'on veut insister sur le mot
</description>
<pubDate>Fri, 29 Mar 2019 12:51:00 PM +0200</pubDate>
</item>
<item>
<title>
Nouveau test (mini top) de chilla : Verbes d'action II (**)
</title>
<link>
https://www.italien-facile.com/cgi2/myexam/voir2.php?id=121261
</link>
<description>
... RESPIRARE Respirare a pieni polmoni Respirer profondément SALIRE Aiutare a salire le scale Aider à monter les escaliers verbe défectif SALTARE Saltare di gioia Sauter de joie SCENDERE Scendere le scale con calma Descendre les escaliers calmement SCRIVERE Scrivere una be...
</description>
<pubDate>Tue, 26 Mar 2019 06:34:16 PM +0200</pubDate>
</item>
<item>
<title>Nouveau test de lavidaoo : Passato prossimo (*)</title>
<link>
https://www.italien-facile.com/cgi2/myexam/voir2.php?id=121259
</link>
<description>
Compléter les phrases en conjuguant le verbe, entre parenthèses, au passé composé en italien. 1. Chi (bussare) ______ alla porta? 2. Stanotte, non (potere - io) ______ dormire. 3. Voi (viaggiare) ______ in treno? 4. (Tu - preparare) ______ già...
</description>
<pubDate>Sat, 23 Mar 2019 10:21:13 AM +0200</pubDate>
</item>
<item>
<title>
Nouveau test de chilla : Le naufragé - Il naufrago (**)
</title>
<link>
https://www.italien-facile.com/cgi2/myexam/voir2.php?id=121317
</link>
<description>
Si vous voulez rajouter une difficulté de plus à l'exercice de correction, essayez de le réaliser sans consulter la traduction ci-dessous. L e n a u f r a g é En 1955, Gabriel García Márquez, qui commença sa carrière en tant que journaliste,...
</description>
<pubDate>Thu, 21 Mar 2019 10:18:23 AM +0200</pubDate>
</item>
</channel>
</rss>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>L'etudiant</title>
<link>https://www.letudiant.fr/rss.html</link>
<description></description>
<pubDate>Fri, 31 May 2019 17:07:49 +0200</pubDate>
<managingEditor>contact@letudiant.fr</managingEditor>
<language>fr</language>
<item>
<title><![CDATA[Bac 2019 : l'appel à la grève de la surveillance ne changera rien pour vous]]></title>
<link>https://www.letudiant.fr/bac/bac-2019-l-appel-a-la-greve-de-la-surveillance-ne-changera-rien-pour-vous.html</link>
<description><![CDATA[Alors que plusieurs syndicats ont appelé à une grève de la surveillance lors de la première journée du bac 2019, ils se sont voulus rassurants : non, les épreuves ne seront pas annulées. Le ministre de l'Education nationale confirme. On vous explique pourquoi.]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/bac/bac-2019-l-appel-a-la-greve-de-la-surveillance-ne-changera-rien-pour-vous.html</guid>
<pubDate>Fri, 31 May 2019 17:07:49 +0200</pubDate>
</item>
<item>
<title><![CDATA[Bac 2019 : découvrez les sujets qui sont tombés à Washington]]></title>
<link>https://www.letudiant.fr/bac/revisions-bac/article/bac-2019-les-sujets-tombes-a-washington.html</link>
<description><![CDATA[Les élèves de terminale du lycée français de Washington ont terminé leurs épreuves du bac. Comme chaque année, leurs sujets sont un bon indicateur pour deviner ce qui peut potentiellement tomber en métropole. Ils sont, de plus, un excellent exercice pour vos révisions. Tour d'horizon.]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/bac/revisions-bac/article/bac-2019-les-sujets-tombes-a-washington.html</guid>
<pubDate>Fri, 31 May 2019 16:41:12 +0200</pubDate>
</item>
<item>
<title><![CDATA[Bac 2019 : découvrez les sujets qui sont tombés au Liban]]></title>
<link>https://www.letudiant.fr/bac/revisions-bac/article/bac-2019-liban-les-sujets-du-bac.html</link>
<description><![CDATA[Les élèves des lycées français du Liban passent leurs épreuves du bac. Même si les sujets ne seront pas les mêmes en métropole, ceux tombés à l'étranger sont, chaque année, un moyen efficace de vous entraîner dans les conditions réelles de l'épreuve.]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/bac/revisions-bac/article/bac-2019-liban-les-sujets-du-bac.html</guid>
<pubDate>Fri, 31 May 2019 15:51:13 +0200</pubDate>
</item>
<item>
<title><![CDATA[Bac 2019 : les épreuves anticipées de sciences à Washington (séries L et ES)]]></title>
<link>https://www.letudiant.fr/bac/corriges-du-bac/article/bac-2019-les-epreuves-anticipees-de-sciences-a-washington-series-l-et-es.html</link>
<description><![CDATA[Sur quels sujets de sciences ont planché les candidats de première au bac 2019 à Washington ? L'Etudiant vous dévoile les épreuves. De quoi vous aider à vous entraîner pour le jour J !]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/bac/corriges-du-bac/article/bac-2019-les-epreuves-anticipees-de-sciences-a-washington-series-l-et-es.html</guid>
<pubDate>Fri, 31 May 2019 15:28:08 +0200</pubDate>
</item>
<item>
<title><![CDATA[Sciences de l'ingénieur : ces petits génies inventent les outils de demain]]></title>
<link>https://www.letudiant.fr/lycee/ces-petits-genies-inventent-les-outils-de-demain.html</link>
<description><![CDATA[Ils sont lycéens en première ou terminale S ou STI2D et ont travaillé, toute l'année, sur un projet scientifique précis et innovant. Mardi 28 mai, ce projet les a menés tout droit à la finale nationale des Olympiades des sciences de l'ingénieur. Reportage.]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/lycee/ces-petits-genies-inventent-les-outils-de-demain.html</guid>
<pubDate>Fri, 31 May 2019 15:12:01 +0200</pubDate>
</item>
<item>
<title><![CDATA[Bac S 2019 : les sujets de SVT (obligatoire et spécialité) à Washington]]></title>
<link>https://www.letudiant.fr/bac/corriges-du-bac/article/bac-s-2019-les-sujets-et-les-corriges-de-svt-a-washington.html</link>
<description><![CDATA[Sur quels sujets de sciences de la vie et de la Terre ont planché les candidats au bac S 2019 à Washington ? L'Etudiant vous dévoile les épreuves. De quoi vous aider à vous entraîner pour le jour J !]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/bac/corriges-du-bac/article/bac-s-2019-les-sujets-et-les-corriges-de-svt-a-washington.html</guid>
<pubDate>Fri, 31 May 2019 15:00:00 +0200</pubDate>
</item>
<item>
<title><![CDATA[Bac 2019 : les sujets de LV1 italien (séries générales) au Liban]]></title>
<link>https://www.letudiant.fr/bac/corriges-du-bac/article/bac-2019-les-sujets-de-lv1-italien-series-generales-au-liban.html</link>
<description><![CDATA[Quels sujets de LV1 italien sont tombés au Liban pour le bac ? L’Etudiant vous dévoile les épreuves sur lesquelles ont planché les candidats au bac à l’étranger. De quoi vous aider à vous entraîner pour le jour J !]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/bac/corriges-du-bac/article/bac-2019-les-sujets-de-lv1-italien-series-generales-au-liban.html</guid>
<pubDate>Fri, 31 May 2019 12:18:13 +0200</pubDate>
</item>
<item>
<title><![CDATA[Bac 2019 : les sujets de LV1 espagnol (séries générales) au Liban]]></title>
<link>https://www.letudiant.fr/bac/corriges-du-bac/article/bac-2019-les-sujets-de-lv1-espgnol-series-generales-au-liban.html</link>
<description><![CDATA[Quels sujets de LV1 espagnol sont tombés au Liban pour le bac ? L’Etudiant vous dévoile les épreuves sur lesquelles ont planché les candidats au bac à l’étranger. De quoi vous aider à vous entraîner pour le jour J !]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/bac/corriges-du-bac/article/bac-2019-les-sujets-de-lv1-espgnol-series-generales-au-liban.html</guid>
<pubDate>Fri, 31 May 2019 12:07:01 +0200</pubDate>
</item>
<item>
<title><![CDATA[Bac 2019 : les sujets de LV1 arabe (séries générales) au Liban]]></title>
<link>https://www.letudiant.fr/bac/corriges-du-bac/article/bac-2019-les-sujets-de-lv1-arabe-series-generales-au-liban.html</link>
<description><![CDATA[Quels sujets de LV1 anglais sont tombés au Liban pour le bac ? L’Etudiant vous dévoile les épreuves sur lesquelles ont planché les candidats au bac à l’étranger. De quoi vous aider à vous entraîner pour le jour J !]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/bac/corriges-du-bac/article/bac-2019-les-sujets-de-lv1-arabe-series-generales-au-liban.html</guid>
<pubDate>Fri, 31 May 2019 12:03:23 +0200</pubDate>
</item>
<item>
<title><![CDATA[L'actu du sup : un cursus animation à l'ECV Nantes, Télécom ParisTech et les apprentis, l'ESITC Caen pour la "smart construction"]]></title>
<link>https://www.letudiant.fr/etudes/l-actu-du-sup-1-ecv-telecom-paristech-esitc.html</link>
<description><![CDATA[Chaque semaine, l'Etudiant met un coup de projecteur sur les nouveautés du supérieur. Au programme : l'ECV crée un cursus animation à Nantes, Télécom ParisTech s'ouvre à l'apprentissage, l'ESITC Caen forme aux bâtiments du futur.]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/etudes/l-actu-du-sup-1-ecv-telecom-paristech-esitc.html</guid>
<pubDate>Fri, 31 May 2019 12:00:00 +0200</pubDate>
</item>
<item>
<title><![CDATA[Bac 2019 : les sujets de LV1 anglais (séries générales) au Liban]]></title>
<link>https://www.letudiant.fr/bac/corriges-du-bac/article/bac-2019-les-sujets-de-lv1-anglais-series-generales-au-liban.html</link>
<description><![CDATA[Quels sujets de LV1 anglais sont tombés au Liban pour le bac ? L’Etudiant vous dévoile les épreuves sur lesquelles ont planché les candidats au bac à l’étranger. De quoi vous aider à vous entraîner pour le jour J !]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/bac/corriges-du-bac/article/bac-2019-les-sujets-de-lv1-anglais-series-generales-au-liban.html</guid>
<pubDate>Fri, 31 May 2019 11:48:46 +0200</pubDate>
</item>
<item>
<title><![CDATA[Bac 2019 : les sujets de LV1 allemand (séries générales) au Liban]]></title>
<link>https://www.letudiant.fr/bac/corriges-du-bac/article/bac-2019-les-sujets-de-lv1-allemand-au-liban.html</link>
<description><![CDATA[Quels sujets de LV1 allemand sont tombés au Liban pour le bac ? L’Etudiant vous dévoile les épreuves sur lesquelles ont planché les candidats au bac à l’étranger. De quoi vous aider à vous entraîner pour le jour J !]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/bac/corriges-du-bac/article/bac-2019-les-sujets-de-lv1-allemand-au-liban.html</guid>
<pubDate>Fri, 31 May 2019 11:39:09 +0200</pubDate>
</item>
<item>
<title><![CDATA[Bac S 2019 : les sujets de SVT au Liban]]></title>
<link>https://www.letudiant.fr/bac/corriges-du-bac/article/bac-s-2019-les-sujets-de-svt-au-liban-obligatoire-et-specialite-1.html</link>
<description><![CDATA[Quels sujets de sciences de la vie et de la Terre sont tombés au Liban pour le bac S ? L’Etudiant vous dévoile les épreuves sur lesquelles ont planché les candidats au bac à l’étranger. De quoi vous aider à vous entraîner pour le jour J !]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/bac/corriges-du-bac/article/bac-s-2019-les-sujets-de-svt-au-liban-obligatoire-et-specialite-1.html</guid>
<pubDate>Fri, 31 May 2019 11:00:00 +0200</pubDate>
</item>
<item>
<title><![CDATA[Bac 2019 : les épreuves anticipées de sciences au Liban (séries L et ES )]]></title>
<link>https://www.letudiant.fr/bac/corriges-du-bac/article/bac-2019-les-epreuves-anticipees-de-sciences-au-liban-series-l-et-es.html</link>
<description><![CDATA[Quels sujets de sciences sont tombés au Liban pour les premières L et ES ? L’Etudiant vous dévoile les épreuves sur lesquelles ont planché les candidats au bac à l’étranger. De quoi vous aider à vous entraîner pour le jour J !]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/bac/corriges-du-bac/article/bac-2019-les-epreuves-anticipees-de-sciences-au-liban-series-l-et-es.html</guid>
<pubDate>Fri, 31 May 2019 11:00:00 +0200</pubDate>
</item>
<item>
<title><![CDATA[Comment je suis devenu gériatre]]></title>
<link>https://www.letudiant.fr/metiers/comment-je-suis-devenu-geriatre.html</link>
<description><![CDATA[Attiré très tôt par la médecine, Matthieu Piccoli a découvert, après six ans d’études, une discipline méconnue : la gériatrie. Depuis, il s'attache au quotidien à soigner et améliorer la qualité de vie des personnes âgées.]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/metiers/comment-je-suis-devenu-geriatre.html</guid>
<pubDate>Thu, 30 May 2019 00:00:00 +0200</pubDate>
</item>
<item>
<title><![CDATA[La Sports Management School entre sur le terrain du e-sport]]></title>
<link>https://www.letudiant.fr/etudes/ecoles-specialisees/la-sports-management-school-sur-le-terrain-du-e-sport.html</link>
<description><![CDATA[Trente-deux étudiants de la région Île-de-France se sont affrontés sur FIFA 19 samedi dernier lors de la finale de la SMS E-Sport Cup. Cette compétition de jeux vidéo se déroulait dans le stade mythique du Parc des Princes, à Paris, pour le plus grand plaisir des participants.]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/etudes/ecoles-specialisees/la-sports-management-school-sur-le-terrain-du-e-sport.html</guid>
<pubDate>Wed, 29 May 2019 19:48:22 +0200</pubDate>
</item>
<item>
<title><![CDATA[Parcoursup : suivez l’évolution des candidats en phase d’admission]]></title>
<link>https://www.letudiant.fr/etudes/parcoursup/parcoursup-suivez-l-evolution-de-la-situation-des-candidats-en-phase-d-admission.html</link>
<description><![CDATA[INFOGRAPHIE. Même si le ministère de l’Enseignement supérieur rend difficile la comparaison entre la session 2018 et 2019, le constat est clair : deux semaines après l’ouverture de la phase d’admission, près de 185.000 candidats n’ont toujours pas reçu de proposition sur Parcoursup.]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/etudes/parcoursup/parcoursup-suivez-l-evolution-de-la-situation-des-candidats-en-phase-d-admission.html</guid>
<pubDate>Wed, 29 May 2019 16:15:41 +0200</pubDate>
</item>
<item>
<title><![CDATA[Écoles hôtelières : étudier à l’étranger vaut-il le coût ?]]></title>
<link>https://www.letudiant.fr/etudes/ecoles-specialisees/ecoles-hotelieres-etudier-a-l-etranger-vaut-il-le-cout.html</link>
<description><![CDATA[Si les écoles hôtelières françaises ont très bonne presse, certains d’entre vous font le choix de faire leurs études à l’étranger. Un pari qui peut se révéler gagnant tant sur le plan professionnel que personnel.]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/etudes/ecoles-specialisees/ecoles-hotelieres-etudier-a-l-etranger-vaut-il-le-cout.html</guid>
<pubDate>Wed, 29 May 2019 15:58:24 +0200</pubDate>
</item>
<item>
<title><![CDATA[Bac ES 2019 : les sujets de sciences économiques et sociales (obligatoire et spécialité) au Liban]]></title>
<link>https://www.letudiant.fr/bac/corriges-du-bac/article/bac-es-2019-les-sujets-de-sciences-economiques-et-sociales-obligatoire-et-specialite-au-liban.html</link>
<description><![CDATA[Quels sujets de sciences économiques et sociales sont tombés au Liban pour le bac ES ? L’Etudiant vous dévoile les épreuves sur lesquelles ont planché les candidats au bac à l’étranger. De quoi vous aider à vous entraîner pour le jour J !]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/bac/corriges-du-bac/article/bac-es-2019-les-sujets-de-sciences-economiques-et-sociales-obligatoire-et-specialite-au-liban.html</guid>
<pubDate>Wed, 29 May 2019 14:05:29 +0200</pubDate>
</item>
<item>
<title><![CDATA[Bac S 2019 : les sujets de physique-chimie au Liban (obligatoire et spécialité)]]></title>
<link>https://www.letudiant.fr/bac/corriges-du-bac/article/bac-s-2019-les-sujets-de-physique-chimie-au-liban-obligatoire-et-specialite.html</link>
<description><![CDATA[Quels sujets de physique-chimie sont tombés au Liban pour le bac S ? L’Etudiant vous dévoile les épreuves sur lesquelles ont planché les candidats au bac à l’étranger. De quoi vous aider à vous entraîner pour le jour J !]]></description>
<guid isPermaLink="false">https://www.letudiant.fr/bac/corriges-du-bac/article/bac-s-2019-les-sujets-de-physique-chimie-au-liban-obligatoire-et-specialite.html</guid>
<pubDate>Wed, 29 May 2019 13:00:00 +0200</pubDate>
</item>
</channel>
</rss>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
<channel>
<title>La p@sserelle -Histoire Géographie-</title>
<atom:link href="https://lewebpedagogique.com/lapasserelle/feed/" rel="self" type="application/rss+xml" />
<link>https://lewebpedagogique.com/lapasserelle</link>
<description>Courte échelle et coup de pouce pour le Brevet</description>
<lastBuildDate>Fri, 17 May 2019 05:51:55 +0000</lastBuildDate>
<language>fr-FR</language>
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<generator>https://wordpress.org/?v=4.9.8</generator>
<item>
<title>6ème H6 &#8211; L&#8217;Empire romain</title>
<link>https://lewebpedagogique.com/lapasserelle/2019/05/17/6eme-h6-lempire-romain/</link>
<comments>https://lewebpedagogique.com/lapasserelle/2019/05/17/6eme-h6-lempire-romain/#respond</comments>
<pubDate>Fri, 17 May 2019 04:06:14 +0000</pubDate>
<dc:creator><![CDATA[Emmanuel Grange]]></dc:creator>
<category><![CDATA[6ème]]></category>
<category><![CDATA[Dans le cartable…]]></category>
<category><![CDATA[Histoire]]></category>
<category><![CDATA[Augute]]></category>
<category><![CDATA[Empire]]></category>
<category><![CDATA[Lugdunum]]></category>
<category><![CDATA[romanisation]]></category>
<category><![CDATA[Rome]]></category>
<guid isPermaLink="false">http://lewebpedagogique.com/lapasserelle/?p=75997</guid>
<description><![CDATA[<p>OBJECTIF 1 : Qui est Octave Auguste ? VOCABULAIRE : empire, imperator, pouvoir absolu, &#160; La série télévisée Rome raconte comment la république romaine a été remplacée au profit d&#8217;un empire. OBJECTIF 2 : Comment maintenir la paix dans l&#8217;empire romain ? Vocabulaire : paix romaine, limes, légionnaires Octave Auguste apporte la paix romaine dans</p>
<p>The post <a rel="nofollow" href="https://lewebpedagogique.com/lapasserelle/2019/05/17/6eme-h6-lempire-romain/">6ème H6 &#8211; L&rsquo;Empire romain</a> appeared first on <a rel="nofollow" href="https://lewebpedagogique.com/lapasserelle">La p@sserelle -Histoire Géographie-</a>.</p>
]]></description>
<wfw:commentRss>https://lewebpedagogique.com/lapasserelle/2019/05/17/6eme-h6-lempire-romain/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>EMC/EMI 4ème &#8211; Le procès Merah</title>
<link>https://lewebpedagogique.com/lapasserelle/2019/05/05/emc-emi-4eme-le-proces-merah-en-questions/</link>
<comments>https://lewebpedagogique.com/lapasserelle/2019/05/05/emc-emi-4eme-le-proces-merah-en-questions/#respond</comments>
<pubDate>Sun, 05 May 2019 14:10:24 +0000</pubDate>
<dc:creator><![CDATA[Emmanuel Grange]]></dc:creator>
<category><![CDATA[EMC 4ème]]></category>
<category><![CDATA[justice]]></category>
<category><![CDATA[radicalisation]]></category>
<category><![CDATA[terrorisme]]></category>
<guid isPermaLink="false">http://lewebpedagogique.com/lapasserelle/?p=77199</guid>
<description><![CDATA[<p>Octobre 2017 : c&#8217;est au palais de justice de Paris que s&#8217;ouvre le premier grand procès terroriste suivant la vague d&#8217;attentats menés en France au nom du djihad armé. Il s&#8217;agit alors de juger pour complicité d&#8217;assassinats et association de malfaiteurs terroriste Fettah Malki et Abdelkader Merah, frère de Mohammed Merah l&#8217;auteur des attentats de</p>
<p>The post <a rel="nofollow" href="https://lewebpedagogique.com/lapasserelle/2019/05/05/emc-emi-4eme-le-proces-merah-en-questions/">EMC/EMI 4ème &#8211; Le procès Merah</a> appeared first on <a rel="nofollow" href="https://lewebpedagogique.com/lapasserelle">La p@sserelle -Histoire Géographie-</a>.</p>
]]></description>
<wfw:commentRss>https://lewebpedagogique.com/lapasserelle/2019/05/05/emc-emi-4eme-le-proces-merah-en-questions/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>3ème H5 &#8211; Le monde depuis 1945</title>
<link>https://lewebpedagogique.com/lapasserelle/2019/04/27/3eme-h5-monde-1945/</link>
<comments>https://lewebpedagogique.com/lapasserelle/2019/04/27/3eme-h5-monde-1945/#comments</comments>
<pubDate>Sat, 27 Apr 2019 05:30:16 +0000</pubDate>
<dc:creator><![CDATA[Emmanuel Grange]]></dc:creator>
<category><![CDATA[3ème]]></category>
<category><![CDATA[Dans le cartable…]]></category>
<category><![CDATA[Histoire]]></category>
<category><![CDATA[11 septembre 2001]]></category>
<category><![CDATA[décolonisation]]></category>
<category><![CDATA[guerre froide]]></category>
<category><![CDATA[monde depuis 1989]]></category>
<category><![CDATA[Union européenne]]></category>
<guid isPermaLink="false">http://lewebpedagogique.com/lapasserelle/?p=76563</guid>
<description><![CDATA[<p>1. Avec la guerre froide (1947-1989), le monde est coupé en deux Vivre dans un monde en paix, la mission de l&#8217;ONU L&#8217;ONU est fondée le 26 juin 1945 à San Francisco. Les 51 pays fondateurs souhaitent installer une paix durable et la sécurité collective dans le monde. Mais les tensions entre les Etats-Unis et</p>
<p>The post <a rel="nofollow" href="https://lewebpedagogique.com/lapasserelle/2019/04/27/3eme-h5-monde-1945/">3ème H5 &#8211; Le monde depuis 1945</a> appeared first on <a rel="nofollow" href="https://lewebpedagogique.com/lapasserelle">La p@sserelle -Histoire Géographie-</a>.</p>
]]></description>
<wfw:commentRss>https://lewebpedagogique.com/lapasserelle/2019/04/27/3eme-h5-monde-1945/feed/</wfw:commentRss>
<slash:comments>1</slash:comments>
</item>
<item>
<title>6ème H5 &#8211; La naissance du monothéisme dans un monde polythéiste</title>
<link>https://lewebpedagogique.com/lapasserelle/2019/04/27/6eme-h5-la-naissance-du-monotheisme-dans-un-monde-polytheiste/</link>
<comments>https://lewebpedagogique.com/lapasserelle/2019/04/27/6eme-h5-la-naissance-du-monotheisme-dans-un-monde-polytheiste/#comments</comments>
<pubDate>Sat, 27 Apr 2019 05:02:33 +0000</pubDate>
<dc:creator><![CDATA[Emmanuel Grange]]></dc:creator>
<category><![CDATA[6ème]]></category>
<category><![CDATA[Dans le cartable…]]></category>
<category><![CDATA[Histoire]]></category>
<category><![CDATA[Archéologie]]></category>
<category><![CDATA[Hébreux]]></category>
<category><![CDATA[judaïsme]]></category>
<category><![CDATA[religion]]></category>
<guid isPermaLink="false">http://lewebpedagogique.com/lapasserelle/?p=75996</guid>
<description><![CDATA[<p>Les Hébreux sont un peuple du Proche Orient. Ce sont les premiers à croire en un seul Dieu (ils sont monothéistes) alors que les peuples de Mésopotamie croient en plusieurs dieux (ils sont polythéistes). Mais pourquoi l&#8217;histoire du peuple hébreu a t-elle tant marqué l&#8217;Histoire ? &#160; OBJECTIF 1 : J&#8217;étudie les débuts du judaïsme</p>
<p>The post <a rel="nofollow" href="https://lewebpedagogique.com/lapasserelle/2019/04/27/6eme-h5-la-naissance-du-monotheisme-dans-un-monde-polytheiste/">6ème H5 &#8211; La naissance du monothéisme dans un monde polythéiste</a> appeared first on <a rel="nofollow" href="https://lewebpedagogique.com/lapasserelle">La p@sserelle -Histoire Géographie-</a>.</p>
]]></description>
<wfw:commentRss>https://lewebpedagogique.com/lapasserelle/2019/04/27/6eme-h5-la-naissance-du-monotheisme-dans-un-monde-polytheiste/feed/</wfw:commentRss>
<slash:comments>2</slash:comments>
</item>
</channel>
</rss>
\ No newline at end of file
? = RSS pas applicable ?
https://www.francaisfacile.com/ -> https://www.francaisfacile.com/rss.xml
https://www.anglaisfacile.com/ -> https://www.anglaisfacile.com/rss.xml
https://www.espagnolfacile.com/ -> https://www.espagnolfacile.com/rss.xml
https://www.mathematiquesfaciles.com/ -> https://www.mathematiquesfaciles.com/rss.xml
https://www.allemandfacile.com/ -> https://www.allemandfacile.com/rss.xml
https://www.editions-larousse.fr/ -> ?
http://daniele-corneglio.fr -> X
http://histoirencours.fr/blog/ -> http://histoirencours.fr/blog/?feed=rss2
http://bescherelle.com/ -> ?
https://translate.google.com/?hl=fr -> ?
http://www.reverso.net/text_translation.aspx?lang=FR -> ?
https://www.geogebra.org/ -> ?
https://scratch.mit.edu/ -> ?
http://www.le-dictionnaire.com/ -> ?
https://www.wikipedia.org/ -> ?
https://www.italien-facile.com -> https://www.italien-facile.com/rss.xml
http://classic-intro.net/introductionalamusique.html -> X
http://www.vivelessvt.com/ -> http://www.vivelessvt.com/feed/
https://physique-chimie-college.fr/ -> https://physique-chimie-college.fr/feed/
http://www.ladictee.fr/ -> X
https://dictee.orthodidacte.com/Index.html -> ?
http://hgeo-college.blogspot.com/ -> http://hgeo-college.blogspot.com/feeds/posts/default?alt=rss
https://www.monanneeaucollege.com -> ?
http://www.bemberg-educatif.org/index.html#home -> ?
Cyberbase -> ?
https://technologieaucollege27.blogspot.com/ -> https://technologieaucollege27.blogspot.com/feeds/posts/default?alt=rss
https://www.maths-et-tiques.fr/index.php -> ?
https://www.mathovore.fr/ -> ?
https://www.logicieleducatif.fr/ -> ?
https://www.duolingo.com/ -> ?
https://lewebpedagogique.com/lapasserelle/ -> https://lewebpedagogique.com/lapasserelle/feed/
http://soutien67.free.fr -> to crawl
http://www.physagreg.fr/index.php -> to crawl
https://www.superprof.fr/ressources/physique-chimie/ -> to crawl
http://www.kizclub.com/index.html -> ?
http://www.professeurphifix.net/index.html -> ?
http://orthonet.sdv.fr/ -> ?
https://www.bnf.fr - > https://www.bnf.fr/fr/actualites/rss
https://junior.science-et-vie.com/-> to crawl
https://manuel.sesamath.net/-> ?
https://www.reviser-brevet.fr/ -> to crawl
https://www.jerevise.fr/ -> to crawl
https://www.codecademy.com/ -> ?
http://www.livrespourtous.com/ -> ?
http://hykse.free.fr/ -> ?
http://www.biologieenflash.net/ -> to crawl
http://44.svt.free.fr/ -> to crawl
http://www.geographix.fr/ -> ?
http://babelnet.sbg.ac.at/ -> ?
https://www.foad-spirit.net/ -> ?
https://www.letudiant.fr -> https://www.letudiant.fr/corporate/article/flux-rss.html
http://k.music.free.fr/ -> to crawl
https://nosdevoirs.fr/ -> to crawl
http://www.pccl.fr/ -> to crawl
http://sciencesdelavie.chez.com/sommaire.htm -> ?
http://therese.eveilleau.pagesperso-orange.fr/ -> to crawl
http://chatbleucom.free.fr/ -> ?
<rss version="0.91">
<channel>
<title>MathematiquesFaciles.com</title>
<description>Nouveautés du site MathematiquesFaciles.com</description>
<link>http://www.MathematiquesFaciles.com</link>
<copyright>MathematiquesFaciles.com</copyright>
<lastBuildDate>Mon, 20 May 2019 05:45:01 +0200</lastBuildDate>
<item>
<title>Nouveau test de valentin375 : Puissances (**)</title>
<link>
https://www.mathematiquesfaciles.com/puissances_2_121297.htm
</link>
<description>
1)5² = ___2)10^1= ___3)45²= ___4)1^1= ___5)1^0= ___6)10^10= ___7)5^5= ___8)0^1= ___9)0,1^1= ___10)10^(-3)= ___1)5² = ___2)10^1= ___3)45²= ___4)1^1= ___5)1^0= ___6)10^10= ___7)5^5= ___8)0^1= ___9)0,1^1= ___10)10^(-...
</description>
<pubDate>Thu, 04 Apr 2019 20:55:25 +0200</pubDate>
</item>
<item>
<title>
Nouveau test de lzne : Puissance 2 (ou carré) (**)
</title>
<link>
https://www.mathematiquesfaciles.com/puissance-2-ou-carre_2_121281.htm
</link>
<description>
La puissance 2, généralement appelé carré, est le fait de multiplier un nombre par lui même : 5² = 5 x 5 = 25 Attention au carré des nombres inférieurs à 0; il faudra penser à bien placer la virgule : 0,2² = 0,2 x 0,2 = 0,04 ...
</description>
<pubDate>Fri, 22 Mar 2019 20:28:26 +0200</pubDate>
</item>
<item>
<title>
Nouveau test de benyomodutoit : Module et argument (*)
</title>
<link>
https://www.mathematiquesfaciles.com/module-et-argument_2_121232.htm
</link>
<description>
RAPPELS (Module et Argument d'un Nombre Complexe) 1-MODULE Dans le plan complexe rapporté au repère (O;u,v), on désigne par M le nombre complexe d'affixe z. On note M(z) le point image du nombre complexe z dans le répère. On note rac(a) la racine carrée d...
</description>
<pubDate>Tue, 12 Mar 2019 21:04:12 +0200</pubDate>
</item>
<item>
<title>Nouveau test de miruna : Divisible ou non? (**)</title>
<link>
https://www.mathematiquesfaciles.com/divisible-ou-non_2_120863.htm
</link>
<description>
Un nombre est divisible quand on peut le diviser par un nombre qui donne un résultat entier : Est-ce que 125 est divisible par 3 ? Non, car 125 n'est pas dans la table de 3. Les méthodes pour le calculer : -par 3 ou par 9 : par exemple, pour 349, 3+4+9= 16. 16 n'est pas dans la tabl...
</description>
<pubDate>Tue, 12 Feb 2019 12:54:59 +0200</pubDate>
</item>
<item>
<title>
Nouveau test de omar2005 : Pourcentages simples (*)
</title>
<link>
https://www.mathematiquesfaciles.com/pourcentages-simples_2_120939.htm
</link>
<description>
Bonjour, vous allez apprendre comment effectuer un calcul rapide sur les pourcentages. On a souvent besoin de ces calculs dans la vie de tous les jours pour compter rapidement, par exemple pour calculer une réduction sur un prix en cas de soldes.Exemple : -20 % sur le prix d'un tél...
</description>
<pubDate>Sat, 09 Feb 2019 10:05:51 +0200</pubDate>
</item>
<item>
<title>
Nouveau test de yoongi : Nombres relatifs (4ème) (*)
</title>
<link>
https://www.mathematiquesfaciles.com/nombres-relatifs-4eme_2_120646.htm
</link>
<description>
1. (+5)+(-6)=______ 2. (-5)+(-2)=______ 3. (-3)-(+5) ______ 4. (+2)-(+9) ______ 5. (+8)+(-3) ______ 6. (+10)+(-20) ______ 7. (+42)+(+23) ______ 8. (-25)+(-4) ______ 9. (+2)+(-6) ______ 10. (+45)-(+46) ______
</description>
<pubDate>Wed, 23 Jan 2019 12:05:33 +0200</pubDate>
</item>
<item>
<title>Bonne année 2019 !</title>
<link>
https://www.mathematiquesfaciles.com/voeux-fin-annee.php
</link>
<description>
Nous vous souhaitons de passer une merveilleuse année 2019!
</description>
<pubDate>Tue, 01 Jan 2019 01:10:04 +0200</pubDate>
</item>
<item>
<title>
Nouveau test de leliottgaming : Les priorités opératoires (*)
</title>
<link>
https://www.mathematiquesfaciles.com/les-priorites-operatoires_2_120354.htm
</link>
<description>
Donnez la solution de ces calculs en prenant en compte les priorités opératoires. 7-(11-3)÷2 ______ 14+7×(13-10) ______ 2×(31-15÷3) ______ 17+5×3-(30÷6+25) ______ 5×4+2 ______ (8-2x3)(7+4x2) ______ 3...
</description>
<pubDate>Sat, 01 Dec 2018 09:58:27 +0200</pubDate>
</item>
<item>
<title>
Nouveau test de imaths8 : Inégalités triangulaires (*)
</title>
<link>
https://www.mathematiquesfaciles.com/inegalites-triangulaires_2_120320.htm
</link>
<description>
Ce test est sur les inégalités triangulaires, êtes vous prêts ? GO ! 1. Si AB = 7cm, AC = 3 cm, BC = 2cm, on peut construire ce triangle. (Répondre par V ou par F) ______ 2. Si AB = 7cm, AC = 8 cm, BC = 2cm, on peut construire ce triangle. (Répo...
</description>
<pubDate>Thu, 22 Nov 2018 19:42:56 +0200</pubDate>
</item>
<item>
<title>
Nouveau test de tintin06 : Nombres relatifs débutant (*)
</title>
<link>
https://www.mathematiquesfaciles.com/nombres-relatifs-debutant_2_119983.htm
</link>
<description>
Choisir parmi les propositions suivantes : | -25 | -15 | -8 | -5 | 0 | +3 | +4 | +6 | +14 | +16
</description>
<pubDate>Fri, 02 Nov 2018 09:51:06 +0200</pubDate>
</item>
</channel>
</rss>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
<channel>
<title>Cours gratuit de physique chimie pour le college</title>
<atom:link href="https://physique-chimie-college.fr/feed/" rel="self" type="application/rss+xml" />
<link>https://physique-chimie-college.fr</link>
<description>physique chimie college</description>
<lastBuildDate>Wed, 03 Oct 2018 06:46:52 +0000</lastBuildDate>
<language>fr-FR</language>
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<generator>https://wordpress.org/?v=4.9.10</generator>
<item>
<title>L’Allemagne est en train de construire son réacteur a fusion</title>
<link>https://physique-chimie-college.fr/2015/11/03/lallemagne-est-en-train-de-construire-son-reacteur-a-fusion-nucleaire/</link>
<comments>https://physique-chimie-college.fr/2015/11/03/lallemagne-est-en-train-de-construire-son-reacteur-a-fusion-nucleaire/#respond</comments>
<pubDate>Tue, 03 Nov 2015 08:31:19 +0000</pubDate>
<dc:creator><![CDATA[Frederic V]]></dc:creator>
<category><![CDATA[Fiches science]]></category>
<guid isPermaLink="false">https://physique-chimie-college.fr/?p=8905</guid>
<description><![CDATA[<p>L’Allemagne va peut-être révolutionner le monde de la production énergétique et son utilisation. Cette machine de 1,1 milliard de dollar est un réacteur a fusion nucléaire. Son fonctionnement repose sur des atomes d’hydrogènes que l&#8217;ont fait rentrer en collision, il en résulte une fabrication d’hélium et d’énergie. C&#8217;est sur ce principe que rayonne notre soleil<br /><a href="https://physique-chimie-college.fr/2015/11/03/lallemagne-est-en-train-de-construire-son-reacteur-a-fusion-nucleaire/" class="more">Lire la suite</a></p>
<p>Cet article <a rel="nofollow" href="https://physique-chimie-college.fr/2015/11/03/lallemagne-est-en-train-de-construire-son-reacteur-a-fusion-nucleaire/">L’Allemagne est en train de construire son réacteur a fusion</a> est apparu en premier sur <a rel="nofollow" href="https://physique-chimie-college.fr">Cours gratuit de physique chimie pour le college</a>.</p>
]]></description>
<content:encoded><![CDATA[<p>L’Allemagne va peut-être révolutionner le monde de la production énergétique et son utilisation. Cette machine de 1,1 milliard de dollar est un réacteur a fusion nucléaire.</p>
<p>Son fonctionnement repose sur des atomes d’hydrogènes que l&#8217;ont fait rentrer en collision, il en résulte une fabrication d’hélium et d’énergie. C&#8217;est sur ce principe que rayonne notre soleil depuis 4,5 milliards d&#8217;années, et l&#8217;on estime qu&#8217;il lui reste encore 4 milliards d&#8217;années.</p>
<p>L&#8217;avantage de la fusion à froid sur la fission, est sa propreté, puisque aucune matière radioactive comme l&#8217;uranium ou d&#8217;autre isotopes instables n&#8217;est requise.</p>
<p><iframe width="1170" height="658" src="https://www.youtube.com/embed/u-fbBRAxJNk?feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>Cet article <a rel="nofollow" href="https://physique-chimie-college.fr/2015/11/03/lallemagne-est-en-train-de-construire-son-reacteur-a-fusion-nucleaire/">L’Allemagne est en train de construire son réacteur a fusion</a> est apparu en premier sur <a rel="nofollow" href="https://physique-chimie-college.fr">Cours gratuit de physique chimie pour le college</a>.</p>
]]></content:encoded>
<wfw:commentRss>https://physique-chimie-college.fr/2015/11/03/lallemagne-est-en-train-de-construire-son-reacteur-a-fusion-nucleaire/feed/</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
</channel>
</rss>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">
<channel>
<title>Vive les SVT !</title>
<atom:link href="http://www.vivelessvt.com/feed/" rel="self" type="application/rss+xml"/>
<link>http://www.vivelessvt.com</link>
<description>
Les sciences de la vie et de la terre au collège et au lycée - Cours de SVT en ligne -
</description>
<lastBuildDate>Wed, 01 May 2019 08:42:32 +0000</lastBuildDate>
<language>fr-FR</language>
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<generator>https://wordpress.org/?v=5.1.1</generator>
<image>
<link>http://www.vivelessvt.com</link>
<url>http://www.vivelessvt.com/</url>
<title>Vive les SVT !</title>
</image>
<item>
<title>1er mai 2019 : le muguet</title>
<link>
http://www.vivelessvt.com/au-jour-le-jour/1er-mai-2019-le-muguet/
</link>
<comments>
http://www.vivelessvt.com/au-jour-le-jour/1er-mai-2019-le-muguet/#respond
</comments>
<pubDate>Wed, 01 May 2019 08:42:32 +0000</pubDate>
<dc:creator>
<![CDATA[ Julien de VivelesSVT.com ]]>
</dc:creator>
<category>
<![CDATA[ Au jour le jour ]]>
</category>
<guid isPermaLink="false">http://www.vivelessvt.com/?p=17751</guid>
<description>
<![CDATA[
Chronique radio sur le muguet LA FICHE SUR LE MUGUET Toutes les chroniques VivelesSVT.com sur Zénith FM
]]>
</description>
<content:encoded>
<![CDATA[
<p><center><a href="http://www.vivelessvt.com/wp-content/uploads/2014/05/muguet.jpg" rel='lytebox[1er-mai-2019-le-muguet]'><img src="http://www.vivelessvt.com/wp-content/uploads/2014/05/muguet.jpg" alt="muguet" width="600" height="400" class="aligncenter size-full wp-image-11499" srcset="http://www.vivelessvt.com/wp-content/uploads/2014/05/muguet.jpg 900w, http://www.vivelessvt.com/wp-content/uploads/2014/05/muguet-300x200.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /></a></p> <p></br></p> <h2>Chronique radio sur le muguet</h2> <p><center><iframe width="420" height="315" src="//www.youtube.com/embed/0SlS-tSK8T8" frameborder="0" allowfullscreen></iframe></center></p> <p><a href="http://www.vivelessvt.com/wp-content/uploads/2009/04/le-muguet.pdf" target="_blank" rel="noopener noreferrer">LA FICHE SUR LE MUGUET</a></p> <p><a href="http://www.vivelessvt.com/wp-content/uploads/2014/05/muguet-fiche-svt.jpg" rel='lytebox[1er-mai-2019-le-muguet]'><img src="http://www.vivelessvt.com/wp-content/uploads/2014/05/muguet-fiche-svt.jpg" alt="muguet-fiche-svt" width="447" height="619" class="aligncenter size-full wp-image-11498" srcset="http://www.vivelessvt.com/wp-content/uploads/2014/05/muguet-fiche-svt.jpg 447w, http://www.vivelessvt.com/wp-content/uploads/2014/05/muguet-fiche-svt-216x300.jpg 216w" sizes="(max-width: 447px) 100vw, 447px" /></a></p> <p>Toutes les chroniques <a href="http://www.vivelessvt.com/zenith-fm/" target="_blank" rel="noopener noreferrer">VivelesSVT.com sur Zénith FM</a></center></p>
]]>
</content:encoded>
<wfw:commentRss>
http://www.vivelessvt.com/au-jour-le-jour/1er-mai-2019-le-muguet/feed/
</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>La résistance aux antibiotiques</title>
<link>
http://www.vivelessvt.com/actu-sciences/la-resistance-aux-antibiotiques/
</link>
<comments>
http://www.vivelessvt.com/actu-sciences/la-resistance-aux-antibiotiques/#respond
</comments>
<pubDate>Wed, 27 Mar 2019 10:54:35 +0000</pubDate>
<dc:creator>
<![CDATA[ Julien de VivelesSVT.com ]]>
</dc:creator>
<category>
<![CDATA[ Actu-sciences ]]>
</category>
<guid isPermaLink="false">http://www.vivelessvt.com/?p=17718</guid>
<description>
<![CDATA[
Les antibiotiques ont permis de faire considérablement reculer la mortalité associée aux maladies infectieuses au cours du 20e siècle. Hélas, leur utilisation massive et répétée, que ce soit en ville ou à l&#8217;hôpital, a conduit à l’apparition de bactéries résistantes à ces médicaments. Qui plus est, les animaux d&#8217;élevage ingèrent au moins autant d&#8217;antibiotiques que [&#8230;]
]]>
</description>
<content:encoded>
<![CDATA[
<p>Les antibiotiques ont permis de faire considérablement reculer la mortalité associée aux maladies infectieuses au cours du 20e siècle. Hélas, leur utilisation massive et répétée, que ce soit en ville ou à l&rsquo;hôpital, a conduit à l’apparition de bactéries résistantes à ces médicaments. Qui plus est, les animaux d&rsquo;élevage ingèrent au moins autant d&rsquo;antibiotiques que les humains ! Résultat : la résistance bactérienne est devenue un phénomène global et préoccupant. Pour éviter le pire, la communauté internationale, alertée en 2015 par l&rsquo;OMS, se mobilise.</p> <p><a href="https://www.inserm.fr/information-en-sante/dossiers-information/resistance-antibiotiques" rel="noopener noreferrer" target="_blank">Dossier en ligne</a></p>
]]>
</content:encoded>
<wfw:commentRss>
http://www.vivelessvt.com/actu-sciences/la-resistance-aux-antibiotiques/feed/
</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>Une origine génétique de la migraine</title>
<link>
http://www.vivelessvt.com/actu-sciences/une-origine-genetique-de-la-migraine/
</link>
<comments>
http://www.vivelessvt.com/actu-sciences/une-origine-genetique-de-la-migraine/#respond
</comments>
<pubDate>Tue, 26 Feb 2019 20:29:43 +0000</pubDate>
<dc:creator>
<![CDATA[ Julien de VivelesSVT.com ]]>
</dc:creator>
<category>
<![CDATA[ Actu-sciences ]]>
</category>
<guid isPermaLink="false">http://www.vivelessvt.com/?p=17655</guid>
<description>
<![CDATA[
Des chercheurs ont découvert une mutation d’un gène qui provoque une hypersensibilité de certains circuits neuronaux responsable des douleurs migraineuses, et le mécanisme en jeu. De quoi envisager un traitement. Lire l&#8217;article en ligne ICI.
]]>
</description>
<content:encoded>
<![CDATA[
<p>Des chercheurs ont découvert une mutation d’un gène qui provoque une hypersensibilité de certains circuits neuronaux responsable des douleurs migraineuses, et le mécanisme en jeu. De quoi envisager un traitement. Lire <a href="https://www.pourlascience.fr/sd/medecine/une-origine-genetique-de-la-migraine-15446.php" rel="noopener" target="_blank">l&rsquo;article en ligne ICI.</a></p>
]]>
</content:encoded>
<wfw:commentRss>
http://www.vivelessvt.com/actu-sciences/une-origine-genetique-de-la-migraine/feed/
</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>Programme Scratch et SVT</title>
<link>
http://www.vivelessvt.com/au-jour-le-jour/programme-scratch/
</link>
<comments>
http://www.vivelessvt.com/au-jour-le-jour/programme-scratch/#respond
</comments>
<pubDate>Sun, 10 Feb 2019 09:24:23 +0000</pubDate>
<dc:creator>
<![CDATA[ Julien de VivelesSVT.com ]]>
</dc:creator>
<category>
<![CDATA[ Au jour le jour ]]>
</category>
<guid isPermaLink="false">http://www.vivelessvt.com/?p=17592</guid>
<description>
<![CDATA[
Bravo Arthur pour ce programme qui montre la spécificité des anticorps face aux antigènes. #SVT Télécharger le script Cours de SVT en ligne
]]>
</description>
<content:encoded>
<![CDATA[
<p>Bravo Arthur pour ce programme qui montre la spécificité des anticorps face aux antigènes. #SVT</p> <p>Télécharger <a href="http://www.vivelessvt.com/wp-content/uploads/2019/02/Scratch-SVT-2.zip" rel="noopener" target="_blank">le script</a></p> <p><a href="http://www.vivelessvt.com/wp-content/uploads/2019/02/ac-at.png" rel='lytebox[programme-scratch]'><img src="http://www.vivelessvt.com/wp-content/uploads/2019/02/ac-at.png" alt="programme scratch SVT anticorps antigène" width="659" height="407" class="aligncenter size-full wp-image-17593" /></a></p> <p></br></p> <p><a href="http://www.vivelessvt.com/college/risque-infectieux-et-protection-de-lorganisme-2/" rel="noopener" target="_blank">Cours de SVT en ligne</a></p>
]]>
</content:encoded>
<wfw:commentRss>
http://www.vivelessvt.com/au-jour-le-jour/programme-scratch/feed/
</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>
La quantité d’eau piégée par la subduction revue à la hausse
</title>
<link>
http://www.vivelessvt.com/actu-sciences/la-quantite-deau-piegee-par-la-subduction-revue-a-la-hausse/
</link>
<comments>
http://www.vivelessvt.com/actu-sciences/la-quantite-deau-piegee-par-la-subduction-revue-a-la-hausse/#respond
</comments>
<pubDate>Mon, 21 Jan 2019 13:56:28 +0000</pubDate>
<dc:creator>
<![CDATA[ Julien de VivelesSVT.com ]]>
</dc:creator>
<category>
<![CDATA[ Actu-sciences ]]>
</category>
<guid isPermaLink="false">http://www.vivelessvt.com/?p=17515</guid>
<description>
<![CDATA[
Le volume d’eau enfoui dans le manteau terrestre par la subduction des plaques tectoniques dans la zone des Mariannes serait quatre fois plus importante que ce que l’on pensait. (&#8230;) Chen Cai et ses collègues de l’université de Washington, à Saint Louis, aux États-Unis, ont estimé la quantité d’eau qui est emportée vers l’intérieur de [&#8230;]
]]>
</description>
<content:encoded>
<![CDATA[
<p>Le volume d’eau enfoui dans le manteau terrestre par la subduction des plaques tectoniques dans la zone des Mariannes serait quatre fois plus importante que ce que l’on pensait. (&#8230;) Chen Cai et ses collègues de l’université de Washington, à Saint Louis, aux États-Unis, ont estimé la quantité d’eau qui est emportée vers l’intérieur de la planète dans la zone de subduction de la fosse des Mariannes, où se rencontrent la plaque Pacifique et la plaque Philippines. Ils arrivent à la conclusion qu’elle est quatre fois plus importante que ce l’on pensait. Si ce résultat se confirmait, cela aurait des conséquences sur de nombreux phénomènes géologiques, comme du volcanisme. <a href="https://www.pourlascience.fr/sd/geosciences/la-quantite-deau-piegee-par-la-subduction-revue-a-la-hausse-15380.php" rel="noopener" target="_blank">Lire l&rsquo;article en ligne.</a></p>
]]>
</content:encoded>
<wfw:commentRss>
http://www.vivelessvt.com/actu-sciences/la-quantite-deau-piegee-par-la-subduction-revue-a-la-hausse/feed/
</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>Comment réduire le risque de DMLA ?</title>
<link>
http://www.vivelessvt.com/actu-sciences/comment-reduire-le-risque-de-dmla/
</link>
<comments>
http://www.vivelessvt.com/actu-sciences/comment-reduire-le-risque-de-dmla/#respond
</comments>
<pubDate>Tue, 01 Jan 2019 10:53:46 +0000</pubDate>
<dc:creator>
<![CDATA[ Julien de VivelesSVT.com ]]>
</dc:creator>
<category>
<![CDATA[ Actu-sciences ]]>
</category>
<guid isPermaLink="false">http://www.vivelessvt.com/?p=17472</guid>
<description>
<![CDATA[
L’adoption d’une alimentation de type méditerranéen -riche en fruits, légumes, légumineuses, céréales complètes, huile d’olive et poissons gras- réduit de 41% le risque de développer une dégénérescence maculaire liée à l’âge (DMLA). Ce résultat, publié par une équipe Inserm* de Bordeaux, permet d’envisager une démarche préventive particulièrement intéressante pour les formes sèches de la maladie [&#8230;]
]]>
</description>
<content:encoded>
<![CDATA[
<p>L’adoption d’une alimentation de type méditerranéen -riche en fruits, légumes, légumineuses, céréales complètes, huile d’olive et poissons gras- réduit de 41% le risque de développer une dégénérescence maculaire liée à l’âge (DMLA). Ce résultat, publié par une équipe Inserm* de Bordeaux, permet d’envisager une démarche préventive particulièrement intéressante pour les formes sèches de la maladie qui ne bénéficient à l’heure actuelle d’aucun traitement. <a href="https://www.inserm.fr/actualites-et-evenements/actualites/reduire-risque-dmla-en-adoptant-alimentation-mediterraneenne-0" rel="noopener" target="_blank">Lire la suite sur l&rsquo;INSERM.</a></p>
]]>
</content:encoded>
<wfw:commentRss>
http://www.vivelessvt.com/actu-sciences/comment-reduire-le-risque-de-dmla/feed/
</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>Nos meilleurs vœux 2019 !</title>
<link>
http://www.vivelessvt.com/au-jour-le-jour/nos-meilleurs-voeux-2019/
</link>
<comments>
http://www.vivelessvt.com/au-jour-le-jour/nos-meilleurs-voeux-2019/#respond
</comments>
<pubDate>Tue, 01 Jan 2019 10:43:58 +0000</pubDate>
<dc:creator>
<![CDATA[ Julien de VivelesSVT.com ]]>
</dc:creator>
<category>
<![CDATA[ Au jour le jour ]]>
</category>
<guid isPermaLink="false">http://www.vivelessvt.com/?p=17466</guid>
<description>
<![CDATA[
Les membres de l’association VivelesSVT et son bureau vous souhaitent ses meilleurs vœux en cette nouvelle année 2019 !
]]>
</description>
<content:encoded>
<![CDATA[
<p>Les membres de l’<a href="http://www.vivelessvt.com/association-vive-les-svt/association-vive-les-svt-pour-la-promotion-des-sciences-de-la-vie-et-de-la-terre/" rel="noopener" target="_blank">association VivelesSVT</a> et son bureau vous souhaitent ses meilleurs vœux en cette nouvelle année 2019 !</p> <p><a href="http://www.vivelessvt.com/wp-content/uploads/2019/01/voeux-2019-1-.jpg" rel='lytebox[nos-meilleurs-voeux-2019]'><img src="http://www.vivelessvt.com/wp-content/uploads/2019/01/voeux-2019-1-.jpg" alt="voeux 2019 1" width="600" height="450" class="aligncenter size-full wp-image-17468" /></a></p> <p></br></p> <p><a href="http://www.vivelessvt.com/wp-content/uploads/2014/10/Adh%C3%A9sion-2018-association-Vive-les-SVT.pdf" target="blank"><img src="http://www.vivelessvt.com/wp-content/uploads/2014/10/badge-offert-vive-les-svt-association.png" alt="badge offert vive les svt association" width="645" height="357" class="aligncenter size-full wp-image-16391" srcset="http://www.vivelessvt.com/wp-content/uploads/2014/10/badge-offert-vive-les-svt-association.png 645w, http://www.vivelessvt.com/wp-content/uploads/2014/10/badge-offert-vive-les-svt-association-300x166.png 300w, http://www.vivelessvt.com/wp-content/uploads/2014/10/badge-offert-vive-les-svt-association-600x332.png 600w" sizes="(max-width: 645px) 100vw, 645px" /></a></p> <p><a href="http://www.vivelessvt.com/wp-content/uploads/2019/01/voeux-2019-2.jpg" rel='lytebox[nos-meilleurs-voeux-2019]'><img src="http://www.vivelessvt.com/wp-content/uploads/2019/01/voeux-2019-2.jpg" alt="voeux 2019 2" width="600" height="400" class="aligncenter size-full wp-image-17467" srcset="http://www.vivelessvt.com/wp-content/uploads/2019/01/voeux-2019-2.jpg 900w, http://www.vivelessvt.com/wp-content/uploads/2019/01/voeux-2019-2-300x200.jpg 300w, http://www.vivelessvt.com/wp-content/uploads/2019/01/voeux-2019-2-768x512.jpg 768w, http://www.vivelessvt.com/wp-content/uploads/2019/01/voeux-2019-2-600x400.jpg 600w" sizes="(max-width: 600px) 100vw, 600px" /></a></p>
]]>
</content:encoded>
<wfw:commentRss>
http://www.vivelessvt.com/au-jour-le-jour/nos-meilleurs-voeux-2019/feed/
</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>Surveillance de l’épidémie de grippe</title>
<link>
http://www.vivelessvt.com/actu-sciences/surveillance-de-lepidemie-de-grippe/
</link>
<comments>
http://www.vivelessvt.com/actu-sciences/surveillance-de-lepidemie-de-grippe/#respond
</comments>
<pubDate>Sun, 16 Dec 2018 18:04:35 +0000</pubDate>
<dc:creator>
<![CDATA[ Julien de VivelesSVT.com ]]>
</dc:creator>
<category>
<![CDATA[ Actu-sciences ]]>
</category>
<guid isPermaLink="false">http://www.vivelessvt.com/?p=17463</guid>
<description>
<![CDATA[
Devenez acteur de la surveillance de la prochaine épidémie de grippe en France métropolitaine en participant au projet de recherche GrippeNet.fr. Quels que soient votre âge, nationalité ou état de santé, il vous suffit de vous rendre sur www.grippenet.fr pour rejoindre les près de 6 000 GrippeNautes déjà inscrits et aider les chercheurs faire progresser [&#8230;]
]]>
</description>
<content:encoded>
<![CDATA[
<p>Devenez acteur de la surveillance de la prochaine épidémie de grippe en France métropolitaine en participant au projet de recherche GrippeNet.fr. Quels que soient votre âge, nationalité ou état de santé, il vous suffit de vous rendre sur www.grippenet.fr pour rejoindre les près de 6 000 GrippeNautes déjà inscrits et aider les chercheurs faire progresser les connaissances sur cette maladie souvent bénigne, mais potentiellement responsable de complications graves chez les personnes fragiles. <a href="https://www.inserm.fr/actualites-et-evenements/actualites/participez-surveillance-epidemie-grippe-avec-grippenetfr" rel="noopener" target="_blank">Lu sur le site de l&rsquo;INSERM.</a></p> <p><center><iframe width="560" height="315" src="https://www.youtube.com/embed/r3p5ggRqmz4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></center></p>
]]>
</content:encoded>
<wfw:commentRss>
http://www.vivelessvt.com/actu-sciences/surveillance-de-lepidemie-de-grippe/feed/
</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>Joyeuses Fêtes !</title>
<link>
http://www.vivelessvt.com/au-jour-le-jour/joyeuses-fetes-3/
</link>
<comments>
http://www.vivelessvt.com/au-jour-le-jour/joyeuses-fetes-3/#respond
</comments>
<pubDate>Sun, 16 Dec 2018 18:00:27 +0000</pubDate>
<dc:creator>
<![CDATA[ Julien de VivelesSVT.com ]]>
</dc:creator>
<category>
<![CDATA[ Au jour le jour ]]>
</category>
<guid isPermaLink="false">http://www.vivelessvt.com/?p=17457</guid>
<description>
<![CDATA[
Toute l’équipe de VivelesSVT.com et les membres de l’association Vive les SVT vous souhaitent de très belles fêtes de fin d’année.
]]>
</description>
<content:encoded>
<![CDATA[
<p>Toute l’équipe de VivelesSVT.com et les membres de l’<a href="http://www.vivelessvt.com/association-vive-les-svt/association-vive-les-svt-pour-la-promotion-des-sciences-de-la-vie-et-de-la-terre/" rel="noopener" target="_blank">association Vive les SVT</a> vous souhaitent de très belles fêtes de fin d’année.</p> <p><a href="http://www.vivelessvt.com/wp-content/uploads/2018/12/fetes2.jpg" rel='lytebox[joyeuses-fetes-3]'><img src="http://www.vivelessvt.com/wp-content/uploads/2018/12/fetes2.jpg" alt="fetes2" width="650" height="450" class="aligncenter size-full wp-image-17458" /></a></p> <p><center><a href="http://www.vivelessvt.com/wp-content/uploads/2018/12/noelSVT.gif" rel='lytebox[joyeuses-fetes-3]'><img src="http://www.vivelessvt.com/wp-content/uploads/2018/12/noelSVT.gif" alt="noelSVT" width="300" height="300" class="aligncenter size-full wp-image-17460" /></a></center></p> <p><a href="http://www.vivelessvt.com/wp-content/uploads/2018/12/Joyeuses-Fêtes-Vive-les-SVT.jpg" rel='lytebox[joyeuses-fetes-3]'><img src="http://www.vivelessvt.com/wp-content/uploads/2018/12/Joyeuses-Fêtes-Vive-les-SVT.jpg" alt="Joyeuses Fêtes Vive les SVT" width="650" height="450" class="aligncenter size-full wp-image-17459" /></a></p>
]]>
</content:encoded>
<wfw:commentRss>
http://www.vivelessvt.com/au-jour-le-jour/joyeuses-fetes-3/feed/
</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
<item>
<title>La saison des herbiers</title>
<link>
http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/
</link>
<comments>
http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/#respond
</comments>
<pubDate>Sun, 11 Nov 2018 17:35:48 +0000</pubDate>
<dc:creator>
<![CDATA[ Julien de VivelesSVT.com ]]>
</dc:creator>
<category>
<![CDATA[ Au jour le jour ]]>
</category>
<guid isPermaLink="false">http://www.vivelessvt.com/?p=17320</guid>
<description>
<![CDATA[
Bravo aux élèves pour leurs magnifiques productions ! Cours de SVT : comment faire un herbier ?
]]>
</description>
<content:encoded>
<![CDATA[
<p>Bravo aux élèves pour leurs magnifiques productions !</p> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-1/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-1-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-2/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-2-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-3/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-3-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-4/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-4-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-5/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-5-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-6/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-6-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-7/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-7-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-8/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-8-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-9/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-9-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-10/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-10-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-11/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-11-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-12/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-12-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-13/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-13-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-14/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-14-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-15/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-15-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-16/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-16-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-17/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-17-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-18/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-18-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-19/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-19-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-20/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-20-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-21/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-21-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-22/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-22-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-23/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-23-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-24/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-24-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-25/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-25-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-26/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-26-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-27/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-27-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-28/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-28-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-29/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-29-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-30/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-30-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-31/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-31-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-32/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-32-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <a href='http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/attachment/herbier-collegiens-33/'><img width="150" height="150" src="http://www.vivelessvt.com/wp-content/uploads/2018/11/Herbier-collégiens-33-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a> <p><a href="http://www.vivelessvt.com/wp-content/uploads/2018/11/saison-des-herbiers.jpg" rel='lytebox[la-saison-des-herbiers]'><img src="http://www.vivelessvt.com/wp-content/uploads/2018/11/saison-des-herbiers.jpg" alt="saison des herbiers" width="650" height="420" class="aligncenter size-full wp-image-17354" /></a><br /> </br><br /> Cours de SVT : <a href="http://www.vivelessvt.com/college/les-herbiers-des-6emes/" rel="noopener" target="_blank">comment faire un herbier ?</a><br /> </br></p> <p><center><iframe width="560" height="315" src="https://www.youtube.com/embed/IJk6bvFFK18" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></center></p>
]]>
</content:encoded>
<wfw:commentRss>
http://www.vivelessvt.com/au-jour-le-jour/la-saison-des-herbiers/feed/
</wfw:commentRss>
<slash:comments>0</slash:comments>
</item>
</channel>
</rss>
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment