/**
* lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.1.5 * Copyright (C) 2017 Oliver Nightingale * @license MIT */
!function(){var e=function(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};e.version=“2.1.5”,e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),e.utils.asString=function(e){return void 0===e||null===e?“”:e.toString()},e.FieldRef=function(e,t,r){this.docRef=e,this.fieldName=t,this._stringValue=r},e.FieldRef.joiner=“/”,e.FieldRef.fromString=function(t){var r=t.indexOf(e.FieldRef.joiner);if(-1===r)throw“malformed field ref string”;var i=t.slice(0,r),n=t.slice(r+1);return new e.FieldRef(n,i,t)},e.FieldRef.prototype.toString=function(){return void 0==this._stringValue&&(this._stringValue=this.fieldName+e.FieldRef.joiner+this.docRef),this._stringValue},e.idf=function(e,t){var r=0;for(var i in e)“_index”!=i&&(r+=Object.keys(e).length);var n=(t-r+.5)/(r+.5);return Math.log(1+Math.abs(n))},e.Token=function(e,t){this.str=e||“”,this.metadata=t||{}},e.Token.prototype.toString=function(){return this.str},e.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},e.Token.prototype.clone=function(t){return t=t||function(e){return e},new e.Token(t(this.str,this.metadata),this.metadata)},e.tokenizer=function(t){if(null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(t){return new e.Token(e.utils.asString(t).toLowerCase())});for(var r=t.toString().trim().toLowerCase(),i=r.length,n=[],s=0,o=0;i>=s;s++){var a=r.charAt(s),u=s-o;(a.match(e.tokenizer.separator)||s==i)&&(u>0&&n.push(new e.Token(r.slice(o,s),{position:,index:n.length})),o=s+1)}return n},e.tokenizer.separator=/+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn(“Overwriting existing registered function: ”+r),t.label=r,e.Pipeline.registeredFunctions=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn(“Function is not registered with pipeline. This may cause problems when serialising the index.n”,t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions;if(!i)throw new Error(“Cannot load unregistered function: ”+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered®;var i=this._stack.indexOf(t);if(-1==i)throw new Error(“Cannot find existingFn”);i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered®;var i=this._stack.indexOf(t);if(-1==i)throw new Error(“Cannot find existingFn”);this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;t>r;r++){var i=this._stack;e=e.reduce(function(t,r,n){var s=i(r,n,e);return void 0===s||“”===s?t:t.concat(s)},[])}return e},e.Pipeline.prototype.runString=function(t){var r=new e.Token(t);return this.run().map(function(e){return e.toString()})},e.Pipeline.prototype.reset=function(){this._stack=[]},e.Pipeline.prototype.toJSON=function(){return this._stack.map(function(t){return e.Pipeline.warnIfFunctionNotRegistered(t),t.label})},e.Vector=function(e){this._magnitude=0,this.elements=e||[]},e.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,r=this.elements.length/2,i=r-t,n=Math.floor(i/2),s=this.elements;i>1&&(e>s&&(t=n),s>e&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements;return s==e?2*n:s>e?2*n:e>s?2*(n+1):void 0},e.Vector.prototype.insert=function(e,t){this.upsert(e,t,function(){throw“duplicate index”})},e.Vector.prototype.upsert=function(e,t,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements==e?this.elements=r(this.elements,t):this.elements.splice(i,0,e,t)},e.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,r=1;t>r;r+=2){var i=this.elements;e+=i*i}return this._magnitude=Math.sqrt(e)},e.Vector.prototype.dot=function(e){for(var t=0,r=this.elements,i=e.elements,n=r.length,s=i.length,o=0,a=0,u=0,l=0;n>u&&s>l;)o=r,a=i,a>o?u+=2:o>a?l+=2:o==a&&(t+=r*i,u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/(this.magnitude()*e.magnitude())},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;tn
“)?”+s+n,a=“^(”n
“)?”+s+n+“(”s
“)?$”,u=“^(”n
“)?”+s+n+s+n,l=“^(”n
“)?”+i,d=new RegExp(o),h=new RegExp(u),c=new RegExp(a),f=new RegExp(l),p=/^(.+?)(ss|i)es$/,y=/^(.+?)()s$/,m=/^(.+?)eed$/,v=/^(.+?)(ed|ing)$/,g=/.$/,x=/(at|bl|iz)$/,w=new RegExp(“()\1$”),k=new RegExp(“^”+n+i+“$”),Q=/^(.+?)y$/,L=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,T=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,S=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,b=/^(.+?)(s|t)(ion)$/,P=/^(.+?)e$/,E=/ll$/,I=new RegExp(“^”+n+i+“$”),O=function®{var i,n,s,o,a,u,l;if(r.length<3)return r;if(s=r.substr(0,1),“y”==s&&(r=s.toUpperCase()+r.substr(1)),o=p,a=y,o.test®?r=r.replace(o,“$1$2”):a.test®&&(r=r.replace(a,“$1$2”)),o=m,a=v,o.test®){var O=o.exec®;o=d,o.test(O)&&(o=g,r=r.replace(o,“”))}else if(a.test®){var O=a.exec®;i=O,a=f,a.test(i)&&(r=i,a=x,u=w,l=k,a.test®?r+=“e”:u.test®?(o=g,r=r.replace(o,“”)):l.test®&&(r+=“e”))}if(o=Q,o.test®){var O=o.exec®;i=O,r=i+“i”}if(o=L,o.test®){var O=o.exec®;i=O,n=O,o=d,o.test(i)&&(r=i+e)}if(o=T,o.test®){var O=o.exec®;i=O,n=O,o=d,o.test(i)&&(r=i+t)}if(o=S,a=b,o.test®){var O=o.exec®;i=O,o=h,o.test(i)&&(r=i)}else if(a.test®){var O=a.exec®;i=O+O,a=h,a.test(i)&&(r=i)}if(o=P,o.test®){var O=o.exec®;i=O,o=h,a=c,u=I,(o.test(i)||a.test(i)&&!u.test(i))&&(r=i)}return o=E,a=h,o.test®&&a.test®&&(o=g,r=r.replace(o,“”)),“y”==s&&(r=s.toLowerCase()+r.substr(1)),r};return function(e){return e.update(O)}}(),e.Pipeline.registerFunction(e.stemmer,“stemmer”),e.generateStopWordFilter=function(e){var t=e.reduce(function(e,t){return e=t,e},{});return function(e){return e&&t!==e.toString()?e:void 0}},e.stopWordFilter=e.generateStopWordFilter(),e.Pipeline.registerFunction(e.stopWordFilter,“stopWordFilter”),e.trimmer=function(e){return e.update(function(e){return e.replace(/^W+/,“”).replace(/W+$/,“”)})},e.Pipeline.registerFunction(e.trimmer,“trimmer”),e.TokenSet=function(){this=!1,this.edges={},this.id=e.TokenSet._nextId,e.TokenSet._nextId+=1},e.TokenSet._nextId=1,e.TokenSet.fromArray=function(t){for(var r=new e.TokenSet.Builder,i=0,n=t.length;n>i;i++)r.insert(t);return r.finish(),r.root},e.TokenSet.fromClause=function(t){return“editDistance”in t?e.TokenSet.fromFuzzyString(t.term,t.editDistance):e.TokenSet.fromString(t.term)},e.TokenSet.fromFuzzyString=function(t,r){for(var i=new e.TokenSet,n=;n.length;){var s=n.pop();if(s.str.length>0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges:(o=new e.TokenSet,s.node.edges=o),1==s.str.length?o=!0:n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining>0&&s.str.length>1){var u,a=s.str.charAt(1);a in s.node.edges?u=s.node.edges:(u=new e.TokenSet,s.node.edges=u),s.str.length<=2?u=!0:n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(2)})}if(s.editsRemaining>0&&1==s.str.length&&(s.node=!0),s.editsRemaining>0&&s.str.length>=1){if(“*”in s.node.edges)var l=s.node.edges;else{var l=new e.TokenSet;s.node.edges=l}1==s.str.length?l=!0:n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.editsRemaining>0){if(“*”in s.node.edges)var d=s.node.edges;else{var d=new e.TokenSet;s.node.edges=d}0==s.str.length?d=!0:n.push({node:d,editsRemaining:s.editsRemaining-1,str:s.str})}if(s.editsRemaining>0&&s.str.length>1){var h,c=s.str.charAt(0),f=s.str.charAt(1);f in s.node.edges?h=s.node.edges:(h=new e.TokenSet,s.node.edges=h),1==s.str.length?h=!0:n.push({node:h,editsRemaining:s.editsRemaining-1,str:c+s.str.slice(2)})}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=!1,s=0,o=t.length;o>s;s++){var a=t,u=s==o-1;if(“*”==a)n=!0,r.edges=r,r=u;else{var l=new e.TokenSet;l=u,r.edges=l,r=l,n&&(r.edges=i)}}return i},e.TokenSet.prototype.toArray=function(){for(var e=[],t=;t.length;){var r=t.pop(),i=Object.keys(r.node.edges),n=i.length;r.node&&e.push(r.prefix);for(var s=0;n>s;s++){var o=i;t.push({prefix:r.prefix.concat(o),node:r.node.edges})}}return e},e.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this?“1”:“0”,t=Object.keys(this.edges).sort(),r=t.length,i=0;r>i;i++){var n=t,s=this.edges;e=e+n+s.id}return e},e.TokenSet.prototype.intersect=function(t){for(var r=new e.TokenSet,i=void 0,n=;n.length;){i=n.pop();for(var s=Object.keys(i.qNode.edges),o=s.length,a=Object.keys(i.node.edges),u=a.length,l=0;o>l;l++)for(var d=s,h=0;u>h;h++){var c=a;if(c==d||“*”==d){var f=i.node.edges,p=i.qNode.edges,y=f&&p,m=void 0;c in i.output.edges?(m=i.output.edges,m=m||y):(m=new e.TokenSet,m=y,i.output.edges=m),n.push({qNode:p,output:m,node:f})}}}return r},e.TokenSet.Builder=function(){this.previousWord=“”,this.root=new e.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},e.TokenSet.Builder.prototype.insert=function(t){var r,i=0;if(t<this.previousWord)throw new Error(“Out of order word insertion”);for(var n=0;ne.version
“' does not match serialized index '”t.version
“'”);for(var l=0;l<n.length;l++){var d=n,h=d,c=d;i=new e.Vector©}for(var l=0;l<o.length;l++){var d=o,f=d,p=d;a.insert(f),s=p}return a.finish(),r.fields=t.fields,r.fieldVectors=i,r.invertedIndex=s,r.tokenSet=a.root,r.pipeline=u,new e.Index®},e.Builder=function(){this._ref=“id”,this._fields=[],this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=e.tokenizer,this.pipeline=new e.Pipeline,this.searchPipeline=new e.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},e.Builder.prototype.ref=function(e){this._ref=e},e.Builder.prototype.field=function(e){this._fields.push(e)},e.Builder.prototype.b=function(e){0>e?this._b=0:e>1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t){var r=t;this.documentCount+=1;for(var i=0;i<this._fields.length;i++){var n=this._fields,s=t,o=this.tokenizer(s),a=this.pipeline.run(o),u=new e.FieldRef(r,n),l=Object.create(null);this.fieldTermFrequencies=l,this.fieldLengths=0,this.fieldLengths+=a.length;for(var d=0;d<a.length;d++){var h=a;if(void 0==l&&(l=0),l+=1,void 0==this.invertedIndex){var c=Object.create(null);c._index=this.termIndex,this.termIndex+=1;for(var f=0;ft.term
“*”),this.clauses.push(t),this},e.Query.prototype.term=function(e,t){var r=t||{};return r.term=e,this.clause®,this},e.QueryParseError=function(e,t,r){this.name=“QueryParseError”,this.message=e,this.start=t,this.end=r},e.QueryParseError.prototype=new Error,e.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=},e.QueryLexer.prototype.run=function(){for(var t=e.QueryLexer.lexText;t;)t=t(this)},e.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,r=this.pos,i=0;ir.str
“'”),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(-1==t.query.allFields.indexOf(r.str)){var i=t.query.allFields.map(function(e){return“'”e
“'”}).join(“, ”),n=“unrecognised field '”r.str
“', possible fields: ”+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=;var s=t.peekLexeme();if(void 0==s){var n=“expecting term, found nothing”;throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n=“expecting term, found '”s.type
“'”;throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),-1!=r.str.indexOf(“*”)&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;default:var n=“Unexpected lexeme type '”i.type
“'”;throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n=“edit distance must be numeric”;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;default:var n=“Unexpected lexeme type '”s.type
“'”;throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n=“boost must be numeric”;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;default:var n=“Unexpected lexeme type '”s.type
“'”;throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){“function”==typeof define&&define.amd?define(t):“object”==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}();